What types of questions will you face at your next interview for a mid- or senior-level software engineering job? These days, hiring managers aren’t likely to ask you to reverse a linked list or create a palindrome checker on a whiteboard—at least, not right off the bat.
For example, Patrick Shyu, tech lead and founder of mentoring site Tech Interview Pro, intentionally keeps his questions broad to give candidates the chance to reveal their strengths. Those answers determine whether you move to the next stage, long before any whiteboard test.
Here are five examples of questions you may be asked in a software engineering interview, as well as the best ways to respond.
“Describe a particularly hard or interesting project you have delivered.”
Hiring managers are interested in knowing the project elements you think are significant, and how you deal with challenges, overcome obstacles, and learn from mistakes.
Tips: Good candidates don’t waste time. The well-organized technologists come armed with compelling stories to steer the conversation. An unprepared candidate, on the other hand, will either fumble the question or fail to explain adequately how they worked through a challenge. “It’s a communication test of sorts,” said consulting CTO Chuck Groom.
For example, can you display your technical expertise without getting lost in the weeds? Can you break down your workflow and the role you played in delivering results? You’ll get bonus points for highlighting transferable lessons that will benefit a new company, or teaching the interviewer a new best practice or technique.
“I’m looking for ‘we’ stories because I don’t want to hire a lone wolf who badmouths the rest of the team,” Groom added. Software engineering is a team sport.
“You’re the only person on call, when you receive a vague report that the company’s website is running slowly. What do you do?”
Hiring managers want to assess your ethos as well as your aptitude. They expect you to know how to troubleshoot and resolve a problem that impacts the customer experience and the bottom line, even if it’s not something you deal with every day.
Tips: Explain how you would find the source of the problem while highlighting your knowledge of production infrastructure. Make sure to take ownership of the problem because that’s the sign of a capable, competent, responsible person.
“What is your favorite software development process and why?”
Whether you prefer Agile, Waterfall or a hybrid development process, choosing the right one can make a dramatic difference in the success or failure of a project.
Tips: Hiring managers such as principal software engineer David Granado are interested in knowing why you and your teammates selected a particular model, and what worked (and didn’t work) as a result. Did you propose changes to the process, and if so, why? Most importantly, how did the process and its philosophy impact the way you interacted with colleagues, negotiated and resolved conflicts, and collaborated with customers?
“The top candidates focus more on the human element than the technology element, and they use a conversational style to convey their opinions and experiences,” Granado said.
“Here are some basic requirements and rules. Walk me through how you would go about creating a matching game.”
Many hiring managers use a mini-simulation to see how you’d think through real projects and tasks. They also leave out some details out or make them intentionally vague to see if you will engage and clarify critical information before proceeding.
Tips: Describe the process you would use to begin building the game, keeping architecture and scalability in mind from the start. Remember that what separates junior from highly marketable intermediate and senior-level engineers is the application of firsthand experience, along with the soft skills and practices that lead to great collaboration.
“Given a colored grid, how would you find the maximum number of connected colors?”
There are many ways to solve this problem, none of which are particularly tricky or require an “a-ha!” moment, Shyu pointed out. Rather, you can solve it using iteration or recursion, and it requires data structures such as hashmaps and arrays.
Tips: The best way to answer these questions is with humble confidence and speed, which demonstrates mastery. For example, a strong candidate will talk through the solution using Big O time-space analysis. They will say with assertiveness: “It is quadratic. This is why…”
A top performer will also give two to three solutions and provide justification for why one solution is better, all while leaving enough time for follow-up questions (such as requests to write an alternate version).
Poor candidates, on the other hand, begin coding right away. When asked for time-space analysis, they may answer correctly but without confidence and no strong explanation. No hiring manager wants to hear a lack of confidence from a supposed expert.