Because coding is play and engineering is work.

What’s less obvious is that play gets more work done than work. Free from obligation, you can explore more options, discover new possibilities, and stay in flow for longer.

Let me show you.

Here’s a typical week of engineering according to my time tracker. I try to click the button every time I context switch for more than 5 minutes. Call it research into office culture, if you will.

Each column is a day
Each column is a day

This data is by no means perfect. Context switches happen within categories; I forget to click the button; and I’ve given up capturing the small distractions that happen.

I also spend too much time in faux meetings on Slack. Those donโ€™t show up here.

But you can see a trend: most work happens in half-hour and aaaalmost-an-hour intervals. Then something comes up, and I have to switch. QA bugging out, absolutely horribly urgent code reviews that must happen right this instance, a deployment here and there, or a short meeting or two.

If I’m very lucky, I get to work on something for almost 2 hours. Sometimes, if the stars align just so, almost 3. That happened three times this week. Three times all week that I focused for more than an hour. ?


Now compare that mess to a night of coding.

I started at 12:30am after a short nap. Before me, a choropleth map of household incomes.


By 1:38am, it was a choropleth map of income disparity between the tech industry individuals and the median household. And a histogram.

At 2:35am, the map could focus on specific US states, and the histogram had a line that showed median household income in that state against a backdrop of tech salary distribution in said state.

By 3:46AM, the visualization had filtering controls, a dynamically updating title and description, and was ready to go.

At 4:47AM, it launched, complete with Twitter cards, Facebook open graph stuff, embedded tweets for retweeting, and an email form so people can sign up for more.

It flopped on the open internets with just 1500 uniques, but look at that timeline. 4 solid hours of coding, and a whole thing was born. In the context of engineering, something like this would take a week, involve 2 engineers, 1 project manager, 1 designer, 3 meetings, and 2 QA people. The end result would be 10% better.

Sigh.

PS: the viz flopped because I tried to give it a spin that doesn’t gel with the audience that received it, and I have to improve initial load time somehow. Lessons learned.

Learned something new? Want to become a better engineer? ๐Ÿ’Œ

Join 9,400+ people just like you already improving their skills.

Here's how it works ๐Ÿ‘‡

Leave your email and I'll send you an Interactive Modern JavaScript Cheatsheet ๐Ÿ“– right away. After that you'll get a thoughtfully written email every week aboutย React, JavaScript,ย  andย lessons learned in my 20 years of writing code for companies ranging from tiny startups to Fortune5 behemoths.



Man, I love your way of writing these newsletters. Often very relatable and funny perspectives about the mundane struggles of a dev. Lightens up my day. ~ Kostas

PS: You should also follow me on twitter ๐Ÿ‘‰ here.
It's where I go to shoot the shit about programming.