Interviewing
Every company has its own interview process. But there are some common steps that you can expect to go through in most companies.
Recruiter Interview
Usually this is the first interview you get. This stage typically involves a short call with a recruiter from the company.
Their Questions
They give you a brief introduction to the company and the position and usually cover the following topics:
Your Background and Experience
While recruiters are familiar with the general topics and technologies of the domain they're hiring for, they are not technical experts. Answers to their technical questions should be concise, to the point, and should include common terms of the domain.
This can go deeper than a summary of your resume, and you might be asked the following questions:
- Your technology stacks
- The technologies you're interested in
- Numbers and metrics related to your previous projects. Depending on the domain you're applying for these numbers can be the number of users, the number of requests, the number of servers, etc.
The Reason You're Looking for a New Job
It's acceptable to be open to new opportunities even if you're not actively seeking to leave your current job. You could respond like this:
I'm not actively looking for a new job. But I'm open to new opportunities.
Beware of behavioral red flags and avoid giving unprofessional answers to these questions. We'll cover this in more detail in the Behavioral Interview section.
They might also delve more deeply into behavioral questions. So, make sure to prepare for those questions as well.
Your Salary Expectations
Whether you have your salary expectations ready or not, don't give a number in this process. This gives you more freedom when you're negotiating your salary. You can say something like this:
I'm not sure about the salary range for this position. I'd like to learn more about the position and the company before discussing salary.
The recruiters might persist in asking for a minimum salary range. Depending on your situation and knowledge of the market and company, you can provide the salary range that you believe to be reasonable and fair.
Your Questions
This is your first opportunity to learn about the company and the position. So, make sure to prepare a list of questions to ask the recruiter. I usually ask about the following topics:
- The reason they're hiring for this position
- Salary range for the position
- Contract length (if applicable)
- Size of the team
- Current technology stack
- Some questions about their business
By asking questions about their business, you show that you're interested in the company and the position.
Interview Process
Recruiters usually explain the interview process in this interview. However, if they don't, you can ask them about the next steps in the process. It's good to note that sometimes recruitment processes change in the middle of the process and the changes might not be communicated to you. Be prepared for this and don't be surprised if the process doesn't go as you expected.
Technical Interview
Depending on the domain, you may encounter a generic technical interview, or there might be different types of technical interviews like a system design interview or a coding interview. These interviews aim to evaluate your knowledge, but more importantly, they evaluate your problem solving skills.
In some interviews, you might be asked trivia questions that can be easily answered by a quick Google search. This is a sign of a bad interview process, and you might encounter more red flags in the company.
Technical interviews aim to assess your technical abilities. To preserve time, it's good to keep the introduction and small talk to a minimum.
Problem Solving in Technical Interviews
Problem-solving skills cannot be entirely learned from a few points, but some points get forgotten in the heat of the moment:
- Communicate with the interviewer
- Ask questions: The given problem is usually intentionally vague, and you need to ask questions to get more information and clarify the problem
- Think out loud: Explain your thought process to the interviewer and communicate your decisions
- Look for hints: The interviewer might give you hints if you get stuck. But they won't give you hints if you don't ask for them
- Start with the first solution that comes to your mind and iterate on it
- Don't try to find the optimal solution from the beginning
- Don't over-complicate the problem. Start with a simpler version of the problem and then add more complexity to it if needed
- Discuss trade-offs if there are multiple solutions
Coding Interview
This interview evaluates your ability to write code and your familiarity with algorithms and data structures. You might be asked to write code on a whiteboard, or you might be asked to solve a problem on a shared document or a code editor.
Make sure that you're familiar with the common collaborative coding platforms like HackerRank and CoderPad. You can ask the recruiter about the platform they use for the coding interview.
Preparing for Coding Interview
There are some resources that can help you prepare for this interview:
- Algorithmic problem-solving sites like LeetCode and AlgoExpert
- Books like Cracking the Coding Interview
- Interview videos on YouTube
And if you're looking for a more structured approach, you can check out these learning paths:
- Introduction to Algorithms (CLRS)
- Data Structure and Algorithms courses on Coursera or Udemy
Their Questions
You might also be asked some questions about your code:
- Time and space complexity of your solution
- Further optimizations of your solution
- Theory behind the algorithms and data structures you used
- Trade-offs of your solution
System Design Interview
This interview assesses your ability to design systems and evaluate trade-offs. You're asked to design a system that solves a given problem. The problem is usually intentionally vague, and you need to ask questions to get more information and clarify the problem. The interview is usually done on a whiteboard or a drawing platform and you're expected to draw diagrams of your design.
Make sure that you're familiar with the common drawing platforms like Miro, Draw.io, HackerRank, Excalidraw, etc. You can ask the recruiter about the platform they use for the system design interview.
Preparing for System Design Interview
There are some resources that can help you prepare for this interview:
- System Design Primer
- System Design Resources on Site Reliability Engineer (SRE) Interview Preparation Guide
- System Design Course
- ByteByteGo
- Grokking Modern System Design Interview for Engineers & Managers
- Crack the System Design Interview
- System design videos on YouTube
Their Questions
You might also be asked some questions about your design:
- Trade-offs of your design
- Cost of your design
- How to scale your design
- Operational aspects of your design like monitoring, logging, etc
- Reliability aspects of your design like fault tolerance, disaster recovery, etc
- Security aspects of your design like authentication, authorization, etc
Your Questions
This is a good chance to get to know the engineering culture of the company since technical interviews are usually done by engineers. I usually ask about the following topics:
- Team structure
- Collaboration between teams
- Project management and stakeholder management processes
- Incident management processes
- System ownership model: How clear are the boundaries and ownership of the systems?
- Service support model: How do service owners support their services?
- Big tech initiatives currently in progress
- State of documentation and knowledge sharing in the company
Behavioral Interview
Behavioral interviews or cultural fit interviews are used to evaluate your professional skills and your personality and how well you fit in the company. These interviews are usually done by the hiring manager or an engineering manager.
Preparing for Behavioral Interview
You can prepare for this interview by thinking about your previous experiences and how you handled them. There are also some lists of common behavioral questions that you can find online like this one
You can do some preparation for the interview as well:
- Write a brief introduction about yourself
- Write down your previous experiences and projects
Their Questions
These are some common questions that you might be asked:
- Reasons for leaving your previous job, challenges you faced there, and how you handled them
- The kind of environment and work that motivate you
- What's your specialization in your field? What are you good at? What makes you unique? (If applicable)
- Your previous experience
- A project you've been working on
- Describe the project from start to finish with full details
- What was your role in the project?
- What was the most challenging part of the project?
- What teams were involved in the project?
- What was the size of your team?
- What was the impact of the project?
- What technologies did you use?
- How was the operational aspect of the project handled?
- A project you've been working on
- How do you manage your projects?
- How do you clarify the requirements?
In essence, you'll be evaluated on the following aspects:
- Your communication skills, project management skills, and stakeholder management skills.
- Your ability to work in a team
- Your ability to handle conflicts
Red Flags
Here are some red flags that you should avoid when answering:
- Being late for the meetings
- Talking negatively about your previous company, team, or manager
- Demonstrating a lack of communication skills, such as being defensive about your answers
Your Questions
This is the best chance for you to get to know the position, team, and day-to-day tasks. I usually ask about the following topics:
- Details of the onboarding process. What would it look like in the first month, three months, six months?
- Day-to-day tasks
- Performance evaluation process
- Career growth opportunities
- Service ownership and support model in the team
- The team's structure
- State of documentation and knowledge sharing in the team
- Current projects
- The team's quarterly and yearly goals
- The team's technical debt and toil
- The team's impact on the company and business
- Any unanswered questions from your recruiter interview