I’ve been intrigued by programming ever since I was 6 years old and first became highly interested in computers, and I’ve programmed professionally for almost 25 years now. This year was the first time I spent a fair bit of time doing “competitive” programming, participating in the Advent of Code 2020 “holiday calendar”. The most I’d done before this was to try my hand at a handful of Project Euler problems. Advent of Code was a lot more fun.

All 50 stars, what a beautiful sight!

Although I somewhat compulsively felt a need to collect all 50 stars (see above 🤓) by completing both parts of all problems, I didn’t participate in a competitive manner at all. The problems were released at 5 AM each morning my local time, and between work, family and self-care, there was just no way I could get up that early. Not only that - even if I’d been up that early, the folks who make it to the leaderboard are so incredibly fast that I’d need a lot of practice with competitive programming before I could have even a small a chance of competing with them. We’re talking lots of problems that would take me half an hour or more, that every one of the fastest 100 completed in under 5 minutes!!

I’m not sure whether I will participate again next year, but it’s definitely tempting. For me, this was a whole lot of fun, although also at times frustrating. I probably spent about an hour a day on average - some days a lot more, some days closer to 20-30 minutes, and it’s not exactly the least stressful time of year to take that amount of time for something that’s mostly just fun, and not really a necessity.

There are benefits though, other than the fun. This year, I wrote all my solutions in Elixir, a functional programming language I’ve used in my work (along with Erlang, JavaScript and C++) for the last 5 years or so while building CrankWheel. Even though I have a bunch of experience using the language, I’ve done less heavily-algorithmic work in Elixir than in Erlang, and the daily practice of creating solutions to the Advent of Code problems has significantly upped my level of comfort with Elixir and with functional-programming idioms in general.

If you enjoy programming and problem-solving, I recommend taking a look at Advent of Code. No need to wait until next year, all previous years’ problems are online now and you can participate any time you want, although it’s fun to do it at the same time as everybody else, so you can get support and laugh at the inside jokes on the AoC sub-reddit.

Finally, if this is your cup of tea and you think you’d be interested in working with me and the rest of the CrankWheel team on real-time communications solutions using Erlang, Elixir and more, why not get in touch with me? We’re always on the look-out for talent, and we are a fully remote team.