Alto / Blog / Culture

What to Expect When You Interview as a Software Engineer at Alto

Thank you so much for considering an interview at Alto! At Alto, we’ve devoted a considerable amount of time refining how we interview candidates for software engineering roles. As engineers, engineering managers, and recruiters at a rapidly growing company, this is a big part of our jobs and we want to get it right: for the candidate, for ourselves, and for the team. We took the best parts of the interview process from the places we’ve previously worked and interviewed, eliminated stuff we thought wasn’t relevant, and added our own special Alto ingredients. Let’s dive in!

What does a Software Engineer at Alto do?

First and foremost, Alto exists to serve our patients--whether that be via building products, or providing exemplary service. Engineers at Alto are empowered to go the extra mile to make an impact for our patients, medical providers, and amazing pharmacists and care professionals. We are organized into small mission-focused teams where you will be working closely with Product Managers, Designers, Data Analysts, Data Scientists, and our Care team. Alto Engineers enjoy this cross-functional, collaborative environment where everybody has a voice in the direction of the product and the team. Compared to other companies, we are more end-user focused in most of our teams, even those that work primarily on platform and infrastructure.

Our pragmatic focus on impact includes making sure that we fulfill our company value of Patients Come First. We have a strong culture of code reviews, testing, documentation, and knowledge sharing to ensure that the service consistently meets our patients’ and providers’ expectations for quality and reliability.

Developing a Predictive Interview Process to Reduce Unconscious Bias

We want our engineering team to look like our customers — and we strive to serve everybody. Our mission is to fulfill medicine’s true purpose — to improve the quality of life — for everyone who needs it. In order to effectively carry out our mission, we believe our engineering team should reflect the rich diversity of our customers. Our engineers come from all backgrounds and took many varied paths to arrive here: self-taught, coding bootcamps, and top-tier universities. Prior experience ranges from none to decades at large public tech companies with many joining from other startups and consulting/contracting backgrounds. Reflecting this, we’ve put together an interview process that focuses on predicting job success over testing for rarely-used computer science knowledge and encourages hiring diversity of all kinds rather than filtering for a certain type of engineer.

The Interview

Throughout the interview, we work on problems that are facing Alto today or that we’ve dealt with recently. Our interview questions rarely have a “right” answer, and if you are writing code, any language works. (We spend our time mostly in Javascript, Ruby, and Go.) Occasionally, you will have more than one interviewer in the session. This is likely because one interviewer is shadowing the other to train, get calibrated, and learn how to deliver and interpret the questions while minimizing bias.

Exploratory Call (30 min)

This is a quick chat with a recruiter or a hiring manager to further expand on your experience, capabilities, and interests. Based on this, we’ll have a good idea for which team(s) you would be the best match.

Technical Screen (60 min)

This screen aims to validate your technical skills. You’ll be working in a networked IDE (like CoderPad) with an Altoid (what we call ourselves) to write and run code that addresses a typical problem that you might face at Alto. We’re looking for fluency in the language of your choice and some fundamental object-oriented programming design skills. 

Onsite: Coding Challenge (60 min)

This is based on a typical task that you might face at Alto - something like designing or interfacing with an API. You're welcome to use StackOverflow, Google, or any other resources at your disposal—including your interviewer! We’ll be observing how you understand the problem, communicate with your interviewer to develop requirements, and get to working and well-tested code. 

Onsite: Problem Solving (75 min)

In this section, you’ll spend some time getting to know a problem we have faced. You’ll spend 10-30 minutes working on how to approach and optimize a challenge that impacts our business everyday, then show that you can translate that into working code.

Onsite: Design and Architecture (60 min)

This module varies depending on your experience and interests. For some folks, we dive deeper into software design and learn how you would break up a hypothetical application into core modules. For senior frontend developers, this might be an app architecture challenge. And for senior backend developers, we’ll address systems architecture with an eye toward scalability, observability, and technology choices. In every case, we’re looking closely at how you approached the problem, gathered requirements, and justified your decisions.

Onsite: Hiring Manager (45-60 min)

The Engineering Manager is trying to deeply understand who you are as an engineer and a person. What do you get excited about? What type of roles do you like taking on within a team or project? What is your career arc and how can you best advance that at Alto? The questions often asked are behavioral or hypothetical in nature, and we love to hear stories about your proudest accomplishments and challenges you’ve overcome.

“I had an amazing interview experience with Alto - although the recruiters were super busy, they made sure to accommodate my timeline," shares Jacinda Zhong, Software Engineer, Core Services at Alto. "I was really pleased to find out that Alto asks questions based on the type of work I’d be doing - no obscure CS concepts, and questions centered around complex business logic that you’d encounter working at Alto. Before my onsite, my recruiter gave me a call to provide context on what they’d be asking. No gotchas and no surprises, plus lots of detail so that I could be prepared to do my best. So excited to be working here and contributing to a great mission!”

The Debrief

The interviewers get together promptly—we try to do it no later than the next day—to discuss next steps. Prior to our discussion, we individually assess your performance against a rubric that takes into account your level of experience and the requirements for the role.

There is rarely unanimity in the panel. Almost everybody at Alto was discussed in a panel where there were some mix of Yeses and Nos. Often, we ask ourselves questions like, “What is the candidate’s superpower?”, “What will they add to the team?”, and “For which open role are they the best match?” Our hardest decisions are the ones where we all agree that the candidate is somebody we want to work with but we don’t have exactly the right role.

Continuous Improvement

Don’t be surprised if your interview is slightly different from what is described here. We’re constantly refining our process to get to better hiring decisions more quickly and with less bias with regular feedback from candidates, interviewers and recruiters. 

Have you had an interview experience that you thought was exceptional? Let us know at feedback@alto.com.