What I Learned Running a Remote Programming Competition in 2020

Our recruiting efforts for the Atomic Accelerator include hosting a programming competition we call the Atomic Games. Students team up to write AI, then compete against one another to win a game we designed. It’s usually an in-person event we run in both our Grand Rapids and Ann Arbor offices.

Unfortunately, because of the COVID-19 pandemic, the in-office event just wasn’t an option this year, so I endeavored to run it remotely instead. For anyone interested in trying to run a remote programming competition, here are some of the lessons I learned, plus how I think it will shape the future of the Atomic Games.

1. Remove as many technical barriers as possible.

Unlike a typical hackathon where participants start from scratch, we needed everyone programming for a common API. We still wanted to offer flexibility in things like the choice of programming language/environment, which meant (for example) providing SDKs for several major languages as starting points for the competition.

The beginning of each Atomic Games usually includes a tech support session where Atomic devs help make sure each participant is able to get started. Doing this in an all-remote environment is more difficult for several reasons. We tried addressing one common issue of unknown environments by moving our game server to a Docker container, but Docker itself presented some problems for participants.

Every minute that participants spend trying to get their environment set up and understand what’s expected of them is a minute lost to them coding. Not all of that setup is worthless (knowing who understands how to get started quickly is a valid data point for technical ability), but the heart of the competition is the programming.

I’m hoping we can make some improvements to our generic environment setup for future Games so that it’s even easier to get started. It might also be possible to use the setup task to ensure that every participant passes a minimum threshold for technical ability.

2. Introduce teammates to each other sooner.

The Games were run as a team competition, with pairs of participants working together on a common solution. Having teams allows us some small insight into how well people are able to work with others, and it provides additional motivation/encouragement in what might otherwise be a lonely and dull adventure.

I held off on assigning teams until the last minute. This was based on my concern that we couldn’t guarantee anyone’s participation. And in fact, we had several late drop-outs due to things like illness, schools changing class/exam schedules, etc. However, the trade-off was that teammates didn’t have much time to get to know each other before being thrown into the competition.

The social aspect of the Games is one of the reasons we love doing our technical screening this way. When everyone is remote, this becomes doubly important — yet more difficult. In the future, I think pairing up teams as much as a week in advance could really help, and it might also further incentivize a commitment to attend.

3. Include as much social interfacing as you can.

Along with allowing teammates to interact more, we obviously needed more interaction between the participants and Atomic Object employees. I honestly wasn’t sure how much of this to schedule over the weekend. I erred on the side of caution because we’re all Zoom-fatigued, because I didn’t want things to feel forced, and because I didn’t want to distract from the major programming task at hand. We had Atomic coaches check in with each team a few times on Saturday but otherwise left them alone unless they needed technical assistance.

We provided everyone a feedback form at the conclusion of the event to gauge what worked and what didn’t. Overwhelmingly, the most common feedback I got was that doing this all remotely was difficult and that getting to know teammates sooner and having more interaction/access to Atomic devs would have improved the experience.

Also, having a feedback form is fantastic!

4. Trying to do anything during a pandemic sucks.

I’m sure some of the challenges everyone felt were heightened by the stress of simply living through this pandemic and being physically constrained in all our interactions. Having more video chats over the weekend with all the participants might be a lot more fun if we didn’t spend all our working days glued to our computer screens. Debugging a technical issue in person is simply more pleasant than doing it over the internet.

I think we made the most of the situation and the options available, and I’m much happier having done the Games remotely than not doing them at all. This was just never going to be the most fun year of the Games. That’s okay. Sometimes the lesson is that every situation is unique; you just do your best.

5. Being able to have remote participants is great!

One amazing aspect of a remote Games was having participants who wouldn’t normally be able to compete! In the past, all participants had to come into our office. If someone farther away wanted to be considered for the Accelerator, we’d still interview them and have them do a traditional, solo programming challenge, but they couldn’t take part in the Games. This year we had students participate from all over Michigan, several from Ohio, and even one in California!

I strongly believe that the Atomic Games is a worthwhile and valuable experience as part of our hiring process. It’s a differentiator, and it’s hopefully a fun and memorable experience even for those participants that we don’t move ahead with. Being able to provide that experience to a broader range of participants is a huge win, and in that, I’m glad that the pandemic pushed me to make this happen. Necessity is the mother of invention.

What I’m truly excited about for the future is the prospect of a mixed-presence Games — attendance in person at our office for those that can, remote participation by everyone else. I’m not sure yet what form that will take, but this experience has given me a lot to work with and improve upon.

I want to thank everyone that participated in our Games this year, as well as all of my colleagues who helped out before or during the Games to make it a success. There were times in the past month where I was convinced that I’d made a bad decision and this would be a spectacular failure. I couldn’t have been more wrong, and that’s been the best lesson of all.