Intuit | SDE2 | Bangalore | Dec 2024
Summary
I recently interviewed for an SDE2 role at Intuit in Bangalore. While I successfully navigated most technical challenges, including solving several DSA problems and implementing API functionalities, I ultimately received a rejection due to identified issues in my API error handling and exception management.
Full Experience
I applied for an SDE2 position at Intuit in Bangalore after being directly contacted by a recruiter on LinkedIn. The process began with an Online Assessment (OA) which I had two days to complete. The OA comprised two medium-difficulty DSA questions (one on linked lists, one on arrays) and five MCQs covering core technical concepts.
Two days later, I was informed that I scored 94% on the OA, leading to an invitation for phone screen rounds.
Phone Screen Rounds:
1st Phone Screen:
I was presented with a graph-based DSA problem, quite similar to the "rotten tomatoes" problem. I thoroughly discussed my approach, implemented the solution, and successfully ran the code during the interview.
2nd Phone Screen:
This round involved another medium-level DSA problem, reminiscent of "finding the maximum rectangle in a histogram." I explained my approach, and once the interviewer agreed, I proceeded to code the solution, which worked correctly.
Following these rounds, I received positive feedback and was invited to the next stage – onsite interviews. The recruiter also shared a code repository that I needed to set up locally for the upcoming sessions.
Onsite Interview Rounds:
1st Round (90 minutes):
This session started with questions about my current project and tech stack. The focus then shifted to the provided code repository. My tasks included:
- Implementing a new POST API: This API was designed to save player details into a database. I discussed the payload structure, error handling, and logging, and successfully implemented and tested the API using Postman.
- Integrating an LLM API: I was given a URI and tasked with creating an API that would take a prompt as input, call the LLM API, and return the response. I implemented this successfully and demonstrated it to the panel.
2nd Round:
This was a DSA-focused round. I was asked a problem similar to "next permutations of an array." I explained my approach, coded the solution, and passed all test cases provided by the interviewer.
3rd Round:
The first 30 minutes concentrated on engineering fundamentals and best practices. Afterward, I was asked to implement pagination on the GET API from the shared code repository. I completed the task and demonstrated the functionality using Postman.
4th Round (Hiring Manager Round - 30 minutes):
This round focused on my day-to-day responsibilities, how I collaborate with teams, and cultural fit within the organization.
Outcome:
Unfortunately, two days later, the recruiter informed me that the feedback was not positive. The primary issues identified were related to the error codes I used and improper exception handling in my API implementations.
Reflection:
This experience provided valuable insights, particularly highlighting areas for improvement in my error handling and API design practices. While I managed to complete most tasks, the feedback underscored the importance of meticulous attention to detail, especially regarding edge cases and ensuring robust implementations. Overall, it was a significant learning experience for me.
Interview Questions (7)
I was asked to solve a graph-based DSA problem, specifically one similar to the "rotten tomatoes" problem. This involves determining the minimum time required for all fresh oranges in a grid to rot, given that a rotten orange can infect its neighbors.
I was given a medium-level DSA problem, similar to "finding the maximum rectangle in a histogram." The goal is to find the largest rectangular area in a histogram where the bars have varying heights and are of unit width.
I needed to implement a new POST API that would save player details into a database. This involved designing the payload structure, considering various aspects of error handling (e.g., invalid input, database errors), and implementing proper logging mechanisms for traceability and debugging. I also had to demonstrate the API's functionality.
I was tasked with creating an API endpoint that would accept a user prompt as input. This API needed to call an external Large Language Model (LLM) API, for which a URI was provided, and then return the response received from the LLM back to the client. I also had to demonstrate its functionality.
I was asked a DSA problem similar to "next permutations of an array." The problem typically involves rearranging numbers in an array into the lexicographically next greater permutation of numbers. If such an arrangement is not possible, it must be rearranged to the lowest possible order (i.e., sorted in ascending order).
I was asked to implement pagination functionality on an existing GET API within the shared code repository. This involved modifying the API to accept parameters like page number and limit (or pageSize) and returning a subset of data along with possibly metadata like total count or total pages. I also had to demonstrate the functionality.
During the hiring manager round, the questions focused on my day-to-day responsibilities in my current role, how I approach team collaboration and handle conflicts, and assessing my cultural fit within the organization. This typically involved situational and experience-based questions.