American workers are choosing software development as a career path more so now than ever before. High salaries, modern workspaces, and job security entice many of these workers into making a transition into tech careers.
While I could not imagine myself doing anything other than writing code these days, many of my former colleagues are often seeking an exit strategy from software development. Often times they find their way into other lines of work related to software like project management, user research, quality assurance, or even management.
Software development is not for everyone. I have decided to include my daily schedule and some larger weekly obligations that are related to being a software developer in an effort to inform people who may want to become developers what life may be like after they transition into this new field. Life for the developer is not just an endless code session as I find that I often spend just as much time planning my work with colleagues.
I work at a digital agency located in the southeast, meaning that I work on several products at a time – and often have to meet with clients to discuss the direction of their project. In the past, I have also worked for product teams. While my day-to-day activities were similar to the ones I have now there are a few distinctions between these two types of employment. When working for an agency I have found that there are generally less meetings. You will solve smaller problems, however, you may work at a quicker speed than you would on a product – this is due to a smaller budget.
For example, I can build you the software equivalent of Tesla or a Camry. Most people need a Camry and not a Tesla. The company I work for helps businesses build affordable technology. This is pretty typical of agencies, as they usually work with early-stage startups or they help nontechnical businesses build technical solutions.
On a product team, maybe you will become the expert of a portion of the code base, while at an agency it is not as important to become an expert – but more important to get something out of the door quickly that serves the majority of use cases, remember we build the Camry. Keep that in mind.
7:00 AM – Wake up and shower
7:30 AM – Eat breakfast
8:30 AM – Leave for work
8:45 AM – Arrive at the office
9:00 AM – When I get into the office I check my priority for the week on our company-wide calendar found on Trello. We typically have a meeting every Monday morning at 9:00 AM where the engineering team sets weekly priorities based on the monthly priorities for each project. Our clients set the monthly priority for each project. This means that each developer must be flexible and capable to work on multiple projects at a time.
Most mornings I come into the office, check the projects I’m assigned too and read over the requirements on the feature that needs to be implemented. If there are any questions regarding the feature I seek help from the product manager assigned to the project. If there are static assets like images or icons associated with the feature then I reach out the designer or check our internal folders to ensure that everything needed for the feature is gathered prior to getting to work.
10:30 AM – By this time I have probably been working on a feature for a little over an hour. What does that look like? Well, it’s not feverishly typing away. I usually first create a list of tasks that the code must accomplish to complete the feature. I break it down to the smallest most minute unit of work possible. This makes working and writing code easy, I simply start at the top of the list and write code to accomplish each task. Then I check that item off the list. By the time I’m halfway through the list the feature begins to take shape.
12:30 PM – Lunchtime, I usually bring my lunch but every now and then I will walk across the street to the Codfather and grab some French fries or to the Junction and grab a sandwich.
1:15 PM – Back to work. If the feature is nearing completion I will begin to write a few tests. Once the code has been tested manually to ensure everything works and automated tests have been written I will open a pull request against the project’s code base. This allows my coworkers to make suggestions.
For larger features, I have found that this takes more time. It’s important that all team members understand how the code works. Redundancy is always a great trait for an engineering team, and if your team is unable to find parity between two engineer’s understanding of the code then it is typically a sign that the code is complex or there may be flaws within the underlying logic and assumptions made by the original developer.
4:00 PM – Standup. During our standup meeting, all team members share what they’ve been working on throughout the day. This is a standing meeting and it allows our team to work across departments to ensure that work is being done in a timely fashion. This is pretty standard for teams who follow agile methodologies.
5:15 PM – Hit the gym
7:00 PM – Drive home and have dinner
10:00 PM – Go to bed
Is software development a good career choice for you?
Software development can be a career where it is important to over communicate. This is often a trait that developers struggle with, fortunately, many teams are beginning to build in systems that promote an increase in communication across technical teams. The above schedule does a good job of depicting the number of meetings that I often must attend; it does not do a good job of demonstrating the amount of reading and research I must do to complete a given task. If you’re a high school student and this sounds like the ideal career or maybe you’re interested in learning how to code – then Code Apprentice can provide you the connections and skills to get your foot in the door to software development. Contact us and we can organize a mentorship with you and a professional developer at amazing companies like Facebook or eBay.