At the end of 2019, I started looking for a new software engineering job, something I hadn't done in almost five years. I'd been very involved with my previous company's hiring process, helping design our interview process and running dozens of interviews for engineering and product team candidates at every level and role, so I thought was ready to be on the other side of the table.
Welp, surprise surprise, turns out I was super rusty. After floundering through my first couple behavioral interviews, I realized I couldn't go into these things cold. I needed to put some work in.
To prep, I put together two lists of questions (compiled from these excellent resources) -- ones for me to ask the interviewer ("Questions for them") and ones I'd expect to have to answer myself ("Questions for you") -- and kept both lists in front of me to reference as needed during interviews. I wrote out short answers to all the "Questions for you" in advance, prepping a couple different examples for each, so I could choose one in the moment best suited for the role/team. I also made of a copy of the "Questions for them" for each company and took notes on their answers during the interview. Keeping track of all the different responses made it easier to compare and contrast these opportunities later, but also provide direct, specific feedback afterwards, including thank you notes ✨
I ended up putting more work into these questions than more purely technical prep (memorizing algorithms, etc). That might surprise you, but it unquestionably paid off. Having this Q&A at the ready enabled me to get the information I needed from each interviewer and have a fun conversation while doing so. And when it came time to make a decision, it was easy to compare notes and say yes to the right team.
Below are both lists. You'll notice the questions aren't specific to any particular role, stack, or level. Rather, they're intended to be broadly applicable for anyone interviewing for a role on an engineering team -- or at least give you a good starting point that you can refine and adapt to your specific situation. I hope they're as helpful for you as they were for me.
What does this team need, and how can you help them?
What's the story for this team in the coming year?
How much of the team's workload is maintenance vs. building new features?
What are you working on now that you're most excited about?
What's broken right now that you want to fix?
What separates someone who does good work from someone who does great work in this role?
What are some of the skills you've learned on the job so far?
What kinds of tasks would I do on a "usual" day?
How the team works is just as important as what the team works on.
Can you walk me through your team's development process, from planning to shipping?
During your time on the team, what processes have you seen break down? How have you adjusted?
What does your onboarding process look like?
Does your team have a standard development environment? Does everyone use it?
What's your team's approach to pair programming?
What does your deployment process look like?
How quickly can you set up a new test environment for the product? (mins / hours / days)
How does this team like to communicate? Does it match your style?
How does your team deliver and handle feedback? Is there a formal process, ad hoc, both, neither?
How are differences of opinions resolved?
What kinds of tools and processes do you use to support remote/asynchronous work?
Who takes notes during meetings?
Who maintains documentation?
How much input/influence do developers have in team processes vs. the manager?
How do you raise issues when you observe them?
There's a lot you can (and should) cover in this area, so check out the "Communication and Feedback" and "Dealing with Conflict" sections below for more questions that apply to both interviewer and interviewee.
Fact check your understanding of the team's structure.
How much specialization is there in roles?
What's the junior/senior balance of the team?
Tell me about your manager.
Does the team include dedicated product managers, designers, or QA engineers?
Who are your primary stakeholders? How often do you interact with them?
How much of the support burden falls on engineers vs. QA team vs. support team vs. the end user?
Do you have an on-call rotation? (If yes) Who's on it and how is it managed?
Don't miss the opportunity to get an inside perspective on the company itself.
What do you like about COMPANY compared to other companies you've worked at?
How does the engineering culture differ from the overall company culture?
What are some of the biggest challenges facing COMPANY right now?
Are there known problems that COMPANY is trying to solve right now?
What problems would COMPANY be foolish not to fix in the next year?
Show them you've done your research.
List company values. Prep an example for each one.
What do you think your potential impact at this company could be?
What do you think the impact of this company could be?
What would make you choose our company over others?
If you come in, what will your first order of business be?
See if their expectations stack up to yours.
Why do you want to leave your current job?
What are you looking for in your next role?
What's important to you in a team?
What are the three things that are most important to you in a job?
What's the role you tend to fill when in a team? ("Workhorse", "Leader", "Morale booster", "Coordinator", "Specialist", etc.)
Talk about about a time in the last week/month/year when you've been satisfied, energized, and productive at work. What were you doing?
Here's your chance to tell (and show) what you'd be like to work with as a teammate.
Talk about about how you collaborate with people who have a different background than you.
Talk about about your code review process.
Talk about how you accept/deliver feedback to/from team members.
Talk about about a time when you were communicating with someone and they did not understand you. What did you do?
Describe a situation where you needed to persuade someone to see things your way. What steps did you take? What were the results?
Have you ever had to "sell" an idea to your coworkers or group? How did you do it? What were the results?
What's one critical piece of feedback you've received that was really difficult to hear? Why was it difficult and what did you do with that information? What did you learn about yourself?
What's some constructive criticism that you got at your current job, and how have you tried to address it?
When was the last time you asked for direct feedback from a superior? Why?
These questions can be some of the most revealing -- for you and them. Stay alert for red flags.
Give an example of when you had to work with someone who was difficult to get along with. How did you handle interactions with that person?
Everybody has off days. How do you handle those?
What do you do if a team member is having an off-day?
Do you have an example of how you have boosted morale in your previous role?
What do you do when you don't see eye-to-eye with a team member? How do you move forward with a project?
Talk about about a time when you had to admit you were wrong. What did you learn?
Describe a time when you felt stressed or overwhelmed. How did you handle it?
Same as above, these questions can tell you as much about the company as the candidate. Be ready with clarifying follow-up questions.
Can you share an experience where a project dramatically shifted directions at the last minute? What did you do?
Talk about about the last time something significant didn't go according to plan at work. What was your role? What was the outcome?
Talk about about the biggest change that you have had to deal with. How did you adapt to that change?
Talk about about a time when you had to adjust to a colleague's working style in order to complete a project or achieve your objectives.
Describe a situation in which you embraced a new system, process, technology, or idea at work that was a major departure from the old way of doing things.
Recall a time when you were assigned a task outside of your job description. How did you handle the situation? What was the outcome?
How much learning and growth is expected as part of this role, and does it line up with what you're looking for?
What are some things you want to learn more about?
What do you read to stay up-to-date?
What was the best new thing you learned in the last year?
What do you do in your job that's not in your job description? How did you identify those opportunities?
Describe a time when you volunteered to expand your knowledge at work, as opposed to being directed to do so.
Describe a skill you had to acquire on-the-job to accomplish something you needed to do.
Talk about about a time when you were asked to do something you had never done before. How did you react? What did you learn?
How do you get stuff done?
Imagine you are starting a new project (pick a sample project related to the role) - take me through your initial planning process?
Talk about about a project that you planned. How did you organize and schedule the tasks?
Talk about about a time when you had to juggle several projects at the same time. How did you organize your time? What was the result?
Give an example of a time when you delegated an important task successfully.
How do you determine what amount of time is reasonable for a task?
Talk about about a time you set difficult goals. What did you do to achieve them? Walk me through the process and purpose.
When it's crunch time, how do you handle a big volume of work?
How does your workflow change when you have a generous deadline vs. a tight deadline?
How do you balance getting your work done vs. being available to help teammates or chip in on team tasks like bug reports or out of process tasks that pop-up?
What kind of leader are you? What kind of leader do you want to work with?
Give an example of a time when you felt you led by example. What did you do and how did others react?
Describe the best partner or supervisor with whom you've worked. What part of their managing style appealed to you?
Recall a time when your manager was unavailable when a problem arose. How did you handle the situation? With whom did you consult?
What's the the toughest decision you had to make in the last six months?
Go ahead, brag a bit.
Discuss a project or two that you're very proud of.
What's the biggest career goal you've ever achieved?
Talk about about one of your favorite experiences working with a team and your contribution.
Talk about about a project you were primarily/solely responsible for shipping end-to-end (from ideation to launch). What inspired the idea? What determined what features you built and didn't build?
Demonstrate your smarts.
Give two scenarios where you would and wouldn't use LANGUAGE (ex. Ruby, Elixir, Go, etc).
Give two scenarios where you would and wouldn't use FRAMEWORK (ex. React, Node, etc).
Talk about about a recent project and what you(r team) could have done better.
What are some of your coding pet peeves or issues that you make your mission to correct?
What are some of your favorite tools to work with? What are the tools you're most comfortable with? Which aren't you comfortable with?
What are some strategies you use to navigate ambiguity in the workplace? (e.g. feature requirements, management decisions, etc)
Don't forget about sharing a little bit about you, as a person.
What does work/life balance look like for you?
What do you do for fun?
What's the most interesting thing about you that's not on your resume?
What's the biggest misconception your co-workers have about you and why do they think that?
- Tech Interview Handbook
- Key Values, "Culture Queries"
- Lever, "Software Engineer Interview Questions to Ask"
- Laurence Bradford, "15 Questions Technical Hiring Managers Love To Ask In Interviews "
- Scott Morris, "The Most Important Technical Interview Questions You Need to Prepare For"
- Todd Jackson, "The Best Interview Questions We've Ever Published"
- Sarah Katz, "Interviewing Your Interviewer: How To Know What Questions To Ask At An Interview"
- Andrew Stetsenko, "20 Questions To Ask A Recruiter When Looking For A New Tech Job"