Advent of Code is a 25-day programming puzzle challenge. It’s exactly like an advent calendar, except instead of a piece of chocolate, you get an equally delectable coding puzzle. This year, in a fit of determination to prove something to myself (or maybe to the ICs [1]), I embarked on the journey.

It’s currently Day 13, but I could not get past Day 12. In fact, I almost didn’t make it past Day 7, and barely squeaked by Day 10 (part 2). I non-trivially adjusted my life to accommodate this challenge, mainly in the form of skipping morning runs since I stayed up too late coding. Here’s a couple takeaways.

Coding is enjoyable. [2]

It’s a nice change of pace directing all of my energy and focus into solving a singular problem. Too much of my job is spent bouncing from virtual problem to virtual problem, rarelly getting to a satisfying solution. This is the first extended period of coding since I became a manager, though I often daydream of it. I want to persist this practice; I’m setting a goal of coding 365 hours in 2024. While I could also consider switching my career back to full-time development, I’m certain that this company derives more value from my non-coding skills than from my coding ones.

Coding builds community.

Past companies I’ve worked at have had small pockets of interest in AoC but this is the most active contingent I’ve encountered. Even though I’m still pretty new to this company, it’s been fun joshing around with engineers I don’t work with. I’m really impressed by the enthusiasm and intellect of my coworkers, especially with the Engineering Director staking his claim in the top 5. I think the best software engineers (or any profession, for that matter) are the ones who derive some amount of genuine enjoyment from the activity.

Anyway, I’ve been on a beach vacation for the past several days. Something about cramming Day 10 into a red-eye layover and a bumpy flight to Nicragua really took it out of me. That sounds like a pretty good excuse for quitting now, doesn’t it?

[1] I think my plan backfired because I have actually proved the opposite.

[2] unless I don’t get the answer.

You can see my garbage code here. Days 1-3 were done in a very slow Swift playground, and then I borrowed (stole?) the launch config from a very good friend to start the rest.