This week, we’re joined by Eric Wastl, a Senior Architect at TCGPlayer and the founder of Advent of Code (AoC). Join us as we discuss the inception of AoC, how to avoid common pitfalls when solving code challenges in AoC, and what Eric gets up to in the “3.8 seconds” of free time he has per year.
If you’re looking forward to participating in Advent of Code after reading this interview, then you might be interested in a practical guide to puzzling with Advent of Code.
Ricky: Thanks for joining me, Eric. You’re perhaps most well known for being the founder of Advent of Code, which we’ll talk about shortly, but you’re also the Senior Architect at TCGPlayer. Tell us a little about your day-to-day life there and what interesting problems you get to solve.
Eric: I’ve been with TCGPlayer for about a year. The work I do ranges from tricky algorithms, Kubernetes, vendor selection, and infrastructure scaling to training, architecture planning, technical candidate assessment, and running big internal hackathons.
My days are a mix of things like talking to teams and individuals to help them work through their hardest technical challenges, algorithm design, high-level technical planning, and building things for tooling, automation, and visibility. My job covers many different types of problems!
Ricky: Advent of Code (AoC) started in 2015 and has been held every year since. For those that don’t know of the project, what is AoC and what inspired you to start?
Eric: Advent of Code is an Advent calendar full of programming puzzles. An Advent calendar is typically something where you count down the days until Christmas by getting a little chocolate or toy every day.
I like helping people become better programmers and I like making puzzles, so I was trying to come up with something I could send to a few of my friends. It was around Halloween, so I was thinking about upcoming things like Christmas and came up with the puzzles plus calendar idea as something that might be fun to do.
Ricky: If our readers want to take part in AoC 2021, what advice would you give to them? What are the common pitfalls and problems you see with participants?
Eric: The biggest pitfall is probably being too hard on yourself. You’re allowed to look up hints, ask for help, or skip a puzzle and try it again later. Above all, don’t get discouraged by the times on the leaderboards. The people that compete for the fastest solve times also do a lot of competitive programming throughout the year, and the skills required to be good at competitive programming are very different from the skills that make someone a good engineer.
Instead, focus on learning a new programming language, or a new language feature, or a new algorithm, or on finding an efficient solution, or even just solving a few puzzles—everyone has a different level of experience and background, and puzzles that are easy for some people will be hard for others. If you learn something and end up a better programmer than you were when you started, you succeeded—regardless of what anyone else did.
Ricky: With such a successful project, it must be a lot of work for one person. How can people get involved, other than doing the puzzles? How can they support AoC to make sure it continues for years to come?
Eric: The best way to help AoC is to help other people solving puzzles on AoC. By far the hardest thing for me to handle as Advent of Code grows is the size of the community and the number of people learning something new. You don’t need to be an expert to help someone. Often, just talking through a problem together is enough to get someone unstuck. I can’t be everywhere at once, but so long as the community continues its already impressive history of being super supportive to each other, I don’t need to be everywhere.
You can also help by telling more people about AoC, especially people who are just starting to get into programming and aren’t really sure what to build to stretch their skills. Advent of Code is full of a variety of different concepts and difficulties so that everyone can have a chance to learn something new, and a big hope of mine is that it can also fill some of the gaps for people who are just starting out and who learn best by doing but aren’t sure what to build next. Unfortunately, people who are just starting out are probably the hardest to find, so I rely on the community to spread the word.
Finally, for people who feel compelled and are able to do so—Not you, students! Go back to studying!—anyone who supports AoC with at least a dollar gets a badge next to their name on the site. This helps support things like infrastructure costs, the time I spend building and running AoC, and my sushi addiction. However, Advent of Code is free-to-use for everyone, so people shouldn’t feel obligated to do this unless they really want to.
Ricky: Now just a few last questions. What else do you get up to in your spare time? What other hobbies and interests do you have aside from AoC and programming?
Eric: Besides work, food, sleep, and Advent of Code, I have about 3.8 seconds per year, during which I do a variety of things. I play video games—the Outer Wilds expansion is excellent, anything by Zachtronics, Noita, Risk of Rain, Factorio, Satisfactory, Terraria, Minecraft, and lots of other stuff. I also watch anime and volunteer at Otakon (a big anime convention), play D&D, play with my dog, try to improve my cooking skills, and play the piano.
Ricky: Thank you for the chat, Eric. I wish you all the best with this year’s AoC.
If you’d like to get in touch with Eric or sign up for AoC, then you can head over to the Advent of Code website to get started. If you’re looking for a detailed walkthrough, you also might be interested in a practical guide to puzzling with Advent of Code.
If there’s someone in the Python community that you’d like me to interview, then leave a comment below or reach out to me on Twitter.