There are lots of common misconceptions about the daily activities of software engineers at tech startups. Popular culture has fed into stereotypes that coders spend whole days either quietly hunched over a laptop or wasting time drinking craft IPAs and fist-bumping each other over a game of Super Smash Bros.
In my experience, it was a little of column A, a little of column B, and a whole lot of not-at-all-like-that. Below, I’ve outlined a regular day in my life as a software engineer (when I was one, I’m a writer now). If you happen to be curious about what it’s like to really be a software engineer at a tech startup, read on.
Most people at tech startups tend to get to work sometime between nine a.m. and ten a.m., give or take an hour on either side. Most days, I would show up around 9:30 a.m. This gave me a chance to wake up a little in the morning before commuting to the office.
When I got to work, the first thing I did––before turning on my computer or checking Slack––was go to the kitchen. Every morning, there was a group of us who made coffee and talked. Sometimes we caught each other up on what projects we were working on, and other times we just talked about what fun plans we had for the upcoming weekend.
After I made my coffee and breakfast, I would finally go back to my desk and start getting into work mode. This process involved checking my email and Slack, reading the news, and doing code reviews (reviewing and approving code changes from coworkers). Once I was done eating, I was ready to get to work.
10 a.m.-12 p.m.
The two hours between ten a.m. and twelve p.m. are when I would get my best work done.
During this time block, I liked to sit at my desk with my over-the-ear headphones on, mute Slack, and focus. That’s the most energized time of the day for my brain, so it worked well to do more analytical work, like solving complex problems that required time-consuming thinking.
If I did code at all during this time chunk, it was to test out theories. Usually I would think in pseudo-code more than actual runnable code. I also did a lot of research online and frequented websites like Stack Overflow to see if other people battled similar issues to mine.
As the time got closer to lunch, I liked to try and have a plan for what I was going to tackle for the rest of the day. I also made an effort to leave clear notes to myself in case the lunch break interrupted a train of thought that would be hard to recover.
Lunchtime! It’s a well-known perk at many startups to provide catered lunches or money for ordering in. Odds are, if you work as an engineer, you won’t have to pay for lunch.
I always tried to make it a rule to not work during lunch. It can be tempting when there’s so much to get done at a startup, but it’s really important to take a break. Spending lunch socializing with coworkers gives your brain a chance to process the work you’ve been doing and rejuvenate.
Most days after lunch I had meetings of some kind. Typically, the meetings were:
- A planning meeting, where a small team of people working on a particular project assemble and plan out the work for the upcoming cycle.
- A stand-up meeting, which is a short, recurring meeting of a small team (maximum seven people) to give status updates on projects, make sure the schedule is on track, and unblock people who are stuck.
- A retrospective meeting, where the project group reflects on a specific period of work––usually about a week, but sometimes longer. In these meetings, we would discuss what went well and what could have been done better.
If I happened to not have any meetings scheduled during this time block, I still rarely sat at my desk and coded. Post-lunch is the time I get the most tired, so I’m much more productive when I’m not at my desk. Sometimes I would go grab a more-senior engineer and ask them for help on a problem I was working through. My favorite thing to do when a conference room was free was to use the giant whiteboard wall to talk through ideas with a coworker.
I always found myself craving coffee again around three p.m. My usual ritual, after wrapping up meetings and working on things with coworkers, was to go make a second cup of coffee for the day as a break. It’s a great way to let your brain take a rest for a moment as you begin to switch gears into code-mode for the rest of the afternoon.
The post-coffee break afternoon is when I would do most of my coding. Once I had my plan from my quiet work hours in the morning and got help from people in the early afternoon, nothing stood in the way of some solid coding.
Similar to how I worked in the morning, I liked to silence my notifications and put on my headphones as a universal “I’m busy” sign. It didn’t always ward off desk visitors, but it usually did the trick.
I’ve found that similar to writing, getting into a flow with coding is really important for being productive. If you let too many distractions break through, tasks that would normally take an hour end up taking the whole day.
Around six p.m., I would begin to wrap up my day. I would find a good stopping point in my work and leave notes for easy pickup, then plan the work I needed to complete the next day. If I could, I liked to try to send out code review requests before I went home for the day.
Ready to Become a Software Engineer?
Of course, this typical day will vary day to day, job title to job title, and company to company.
But if the daily life of a software engineer that I spelled out sounds nice, then, by all means, pursue it!
Being a software engineer doesn’t mean you have to be a certain type of person. If you like to socialize, you can spend more time working with others. If you like to think and work alone, you can do that, too, maybe even from home. Or, like me, you can find a solid mix of both.
The important takeaway is that the work is interesting, you get to be part of a team, and, you know, there’s usually free lunch.