A Day in the Life of a Professional Web Developer

mshertzberg

Michael Scott Hertzberg

Posted on August 26, 2018

A Day in the Life of a Professional Web Developer

When I wake up in the morning feeling like P. Diddy... Just kidding, that isn't how I wake up. I work from home, so my previous first move is to hop right into the shower, but knowing that I don't exactly have to be anywhere, I tend to check my emails. Just to see if there was anything that I missed from my overseas colleagues. They've already been working almost a full day. At this point I may as well look at Slack too, to remove those unread thread notifications. Nothing out of the ordinary yet. Time to shower.


I work for an interestingly complex company. Our parent, Univision, had purchased us, Gizmodo Media Group and The Onion Inc., fusing us together to form The Fusion Media Group. We're a group of blogs, and our platform is a Scala-backed CMS with a heavy JavaScript frontend, called Kinja. Majority of our developers are actively working on the Kinja platform and split up into various tracks.

Of the many tracks, the one that I'm on is called Discovery. It is how it reads, in that I'm on a team that is responsible for building and maintaining products on the platform that help you discover content. An example of this might be a "related posts" widget. We have various other tracks such as Interactives, that deal with interactive content, like new and creative page layouts, infinite scrolling scenarios, etc.

Our teams will generally have all of the necessary people required to complete a project. A product manager is always there as a go-to person and is assigned to every major track. Teams will generally have a single frontend developer or two, depending on the complexity of the project.

In my role at Kinja, I'm a Senior Software Engineer. Despite the title, I tend to call myself an application developer. Regardless, my roles at Kinja vary, from doing 100% React, to Node tooling.


Streams of red warning alerts are scrolling down our channel for monitoring our services. I'm not on-call at the moment (everyone is on rotation at least twice a month), but I'm still wary about what's going on. I tend to have a tab with Datadog open, in the event I could help out in some way.

While it only looks like everything is burning down in our monitoring channel, a colleague that's on-call is taking a look at it. It seems like a Kubernetes pod failed to deploy properly and requires someone to log into Jenkins and redeploy it. If I were on call, this would be something I'd need to take care of. In the interim, I'm doing some code review.


I was pinged by a couple of colleagues this morning to review some code, but usually I get tagged on GitHub. I try my best to be on GitHub as much as possible, between personal and professional activities (I love open source). I have a desktop notification app installed, so whenever someone does tag me on a pull request, I'll get a notification for it. I want to make sure that I'm available when someone needs me to review something.


I myself have a pull request that needs to get a review. I just finished writing additional tests. I've made sure that my code is linted and typed using Flow. I'm ready to push again and get some eyes on it. While that's happening, it might be a good time to just take a quick stretch break.

I try to get up as much as possible. Sitting at my desk for long periods of time is a strain on both my eyes and body.


I just got a message from a junior colleague. He needs some assistance trying to get some code to work. I'm in the middle of a review, so I tell him that I just need about 10 minutes, and then I can help him out. It's a good thing to make sure that I'm not doing too many things at once.

Once I get around to it, I find that the best way to help my junior colleagues is to have them do a screen share while I watch and guide (I'm remote remember?). I never want to do the work for them, otherwise, what are they learning, right? I do my absolute best to be encouraging and guide them, in the same way I'd want them guiding me. It's win-win.


I switched gears back to review a PR that I was tagged on last night. They really need to get it out, so I'm taking a quick look. I try to git checkout the branch and test it if I can. It seems to be working as described. There are tests (otherwise this would not have passed my code review) and it's typed properly. CircleCI is green and everything looks A-OK. I give it a thumbs up emoji and click approve.


It's lunch time, so I'm going to take a quick break. It's about noon, so my colleagues in Budapest are ending their day. Anything that I needed to get in front of them, would have to be before noon, otherwise, I won't get a chance until the next day. This is something that I need to always keep in mind.

For lunch, I usually like to watch videos. I tend to read also while I eat lunch. I'm such a nerd, so I tend to watch conference talks and stuff, to learn new material. It's a constant learning experience being a developer and I constantly need to be aware of whats current, and constantly improve myself.


I'm time-boxing myself to finish up my toolbar project for 5 hours. At our company, we have to log our hours in a spreadsheet every Friday. Don't ask, but, just so you're aware, it's not because they're trying to be Big Brother. It's because our parent company needs to track how many billable hours are actively going into development work. It's okay. I use Wakatime to actively monitor how much I code in my IDE. It tells me how much time I spend in each branch.


I zone out into code land.


Ready to merge this thing now. I've gotten at least 1 thumbs up from a colleague, Circle is green still and I hit merge. I've got some tabs open just so I can monitor the progress. I had to VPN in to access Jenkins. While the deploy is happening, I'm actively monitoring Datadog. I need to make sure that my deploy has actually deployed, otherwise I could end up causing backup. The other developers wouldn't be happy with that.


It seems like my deploy went good. Datadog seems to be fine. Nothing out of the ordinary. Just normal spikes. I've successfully released my code. I made sure that it was behind a feature switch, so when I'm ready to mark my task complete in Asana, I can provide the feature switch to my product manager for use, to manually test it.

I'm pretty happy with the result and I'd say it's a good time for another break.


The latter part of my day is starting to creep up. I'm not burned out, but I'm definitely a hint tired from context switching. I typically spend the latter part of my day reflecting and thinking about what I intend on doing the next day. Not everyday is the same. Sometimes the entire day is spent coding. I'm ready for that beer now.


What's your day like?

💖 💪 🙅 🚩
mshertzberg
Michael Scott Hertzberg

Posted on August 26, 2018

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related