Sudhir is a Computer Scientist at Adobe where he has made key contributions to several products including Adobe Sign, Adobe Target and Adobe Campaign. Before joining Adobe, he has worked in Groupon India and Paytm. Outside of work, Sudhir spends his time mentoring engineering students on building successful tech careers and is currently working on creating technology courses.

Ajay is a founding team member at Crio and leads the learning delivery team.

In this conversation, Sudhir talks to Ajay about the various interview rounds in the tech hiring process and shares his insights on how best to prepare for them.

Coding interview rounds

Below is a list of typical rounds in the tech interview process:

  1. Initial screening
  2. Online coding and/or other coding assessment
  3. Problem-solving, data structures, and algorithms
  4. High-level design (relevant for applicants with 3+ years of work experience)
  5. Low-level design
  6. Projects and/or past experience
  7. Behavioural discussion
  8. Discussion with HR and salary negotiation

Key takeaways from the conversation

1. Initial screening

Intent of this round: Recruiters and/or hiring managers gauge your fitment for the role they are hiring for.

  1. Having an impactful resume that is customised for the role you are applying for is important to create a good first impression.
  2. They also check your communication skills during the initial screening phase.
  3. In some companies like Google, recruiters ask you basic programming questions - like performing a merge sort. In such cases, the initial screening round is also used to filter candidates.

If you pass the initial screening stage, you typically proceed to the online coding assessment stage.

2. Online coding challenge and/or other coding assessment

Intent of this round: Assess your coding competence in a language of your choice (usually)

This is a set of coding questions that you have to solve on platforms like HackerRank.

  1. It is a time-based challenge spanning 1-2 hours.
  2. The questions are usually of increasing levels of difficulty.

Note: For front-end or full-stack roles, expect to take a coding assessment - like creating a web page from scratch.

3. Problem solving, data structures and algorithms

Intent of this round: This round reveals how you will approach and solve problems on the job when you get hired and work with the interviewer.

  1. This round is relevant for applicants of all experience levels - right from SDE-1 to architects.
  2. It is one of the most important rounds.
  3. It is more than just solving a coding problem like you do on HackerRank or LeetCode.

A lot of other factors are equally important:

  1. Don’t jump to writing code as soon as you see the problem.
  2. Interviewer wants to evaluate your problem-solving approach first.
  3. Ask the right set of questions to understand the problem and comprehend its full scope.
  4. Two possibilities: Discuss the possible solutions and pick an optimal one to code OR solve it first and optimise later.

Other aspects that are often ignored but are very important:

  1. How readable is your code?
  2. Did you choose meaning variable and function names?
  3. Do you pick the right test cases to prove the accuracy of your solution?
  4. If you find errors, how do you go about debugging them? Be methodical, don’t start refactoring your code randomly.

4. High-level design

Intent of this round: Can you understand the tradeoffs, make reasonable design choices and communicate them effectively in an interview setting?

  1. Relevant for candidates with 3+ years of work-experience, but this varies between companies.
  2. Typical questions: design the high-level architecture of products like Netflix, Uber, Instagram.
  3. Goal is to assess how you think about the individual building blocks that come together to form a large application used by millions of users everyday.

5. Low-level design

Intent of this round: Can you design the required entities and well-structured code that is flexible enough to accommodate emerging requirements?

  1. Relevant for candidates with 1+ years of work-experience. Sometimes, freshers as well.
  2. Design database schema and/or entities that are part of an effective object-oriented design.
  3. How are you thinking about the database schema and classes? What are the relationships between the classes? How are you using inheritance to create an effective hierarchy of classes with the right level of abstraction.

You will put all your OOP skills to use in this round. Take this classic example: design parking lot. You are expected to come up with a database schema and/or class design for this use-case. In addition, below are a set of follow-up questions that might come up:

  1. What if it is a multi-level parking lot?
  2. What if we introduce reserved parking spaces for some class of users?
  3. What if extra-wide vehicles - like trucks - have to be accommodated?
  4. Your design should be flexible/scalable and you should not have to make major architecture changes to accommodate new requirements.

6. Behavioural discussion

Intent of this round: Evaluate how you react and perform in different scenarios and if you are a good cultural fit in the company.

  1. This round is as important as the technical rounds, so please don’t take it for granted.
  2. The answers you give to questions asked in this round are reflections of your personality. You can’t fake it. But you can practice how to communicate your thoughts effectively.

Examples

  1. If you have a conflict of opinion with a team lead, how will you handle it?
  2. What is the most challenging task you have worked on in the past six months?

Watch the entire video below

Cracking the Coding and Design Interviews w/ Sudhir Miglani | Crio Big Variable Series