Programming Challenges: A System for Vetting Job Candidates

kristen @ upstate interactive
Upstate Interactive
3 min readJun 5, 2019

Small business growth is always exciting, but every company experiences bumps in the road as they scale. For us right now, it’s managing the volume of applications that are coming in for our developer positions.

Our flexible and supportive company culture (plus the cool projects we get to work on) has attracted many prospective hires to our open job positions. We are incredibly fortunate that so many people want to work with us, and it means a lot — we are hyper-focused on maintaining an environment that attracts highly talented people who want flexibility, autonomy, and personal/professional growth.

We receive, on average, upwards of eight applications per day, and want to identify those that we can invest in, not just financially, but from a growth perspective as well. At Upstate Interactive, we want to help all of our team members to do big, exciting things, ask tough questions, take on challenging problems, and to live happily and healthily.

Our company only grows with the help of all the amazing people we are lucky to work with. People are everything, and as our team continues to grow, we’re working on ways to improve how we hire engineers to add to our team. Reviewing all of the résumés and applications can quickly become overwhelming.

To make this more manageable, we recently instituted a system for vetting candidates that involves issuing engineering challenges to prospects before we schedule interviews with them.

This has been a really helpful practice for us because it allows us to more easily measure different candidates on a variety of factors. We can efficiently assess what they can and can’t do at this point in time, how quickly they work, and how well they document their code — an essential skill as a developer.

We are all about systems in this company—they are integral to how we operate—so having one in place to vet prospective hires and quantitatively measure their engineering talent helps us more easily manage all of the applications that come through every day.

The interviews themselves are still the most important element of the process; however, these engineering challenges help to ensure we’ve effectively qualified applicants and that we’re only interviewing those who we may actually hire.

We have a few different challenges.

In our Angular challenge, the applicant must demonstrate front-end knowledge by working within the Angular framework to pull data from GitHub’s API and display that data in a list. There are specific deliverables required to complete the challenge and a bonus deliverable for those who want to show off their skills even more.

When hiring a smart contract developer, we give applicants a more in-depth Ethereum challenge with multiple objectives, including demonstrating knowledge of Solidity, Truffle, and OpenZeppelin. We also take a look at how well their code is documented and require seven deliverables from developing token contracts to processing ETH-based contributions, and of course, implementing unit tests. There are a couple of bonus deliverables here too, but you’ll have to apply to find out what they are!

We ask prospective hires to submit their code for the challenges within five business days. This, too, provides an insightful metric — given the deadline, how quickly did it take for the prospects to submit their code? Did the deadline impact the code’s quality?

Want to show us what you can do? We’re hiring!

Our team is always looking for great people to come on board. In addition to a laid-back culture and the opportunity to work on awesome projects, we also offer unlimited PTO, retirement, health insurance support, and remote working opportunities.

View our current open positions on our Careers page.

--

--