InfoEdge Senior Software Engineer(1-3yoe) Interview Experience
Summary
I went through a multi-round interview process with InfoEdge for a Senior Software Engineer position and was ultimately selected, receiving an offer.
Full Experience
My Interview Journey at InfoEdge
I was initially contacted by a recruiter via phone for the interview process. All rounds were conducted in person on the same day, making for a comprehensive and challenging experience.
Round 1: DSA + Basic Java
The first round focused on Data Structures & Algorithms and fundamental Java concepts. I was presented with two coding challenges:
I managed to articulate the optimal logic and code both solutions correctly within 30 minutes. Following the coding questions, I faced some standard Java questions covering:
- The difference between
finallyandfinalizekeywords. - The distinction between
ComparableandComparatorinterfaces. - The internal working mechanism of
TreeMap.
Having prepared these standard topics the night before, I was able to answer all three Java questions accurately. Verdict: Selected
Round 2: Project Discussion & Work Experience
After a brief wait, I was called for the second round, which was primarily a deep dive into my resume and past work experience. The interviewer thoroughly grilled me on my projects and professional journey. Key discussion points included:
- SpringBoot annotations, specifically
@Transactional, which I answered correctly. - Questions around Database indexing.
- Discussions on Microservices architecture.
- A Low-Level Design (LLD) problem where I had to design an e-commerce platform, outlining the main classes and potential APIs.
- A conceptual question comparing horizontal vs. vertical scaling.
Verdict: Selected
Round 3: Hiring Manager Round
After another short wait, I proceeded to the hiring manager round. This round involved one DSA question, one SQL query, and several managerial questions to assess my fit for the role and team.
Verdict: Selected
I received the results within 15 minutes, and the HR interview was scheduled for the next day. Final Result: Selected
I also interviewed with Meesho and was rejected in their HM round; I might share that experience if I get a chance. Until then, stay hard homies!
Interview Questions (10)
Max Consecutive Ones III (with A/B variant)
Given an array containing 'A's and 'B's, return the maximum number of consecutive 'A's in the array if you can flip at most k 'B's to 'A's. This was a variant of the LeetCode problem 'Max Consecutive Ones III' where 0s and 1s were replaced by As and Bs.
Next Permutation
Implement the next permutation function, which rearranges numbers into the lexicographically next greater permutation of numbers. If such an arrangement is not possible, it must rearrange it as the lowest possible order (i.e., sorted in ascending order).
Difference between 'finally' and 'finalize' keywords
Explain the difference between the finally block and the finalize() method in Java, including their purpose and when they are used.
Difference between 'Comparable' and 'Comparator' interfaces
Explain the key differences between the Comparable and Comparator interfaces in Java, and provide scenarios where each would be appropriate.
Internal Working of TreeMap
Describe the internal data structure and working mechanism of TreeMap in Java, focusing on how it stores and retrieves elements while maintaining order.
SpringBoot @Transactional Annotation
Explain the purpose and functionality of the @Transactional annotation in Spring Boot. How does it manage transactions, and what are its common uses?
Low-Level Design of an E-commerce Platform
Design a low-level architecture for an e-commerce platform. I was asked to identify and outline the main classes that would form the core of the system and briefly list the key APIs involved for interactions like user management, product catalog, cart, and order processing.
Horizontal vs. Vertical Scaling
Explain the fundamental differences between horizontal and vertical scaling in distributed systems. Discuss their respective advantages, disadvantages, and typical use cases.
Implement Stack using Queues
Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack should support all the functions of a normal stack (push, top, pop, and empty).
Nth Highest Salary SQL Query
Write a SQL query to find the nth highest salary from an Employee table, which has columns like id and salary. The query should handle cases where the nth highest salary does not exist.
Preparation Tips
My preparation involved reviewing standard Java questions, which proved beneficial for Round 1. For system design and architecture concepts, I relied on resources like Shreyansh's playlist on YouTube, which helped me with the SpringBoot and scaling questions.