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 worked on various projects at Groupon India and Paytm. Outside of work, Sudhir spends his time mentoring engineering students on building successful tech careers and is currently developing 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:
- Initial screening
- Online coding and/or other coding assessment
- Problem-solving, data structures, and algorithms
- High-level design (relevant for applicants with 3+ years of work experience)
- Low-level design
- Projects and/or past experience
- Behavioral discussion
- Discussion with HR and salary negotiation
Key Takeaways from the Conversation
- Initial Screening
Intent of this round: Recruiters and/or hiring managers gauge your fitment for the role they are hiring for. Having an impactful resume that is customized for the role you are applying for is important to create a good first impression. They also check your communication skills during the initial screening phase. In some companies like Google, recruiters ask you basic programming questions, such as 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. - 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. It is a time-based challenge spanning 1-2 hours. 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.
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. This round is relevant for applicants of all experience levels, right from SDE-1 to architects. It is one of the most important rounds. It is more than just solving a coding problem like you do on HackerRank or LeetCode. A lot of other factors are equally important:
- Don’t jump to writing code as soon as you see the problem. The interviewer wants to evaluate your problem-solving approach first.
- Ask the right set of questions to understand the problem and comprehend its full scope.
- Two possibilities: Discuss the possible solutions and pick an optimal one to code OR solve it first and optimize later.
- Other aspects that are often ignored but are very important: How readable is your code? Did you choose meaningful variable and function names? Do you pick the right test cases to prove the accuracy of your solution? If you find errors, how do you go about debugging them? Be methodical; don’t start refactoring your code randomly.
- High-Level Design
Intent of this round: Can you understand the tradeoffs, make reasonable design choices, and communicate them effectively in an interview setting? Relevant for candidates with 3+ years of work experience, but this varies between companies. Typical questions: design the high-level architecture of products like Netflix, Uber, and Instagram. The 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 every day.
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? Relevant for candidates with 1+ years of work experience, and sometimes freshers as well. Design database schemas and/or entities that are part of an effective object-oriented design. 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 a 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:
- What if it is a multi-level parking lot?
- What if we introduce reserved parking spaces for some class of users?
- What if extra-wide vehicles, like trucks, have to be accommodated?
Your design should be flexible/scalable, and you should not have to make major architecture changes to accommodate new requirements.
Behavioral 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. This round is as important as the technical rounds, so please don’t take it for granted. 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:
- If you have a conflict of opinion with a team lead, how will you handle it?
- What is the most challenging task you have worked on in the past six months?
This conversation highlights the importance of preparation for tech interviews, focusing not only on technical skills but also on effective communication and cultural fit.
Watch the entire video below