My eyes open and I look at the clock - 6:45. Definitely too early. Close my eyes and next time I open them the clock says 8:15. Eh…close enough. I’ve stopped setting alarms because I work at a small software consulting firm and as long as you don’t miss client meetings and get your work done, no one really cares if you don’t show up at an arbitrary round time.
I look outside to see if it’s snowing, raining, both, or one of the other unpredictable weather scenarios that Wisconsin likes to throw in. Hmm looks nice out. Damn. It’s not like I don’t like going into the office, it’s just that it saves me money on gas if I stay home. Okay, honestly with gas at less than $2/gal that’s probably a bad excuse. The more accurate reason is I prefer to not shower and instead work from my bed all day. Usually when I do that though I feel like a hermit neckbeard by about 3:00 pm so I try to not do that too often.
While eating breakfast I go through the notifications on my phone. I dismiss the garbage from Facebook and contemplate watching a suggested YouTube video. While I do have my work email and chat linked to my phone there is never anything urgent in there as I am fortunate enough to not have to do production support for ancient mainframe applications that run batch jobs at 2 in the morning.
Fine…I’m committed, I’m showered and I’m driving in. That’s another reason I like staying home. I don’t really like driving. It’s not that I have a long commute, but I would still much rather browse Reddit during my drive then worry about that idiot in front of me hitting their brakes every 10 seconds. Elon, if you’re reading this and want to send a Model 3 my way, I wouldn’t turn it down.
I arrive at the Omni office, walk past a coworker’s desk and utter a half-baked insult just loud enough so he can hear it. He replies with a similar insult. It’s our thing. I sit at my desk, hook my laptop up to my monitors and obnoxiously loud mechanical keyboard and proceed to check my RSS feeds, Reddit and Twitter. I take my turn in the hosted hot seat game of Civilization my coworkers and I play. I congratulate myself for being in the lead. Sure, maybe I got the best starting location, but that’s beside the point.
Alright, all settled, time to get down to work! I open up the company chat room on Slack. I keep a fairly close eye on Slack all day as I can usually help with questions in the developer’s channel. When I can’t help, I typically find myself learning something new. I tend to find other projects more interesting than my own as it is a change of pace. Since others feel the same this system tends to work out well; however, on occasion this can nerd snipe half the company or can send us down a rabbit hole of collaboratively code golfing a regular expression or functional programming stream. In the end though it makes for good team work and often times 10 minutes from one person can save another person an hour of their time. In addition to the developer focused channels there are a few for companywide announcements and discussions that I follow as I like to see everyone’s commentary that goes along with announcements. The most important channels to pay attention to though are the 20 or so that have essentially just devolved into dank memes.
Okay time for the daily standup. I hurriedly update the project management tool with the thing I finished yesterday while I wait for everyone else to call into the meeting. Everyone on my team at the client site tells us how they didn’t get anything done the day before because they were in meetings all day. I silently scold myself for being annoyed that I have this 15 minute standup as I remember how much worse it can be. When it is my turn, I tell the project manager that I finished working on my thing yesterday. They pat me on the head. We discuss what I should work on next. The meeting continues as other team members give their status.
Now, with that over, I check Slack to see where people are going to lunch. I make sure to add a reaction with the emoji which most closely resembles food served there. Great way to get a count of who is all going without endless threads of “me too thanks.” Mondays are wings, Fridays are cheese steaks and Omni usually buys pizza or subs for Wednesday meetings. I tell myself I should go out to lunch less often but after a stressful hour of work in the morning I deserve to get away from my desk and shoot the breeze with coworkers for a while.
After lunch is when I’m most productive. From 1 to 4 I’m usually pretty plugged in, listening to some gapless EDM album that doesn’t have vocals to distract me. I go through the standard software development paces of trying something, Googling the error message, reading the GitHub issue or StackOverflow answer, applying the fix, lather, rinse, repeat. Typically with projects at Omni I find myself on the former more often than the latter. I have been fortunate enough to be working with pretty new technology (Angular 2, ASP.NET Core on Docker) and the transparency and collaboration with the developers of a given library that GitHub allows is fantastic. Also, by working with all of these alpha libraries, I get some contributions into popular repositories to pad my imaginary internet points on StackOverflow and GitHub.
Depending on how my work is going and what else I have going on in life determines how late I stay. If I’m “in the zone” I tend to stay later than if I have been beating my head against an issue all day with no hope in site. In these cases, I find that getting some time away from the issue can be just as helpful as sitting and working on it and I will often have a solution in my head by the time I get home. Alternatively, spending some time playing Golden Tee or NBA Jam on the MAME machine works just as well.
Once I’m done with work I pretty much do whatever I want. Now that I spend a minimum of 40 hours a week working on software development, the time I spend on software projects at home has decreased significantly. On the plus side, because of the experience I build during work hours, I tend to be much more effective when I work on side projects.
In the end, software engineering evolved out of a hobby for me, and to be able to make a living off of it is great. The culture at Omni is very laid back, even by tech company standards; and, while the job requires a constant willingness to learn, it is very rewarding to know that there are projects that you have worked on being used in production by many different people at many different companies.