Summary
I successfully cleared my interview process for a Backend Engineer-L4 role at Target, which involved an online assessment, two technical rounds, and a hiring manager round over approximately 25 days.
Full Experience
My interview journey with Target for a Backend Engineer-L4 position began when a recruiter reached out to me on LinkedIn. The entire process took about 25 days from the initial contact to the final verdict.
Online Assessment
The online assessment consisted of three coding questions:
- A straightforward question involving simple loops and if-else conditions.
- A problem where I needed to find numbers divisible by
sqrt(n)within a given range[L, R], for which a stack-based solution was expected. - A dynamic programming problem that was a variation of the classic
minDistancestring problem.
Technical Interview Round 1 (60 minutes)
This round focused on a mix of DSA, system design, and theoretical concepts:
- I was given a DSA question on performing a zig-zag traversal of a binary tree.
- There was a quick discussion on designing an E-commerce site, though it didn't delve into deep discussions beyond my initial design explanation.
- I faced several theoretical questions covering topics like SOLID principles, the CAP theorem, and key considerations for upgrading Java from version 8 to 17.
- Finally, I was asked how I would sort all strings starting with a specific character 'c' within a
List<String> strListusing only Java streams.
Technical Interview Round 2 (60 minutes)
This round was purely dedicated to system design. I was tasked with designing a Personalized Promotion System. This involved gathering all requirements, providing rough API contracts, explaining my choice of database and why, and illustrating with sample database contracts. This round extended by about 10 minutes due to the engaging discussion.
Hiring Manager Round (45 minutes)
The final round with the hiring manager covered various aspects:
- I provided a high-level overview of my current organization's projects.
- I answered multiple STAR-based behavioral questions.
- We discussed the differences and use cases for RDBMS versus NoSQL databases.
- I shared my exposure to AI technologies.
- I talked about my contributions and responsibilities within my present team.
- Lastly, there was a discussion about my current compensation details.
I was happy to receive the final verdict of "Selected" after the entire process.
Interview Questions (15)
Given a range [L, R], find numbers divisible by sqrt(n). A stack-based solution is expected.
A variation of the minDistance string problem, likely requiring a dynamic programming solution.
Implement a zig-zag level order traversal for a binary tree.
Design an E-commerce site. The discussion was mainly around the design explanation.
Discuss the SOLID principles of object-oriented design.
Explain the CAP theorem.
Discuss key considerations and changes when upgrading Java from version 8 to 17.
Given a List<String> strList, sort all strings starting with a specific character 'c' using only Java streams.
Design a Personalized Promotion System. This included gathering requirements, providing rough API contracts, justifying the chosen database, and showing sample database contracts.
Discuss a high-level overview of projects in my current organization.
Answer multiple behavioral questions using the STAR method.
Discuss the differences and trade-offs between RDBMS and NoSQL databases.
Discuss my exposure and experience with Artificial Intelligence.
Discuss my contributions and responsibilities within my current team.
Discussion about my current compensation details.
Summary
I interviewed for a Software Engineer L4 position at Target India. The process involved an Online Assessment, two rounds focused on Data Structures & Algorithms and Low-Level Design, and a final Hiring Manager discussion. While the technical rounds felt quite positive, I believe my performance in the Hiring Manager round could have been stronger.
Full Experience
My interview journey for the Software Engineer L4 role at Target India began with an Online Assessment. This round consisted of three questions: two were LeetCode medium-level Data Structures & Algorithms problems, and the third was a problem that required knowledge of locks or the synchronized keyword.
The second round was a combination of Data Structures & Algorithms (DSA) and Low-Level Design (LLD). For the DSA part, I was given the "Sort Colors" problem. In the remaining 20 minutes, we discussed a System Design problem to create an ATM. This involved outlining the requirements, identifying key entities, and sketching their UML diagram.
Following this, the third round again focused on DSA and LLD. The DSA question was "House Robber". Interestingly, the interviewer asked me to open LeetCode and show my last submission for this problem. The LLD part of this round involved designing the low-level architecture for a platform similar to Stack Overflow.
The final round was with the Hiring Manager. This round was primarily behavioral and project-focused. The interviewer asked me about my most recent project, a significant bug I had fixed in the last month, and my motivations for wanting to join Target. We also discussed how I integrate AI into my daily work, and since I manage a microservice, how I ensure its regular monitoring. Finally, I was asked about any new technical skillsets I've acquired outside of my daily responsibilities and specific design patterns I've implemented in my past projects.
Overall, I felt the technical DSA and LLD rounds went quite well. However, I believe I could have performed better in the Hiring Manager round.
Interview Questions (11)
Design an ATM system. This involved discussing requirements, identifying key entities, and sketching their UML diagram.
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, and the only constraint stopping you from robbing each of them is that adjacent houses have security systems connected and it will automatically contact the police if two adjacent houses were broken into on the same night. Given an integer array nums representing the amount of money of each house, return the maximum amount of money you can rob tonight without alerting the police.
Design the Low-Level Design (LLD) for a Stack Overflow-like platform, considering its core functionalities and components.
Discuss details about my most recent project, including its scope, challenges, and my contributions.
Describe a significant bug I fixed in the last month, including the debugging process and resolution.
Explain my reasons for wanting to leave my current role (if applicable) and my motivation for joining Target.
Describe how I incorporate AI tools or concepts into my daily work or personal use cases.
Given my ownership of a microservice, how do I regularly monitor its health, performance, and reliability?
Share details about any new technical skillsets I have learned or added beyond my regular day-to-day work responsibilities.
Discuss specific design patterns I have utilized in my most recent projects and their application.
Summary
I had my interviews with Target for a Senior Engineer role, which I primarily used as a mock for upcoming opportunities. Unfortunately, I was rejected after the second round, which clearly showed me that I need to improve my HLD and LLD skills.
Full Experience
I had my interviews with Target today after completing the Online Assessment previously. All the interviews were scheduled for a single day.
Round 1 - DSA + LLD
This round focused on Data Structures & Algorithms and Low-Level Design.
1. Rotten Oranges: I was given the classic problem of finding the minimum time for all fresh oranges to rot in a grid.
2. Design Notification system LLD: I was asked to design a notification system at a low level, focusing on its various components and interactions.
Round 2 - HLD
This round was centered around High-Level Design.
1. Design Distributed Logging System: I was tasked with designing a distributed logging system, discussing its architecture and key considerations.
I was ultimately rejected after the second round. I didn't actually have a strong desire to join Target, but I used this experience as a crucial mock interview for upcoming, more significant opportunities. It was a valuable learning experience, and it clearly showed me that I need to dedicate more focus to improving my High-Level Design (HLD) and Low-Level Design (LLD) skills.
Interview Questions (2)
Design a Low-Level Design (LLD) for a notification system. Consider various notification types (e.g., email, SMS, push), user preferences, templates, delivery mechanisms, and handling of different message states (sent, failed, read).
Design a High-Level Design (HLD) for a distributed logging system. Consider components like log producers, aggregators, storage (e.g., Elasticsearch, S3), indexing, search, real-time processing, scalability, reliability, and data retention policies.
Preparation Tips
My experience in these interviews made it clear that I need to focus significantly more on High-Level Design (HLD) and Low-Level Design (LLD) concepts to prepare for future interviews.