Much like working with our clients to design and build an application, putting together an interview process involves balancing competing constraints. We want plenty of time to get to know candidates, but keep time investment within reasonable bounds for everyone involved. We set up defined tasks and scenarios but also want to leave room for open-ended conversations and work.
I expect that our process is close to the norm for companies in our peer group. I’ve seen many examples of programming challenges from tech companies, and organizations who value culture like to spend time getting to know candidates. We fall into both categories.
What We’re Trying to Learn
Atomic’s interview process will make the most sense if you first understand what we’re looking for. Non-exhaustively (you can find more discussion on these topics on our website and blog), we’re looking for people who:
- Communicate clearly
- Are intrinsically motivated to pursue their chosen craft
- Demonstrate a high degree of self awareness
- Are broken-comb shaped people
- Can dive into new tools/situations and become effective quickly
- Are open to learning from perspective-shifting experiences
- Can develop a consultant’s awareness of value
1. Autobiography Questionnaire
After you send us an initial email or make contact through other means, we have a list of questions we’ll ask you to answer. Mostly, we’re looking for a little bit of example code and a few good stories to help us envision you working at Atomic. It’s an evolution of our essay from five years ago, but more directed.
We want to see clear communication, thoughtful responses, and ideally a little bit of your personality shining through. If we like what we see, we’ll reach out to schedule the next step.
2. In-person Meeting or Phone Call
We’re big on finding people that are a good match for our culture, and we think the best way for everyone to evaluate that fit is to meet in person. You get to see our offices, meet at least two or three people, see some of the projects we’re working on, and talk in-depth about what it’s like working at Atomic. Consider it a very brief (about 60 minutes) interview.
We hope you’ll learn as much about us during this visit as we learn about you.
If you’re not local or have prohibitive schedule conflicts, we’ll try our best to approximate the visit on the phone or via Skype/Hangouts video call. You’ll miss out on the snacks and coffee, though.
3. Programming Challenge
Next in the process is our programming challenge. In the previous step we did a lot of talking, and now we want you to get down to business and show us what you can do. The time investment here is somewhere around 8 hours over the course of a weekend (5pm Friday to 8am Monday, or equivalent). Two or three of us will look over the submitted code, instructions, test cases, etc. and evaluate how you did.
The challenge in its current state is a bit of a caricature—we exaggerate some characteristics in the challenge to try to draw out things we’re interested in.
We know its a significant time investment, but it’s also something that we hope you’ll enjoy taking a crack at.
4. Reference Checks
In parallel with the challenge, we’ll want to speak with three references—ideally one from each of the categories below. The more recently you’ve worked with them, the better.
- Teammates or colleagues on projects
- Managers, team leads, or equivalent
- Customers or end users of the work you produced
Our goal is to get a better picture, from a few different perspectives, of what it’s like working with you. Try to give us people who will give an honest, transparent assessment.
5. Full-day Interview
The final step in our process is the full-day, on-site interview at the Atomic office where you want to work. Generally, the interview day looks something like this:
- 8:45 – Arrive at Atomic
- 9:15 – Small-group Q&A session
- 10:00 – Company standup
- 10:15 – Small-group Q&A session
- 10:45 – Small-group core competencies interview
- 12:00 – Lunch
- 1:30 – Practical pairing exercise
- 4:00 – Done!
The Q&A sessions are what you probably imagine—we’ll talk shop, ask about experiences, make you tell us why you want to work at Atomic, and give you some time to ask questions about working at Atomic.
The core competencies session is more focused on investigating fit with our culture and non-technical expectations (what we sometimes refer to as “Kindergarten Skills”).
After you leave, those of us who participated in the interview meet as a group to discuss. Our goal is to advise the managing partners in our office on a hiring decision. We’ll reach back out very shortly to let you know our decision or follow up with a few questions.
And that’s pretty much it!
Other Things to Remember
- Sweat the details. Grammar, punctuation, and formatting always matter. Be on time. We care about how you present yourself, because if we hire you, the next person you present yourself to will be one of our customers.
- Ask questions about Atomic. As Mike Marsiglia frequently mentions during our interview process, there’s a large information asymmetry when you’re looking for a new job. You know more about yourself than we could hope to learn through an interview. So what we try to do throughout the process is provide information and insights into Atomic to help with that self-assessment, in addition to making our own evaluations. Expect to be asked how you view your fit with Atomic at one or more points in the process.
- Do your research. Learn what you can about us from our website and blog before you show up for your in-person meeting or interview. You’ll be able to ask much better questions and get a lot more out of the time. Being prepared is always a plus.
Think you’re a good fit for Atomic?
We’re hiring developers in our Detroit, Ann Arbor, and Grand Rapids offices, and now you know what to expect. Contact us to get the process started!