A day in the life of an engineer
What you'll learn
For today’s post I wanted to take a step back and share a small glimpse into what the day to day is like for a game developer. It’s important to note that the schedules and life styles vary dramatically by the type of company you work at, the dynamics of your group, your seniority and so forth. So during this post I am going to attempt to generalize a few things that are typically common amongst most game studios.
A Day in the Life of a Mobile Programmer...
9:45am: Arrive at the office, grab your coffee, juice, bagel, etc from the onsite kitchen. Most engineers work a slightly shifted schedule. It is very common to see engineers start their day around 10am.
9:50am: Arrive at your desk and plug in your laptop. Many engineers choose to use a laptop that they bring home with them each night. Whether or not they work on it at home is usually up to the company culture. Generally it is because engineers have their entire lives stored on that laptop, even though technically it is considered company property.
10:00am: Pod Scrum. The Pod Scrum is a short status meeting between you and your immediate teammates. If you are a mobile developer it is common to have a pod dedicated to iOS development and a pod dedicated to Android development. Although the dynamics vary, a pod generally consists of 3-5 engineers and has a group manager known as the pod lead. In some companies the pod lead is your direct boss, while in other companies, the pod lead is more of a technical guidance leader.
10:10am: Pod Scrum actually begins. This is the annoying part. It’s supposed to start at 10am each morning - but by the time every stands up - gets to the conference room, etc, it generally starts a bit late.
10:20am - 12:00pm: E-mails, chat, code reviews and interruptions. This time period is often known as the great interruption period. This is when you check your e-mail, have conversations with people over chat, make changes to code reviews that you submitted yesterday and other such tasks. During this time you also get interrupted a lot. This is because the product managers and other team members who have their own priorities need a few mins to talk with you about feature xyz. Rather then schedule a meeting or shoot an e-mail, they will come right up to your desk and start asking away as if your time means nothing.
* If you are a manager, then generally the time from 11am - 12pm also consists of some sort of cross team collaboration sync ups. Sometimes these are called super scrums or scrum of scrums or just the daily sync up. This is a time for you as a manager to surface any particular blockers that you team has on other teams. It’s also a good time to confirm plans, release schedules, status of various features and more.
12:00pm: Lunch. For goodness sakes do not forget to take your lunch. It doesn’t seem like you should have to do this — but often you have to actually put a meeting blocker in your calendar so that others do not schedule meetings during this timeframe. Our advice is to just make a recurring appointment every day from 12pm - 1pm that doesn’t expire for several years. That way you will never be booked for lunch time meetings.
1:00pm - 3:00pm: This is generally the timeframe that you are booked to have feature kick off meetings or quality assurance sync ups. These are meetings where the product manager hands off spec guidelines to you and allows you to analyze the feature from an engineering point of view. You need to be able to evaluate the feature and devise a way to program the requirements. This is your time to ask questions, raise concerns and determine how you will program the necessary steps to accomplish the task. Often you are asked to provide a time estimate to complete the feature. If you are lucky enough to not have any meetings scheduled during this time period, then this is usually your first true block of programming time.
3:00pm - 3:15pm: Around this time of the day you start to get antsy. You have been sitting for a while and need a break. this is when you head over to break room and go get something salty, sugary or whatever you habits may dictate. Along the way you chat a little bit with the product manager (probably the same one that you met at 1pm where you guys discussed the new xyz feature). In discussing some additional concerns you guys realize that a few things need to be altered. The product manager decides to make a few changes and asks to meet tomorrow once they can make updates to the spec.
3:15pm - 5:30pm: If you had meetings in the afternoon then this becomes your first true block of time that you can achieve actual good programming. Most people are highly involved in their own task lists and so the interruptions are minimal. Ironically, the best coding of the day seems to occur during these few hours.
5:30pm - 6:00pm: Around this time you are starting to get pretty exhausted. You do some minimal testing on your code (because hey - your code is perfect in first draft form) and prepare it for a code review. When asked if you tested your code, you respond with a “I got some basic testing done - but I need more help from QA”. After all your time is important. At this time you also start to browse Facebook a little endlessly, check on scores of the sports games playing that night and generally start to wind down for the day.
6:00pm: A lot of engineers leave around 6pm. Many of them head to the gym or go for drinks at this point. Occasionally you will find the engineers that prefer to work till 7pm, 8pm or even later. The reason is simple. They get more done during these hours because they have little to no distractions.
6:00pm - 9:00pm: These are the obligatory “life hours”. Meaning these are the hours that an engineer has to spend tending to their own lives. Doing grocery shopping, drinking, spending time with their family, etc. Most engineers with significant others make it very apparent that if they don’t spend this time with their significant other, there will be retribution.
9:00pm - 10:00pm: It is not uncommon to log into work during this hour to check various things. Maybe catch up on a chat or respond to a few emails. If an engineer is of the operations persuasion then this becomes a habit to check various status graphs and ensure that the product did not fall apart in their 3 hours of absence.
10:00pm - 12:00am: These are the hours that the elite come out to play. The engineers that are online and active during these hours are generally the ones that are carrying the product. Sometimes it is driven by an odd sense that if they were not there, the product would fall apart. Some of them might be right. The bottom line is that these guys are the ones who are putting in the extra efforts and taking care of problems that are often not on their plates or not in any schedule. If you read the dev chats during these hours, these also tend to be where the conversations get really, “interesting”. Or put another way — the best and most colorful conversations seem to happen between 10pm and 12am.