Round 1: Application screening round and duration for this round was 30 minutes. Someone from talent acquisition called to get background in my projects and experience. Current Company Work + Previous Internship Work Done. Languages/Frameworks used till now. College Projects and other basic technical questions. Then she informed us they have 2 profiles:
- Web Developer (More related to FrontEnd)
- Software Engineer(Mostly Backend work)
She asked for which of the positions I want to give interviews?
Round 2: DS/Algo round and duration for this round was 1 hour. Number of Questions to be solved 2.
We have to write end to end code in shared Google DocQuestion
- Merging overlapping Intervals (Slight variation)link: https://leetcode.com/problems/merge-intervals/Question
- You are given a tree. Your task is to print the deleted leaf nodes recursively until the tree becomes null. (in Left to Right Manner) (You don’t need to actually delete it)While deleting you have to print the node.value. If the tree is 1, 2, 3, null, null, 4, 5 In that case answer should be: After 1st call, 2, 4, 5 will be deleted as they are leaf nodes. Subsequently, 3 will be deleted as it’s a new leaf node. At last 1 will be deleted. So the answer is to be printed in the following manner nodes to be deleted in 1st call: 2, 4, 5 Nodes to be deleted in 2nd call: 3Nodes to be deleted in 3rd call: 1At first I gave brute force approach O(n*n). After which he asked me to optimize further, as we only need to print the nodes. At last, I gave a solution in O(n).
Basic Requirement from this round is you have to solve one question with the most optimized approach and another one with approach discussion or partial implementation. In my case, both of the questions were solved, so there is no further DS/Algo round. Otherwise, they will schedule one more DS-Algo Round. After this round, in one-week. Hr called to inform the remaining round structure.
Round 3: Hiring Manager round duration was 1 to 1.5 hour.
He started with his introduction. He was a very senior person who is handling 4 to 5 big teams in the field of Machine Learning, Big Data, etc.
- Tell me about yourself.
- Asked what I have worked on in 1.5 years. Also, he asked to explain the internship projects as well.
- Current Project and Framework Architecture.
- Then he started to go in-depth in Machine Learning. (As I had done some project in Machine/Deep Learning)
- Underfitting vs Overfitting
- Regularization- Internal Working of MFCC (Speech feature detection algorithm)
- Significance of Delta+Double Delta features in MFCC.
- How and Why Fourier Transformation is used in MFCC
- Neural Network, InceptionNet, Transfer Learning.
- Why Transfer Learning is used in your project (Benefits-drawbacks-intuition).
- How learning of a model that is trained over image dataset is beneficial in speech-related projects?
- (Again Transfer Learning Concept)- Diff between Process and Thread.
- Tell me a scenario where instead of going for thread you’ll prefer process.
Round 4: Tech Discussion round duration was 1.5 hours.
Introduction- Projects + Work ExDatabase: Asked 3-4 queries which are related to Group By, SQL Joins, SubQuery, etc.
- What is indexing?
- Gave 2-3 different queries with different “where” clause. You have to identify which query indexing will be used? In which cases, if we create a secondary index it would be good.
- Primary vs Secondary Index- Indexing Internal working (Algorithm side)- Even though, in HashMap O(1) lookup is possible, why we are using B-Tree (Where complexity will be logn).
- Why B-Tree is preferred over normal BST (Height balanced) in DB?- Can you explain how BST Search is in logn only? (I told, because every time we have only two choices, either go to left or right. In counter to this, he asked but why it is logn only and not something else like loglogn or n/2). Then I explained in terms of search space.
- Deadlock- Race Condition (Theory + Practical scenario)- Critical Section problem- In the case of Critical Section Problem, what strategy is used to resolve?
- Java Threading and Synchronization (Explain in terms of “Critical Section Problem” ). Java Synchronization is using Object Monitors(which internally using semaphores) which is a very famous technique to handle “Critical Section Problem”.
- Cookie vs Session. What is the difference? Where it’s maintained?- DNS lookup- public vs private IPOOPS.
- Basic concepts and real-world application of inheritance, abstract classes- Famous Java Interface which you use in day to day life? I explained about SerializableDesign Concepts:
- Gave 3 topics
- Abstract Class
- Explain the difference in terms of designing a system. Give 3 system design examples (one example per topic) where you think that a particular topic is most suitable over others.
- Why in most of the cases, “Composition is preferred over Inheritance”? (Very famous question – which is also the base of many design patterns – Factory/Strategy etc)- “Program to an interface, not an implementation” Can you please explain this design principle?
After that HR informed us that we are done for the day.Result: Within 2 days I received an offer from them. In just 3 rounds, they covered almost all important things in Computer Engineering.
Tips: Along with strong DS-Algo, they are preferring candidates with good project background.- Also, they expect you to have a clear understanding of OS-DBMS-Networking. It is expected that you know how OOPs are going to be used when designing the system. Also, it would be good if you have some idea about famous design principles (And 4 to 5 famous design patterns)