A Software Engineer’s Typical Day

Interested in becoming a software engineer? Curious about what software engineers actually do? Well, you’ve come to the right place. Here is a typical day for me at the ‘office’:

07:45 Wake up

I get up and start my morning routine. This includes eating breakfast, doing some writing, reading the news, doing some stretches and going for a walk round the local park.

10:30 Check emails and comms

I sit down at my desk (I work from home, so no commute required) with a fresh cup of tea. You may have noticed that I start quite late. This is because I finish late, and the reason for that is that the rest of my team are based in the U.S., whereas I am based in the UK. To get some overlap with their hours, I have shifted my hours slightly. Teams with members in different parts of the globe are not uncommon. Software runs 24-7, so having people in different timezones to support it can work well.

I check my emails and the internal instant messaging tool and follow up on any communications requiring my attention.

11:20 Code reviews

I do some code reviews. This is where other team members have issued ‘pull requests’ (a set of proposed changes) to our codebase on github, and I need to read over the changes and add comments and suggestions. If I’m happy with the changes, I can approve the ‘pull request’. Everyone on the team can (and should) review other team members’ code. It keeps us all on the straight-and-narrow, and means everyone is aware of what changes are being made.

11:45 Coding

Now I get down to the fun part – the coding! I may have a task on the go already, which I will continue. Otherwise, I will start something new. The task could be tracking down and fixing a bug, implementing a new feature, or an investigation.

If I’m tracking down and trying to fix a bug, I will need to reproduce the issue locally (which means on my local development environment) first. Once I’ve done that, I can add debugging logs or step through the code using an IDE (Integrated Development Environment), such as PyCharm, to find where the problem occurs. Once I have an understanding of why the bug is occurring, I can take steps to fix it in the code.

I work on Application Programming Interfaces (APIs) for web hosting products, so an example of something new I could be working on is an API vertical that takes care of some aspect of web hosting, such as DNS (Domain Name System) records.

For an investigation task, I might be looking through logs to try to work out what caused an issue or outage. Or, I could instead be trying to work out the best way to implement a requested new feature (without actually doing the implementation).

13:00 Lunch

I make myself a sandwich and watch some TV.

14:00 Coding

I continue with the task I was working on before lunch.

16:00 Tea break

I make myself a cup of tea and stretch my legs.

16:05 Coding

Back to the task at hand!

17:00 Stand-up

Stand-up is a meeting where everyone in the team briefly summarises how they are doing with their work, and if they need any help. We look at the scrum/kanban board (which shows all open/assigned tasks and what status they are in) and the Scrum Master (the person leading the meeting) makes any adjustments needed. As I mentioned, the rest of my team are based in the U.S., so our stand-up is in my afternoon — but it’s first thing in the morning for them.

17:15 Team Meetings

Right after stand-up we will have any team meetings that have been scheduled. These vary, but the main ones are:

  1. Retro: The team discusses how the last two weeks have gone, and if there are any improvements we could make to our processes
  2. On-call Retro: The team discusses any incidents that occurred over the last week, and what steps we could take to remediate those in the future
  3. Planning: The team plans the tasks we intend to complete over the next week or two
  4. Workshops: The team discusses implementation requirements for a new feature

18:00 Team Hangout/Coding

After the meetings, some of the team remain in the online meeting room to ‘hang out’, chat and/or discuss general work stuff. This is informal and optional, and gives team members a way to get that ‘being in the office’ vibe with banter and being able to chat openly whilst working. It also gives team members a way to get to know each other better whilst working remotely. Everyone in the team is currently working remotely, so this is a good way to feel connected.

19:00 Finish

I try to finish my day as close to 7pm as possible. As I’m working from home, it is very easy to just keep working past this time, especially as all my work colleagues are still working, but I need my down time. So at 7pm, I sign off the hangout chat, and close my laptop lid. Time to relax for a bit before whatever tomorrow brings!