Typical Day
(A Mid-Level Average Coder, i.e. Not Larry or Sergey)
Your cell phone beeps at you in the middle of the night. You blink in the dark. It's 2:00AM, and one of the servers that supports your company's software is down. You go to your laptop and spend the next thirty minutes bringing the server back online and making sure that nothing else has gone horribly, terribly wrong.
You go back to bed. One hour later, your cell phone starts beeping again.
Your day doesn't always begin at 2:00AM, but as the lead developer for a software startup in the Bay Area, you're required to be on call every few weeks. Your company's software is used by some of the biggest corporations in the world; when things go awry, you or someone else from your team has to be on hand to fix things fast so your customers don't get upset.
You sleep in until 8:00AM. The first thing you do when your alarm goes off is to pick up your cell phone and check your email. You've gotten lots of new messages since last night but, thankfully, none of them are urgent. You've got time to stumble like Frankenstein's monster into a hot shower and then scarf down a bowl of Wheaties.
By 9:00AM, you've made the twenty-minute commute from your apartment to your office. Many coders face far longer commutes thanks to the Bay Area's infamous traffic, but your apartment is only a couple of miles away from your company's headquarters, meaning you don't spend much time in the car. At least, you don't usually spend much time in the car. An accident on the 101 can turn your twenty-minute commute into a ninety-minute trip from Hades.
Once you're at work, you fuel up with a cup of coffee and sit down at your computer. You've got an hour before the rest of your team staggers into the office and starts to bug you.
First you check your email (again) and answer the most pressing messages, adding a couple of items to your "to do" list for the day. Then you go over some résumés a recruiter sent you this morning. You pick out two of the résumés and tell the recruiter to schedule phone interviews. Finally, you look over code you didn't get a chance to work on yesterday.
It's 10:00AM. The team is in. Time for another cup of coffee.
Because you're a lead developer, you're responsible for managing the four other people on your team. What does this mean? You talk over the schedule for the next couple of weeks and make sure that everyone is on track with their projects. You provide advice and get input on your own work. You harangue your team when you have to and encourage them the rest of the time. You've put one guy on track to take over your job in a few months—you're slated to become Director of Engineering.
In other words, after 10 am, your day is shot in terms of getting any coding of your own done, but that's what happens when you move far enough up the food chain to become a lead developer.
You get peckish for lunch at noon, and check around to see if anyone wants to hit up a local Mexican restaurant with you. You often brown-bag your lunch, but you try to go out once or twice a week with co-workers. Networking in software is incredibly important, especially in the Bay Area: Who you know can make or break you when you're looking for your next job.
More immediately, talking to colleagues over lunch gives you a chance to get caught up on internal politics, to discuss how your team can improve its performance, and to get to know people.
You devour an enchilada in the company of two of your fellow coders, the company's data analyst and the lead developer for the front-end of your company's software. A good time is had by all, and the group pitches around several ideas about the work you're doing.
By 1:00PM, you're back in the office and you buckle down to work for the next three hours...or, at least, you try to. A coworker from customer service comes over to ask you a question about the software. Twenty minutes later, he's back with another question. Twenty minutes later, he's back with another question.
Each time he interrupts your work, you patiently tell him to go and read the software documentation: Everything he wants to know is in the manual. You make a note to have your boss talk to the head of customer service about containing her team's questions to stuff they can't find answers to on their own.
At 4:00PM, you have a meeting to suss out your team's plan of attack for the next two weeks. At 5:00PM, people start going home. You decide to stick around and get some coding done. You put your headphones on and queue up Tchaikovsky's "1812 Overture."
For the next two hours, you focus on what you think of as "serious" work: writing code. You come up with tests, write code that can pass the tests you wrote, and then clean up your code. You repeat this process over and over again. Sure, this might seem boring to someone who isn't a coder, but you take enormous pride in the beauty and functionality of your code.
At 7:00PM, satisfied with what you've accomplished and tired from last night's on-call debacle, you head home. Fortunately, there isn't a lot of traffic on the 101 by now, so it only takes you fifteen minutes to get to your apartment.
You heat up a pizza and make a salad because your mom back home in Mississippi would throttle you if you didn't eat something green with dinner. You consume the entirety of your dinner while surfing Netflix's now-lackluster options; you've watched everything.
Another twenty minutes pass as you continue to search. Half disgusted with yourself and half disappointed in Netflix's slimming pickings—the pizza grease now cold and congealed about your fingertips—you elect to re-watch a few episodes of an old television show. While other people your age are out with friends or significant others, you struggle with the decision to wash your hands at the kitchen sink or wipe them across the pleating on your pants. Sleep doesn't sound like such a bad idea, either.
At 9:30PM, you check your email on your cell phone one last time and then fervently pray that your company's software won't break in the middle of the night. You get into bed and fall asleep almost immediately, hands still greasy.
Your cell phone beeps at 11:30pm.