Intuit SDE 2 Interview Experience
28530

I couldn't find alot of resources when interviewing with Intuit, i hope sharing my experience can help other engineers interviewing at Intuit.

I am Software Engineer 2 working in startup in United States with 2.5 years of experience.

Initial Steps:

I applied at Intuit via their careers page, but i didn't get anything further. Texted random people on linkedin if anyone can refer me for a position. Fortunately, an engineer agreed and shared my resume with recruiter. Recruiter emailed me to setup an initial call with her. We introduced ourselves, discussed about my experience in specific technologies (AWS, Java, CI/CD etc), general discussion around my past experience, questions around what am i looking for. After the discussions, she talked about setting up phone screen within 3 days. I was hesitant initially, but she mentioned that the problem level would more around Easy - Medium. I sent her my availability for phone screen via email and it was setup 2 day later.

Phone Screen:

I solved around 20 Medium level problems before my interview. Since i have been coding for a while, I wasn't much concerned about my problem solving skills.

Interview was an hour long. Interviewer asked couple of questions on my work experience, then we dived straight into coding. She asked a medium problem and an easy problem.

Medium problem - Given a matrix with 0s and 1s where where 0 being empty cell and 1 being a blocked cell. Return the path in coordinates from the first cell to the last cell in matrix(if exists).

Easy problem - https://leetcode.com/problems/unique-email-addresses/description/

Intuit uses Glider tool for coding and system design. Once i wrote my code, i verbally tested out the happy path and edge cases. Fixed a couple of bugs along the way. Glider's Code Editor was similar to Leetcode's code editor. I wrote down couple of test cases and ran my code against those. All of them passed in one go.

We spent remaining time talking about Intuit culture.

Post Phone Screen:

Recruiter reached out to me after one week saying that my feedback was very positive and they would like to move to onsites. She setup prep call to go over the onsite loop and answer my questions. The loop was approx 6 hours long with 45 mins break in between. We talked about my availability and setup onsites 3 weeks later.

Intuit has a long onsite process, but i found the process to be fun and rewarding. I got the opportunity to build backend application and learn so much more along the way.

Onsite rounds:

Interview 0:

The interviewer joined the call, we introduced ourselves and she shared pdf containing more information about the backend apis i need to develop. She emailed me csv file containing approx 18,000 records regarding Player information.

Below was the backend application that i needed to create -

Your assignment is to create a microservice which serves the contents
of Player.csv through a REST API.

The service should expose two REST endpoints:
● GET /api/players - returns the list of all players.
● GET /api/players/{playerID} - returns a single player by ID.

Please create unit tests that cover the core logic.

here's the link to Players.csv - https://drive.google.com/file/d/1pQLVKDkTl6VMMHHJa_Id8JGMNJPToi7_/view?usp=sharing

I got the next 90mins by myself to build the application. She let me turn off the camera, mute the microphone and work at my own pace. She was over the call incase i needed any help.

Initially i thought about storing all the data in postgres and wasted alot of time setting that up using local database, docker and migrating data from csv to local database. With 30 mins left and an application with lots of errors, i decided to get some help from Gemini. Gemini was accurate in generating code for backend apis. I quickly copied the code and when i tried running it locally, it actually ran successfully in one go. I tested it out using postman(application to test web APIs) and it was working fine. Couldn't believe Gemini could be this accurate in generating code.

Interview 1:

4 interviewers joined the call. We introduced ourselves and i straight dived into demoing the slides that i had created before my interview(slides were more around my background, something that's not on my resume, my proud project and challenges that i faced during the project). After the slides, we dived straight into the project that i had built previously in 90 mins.

I explained the entire code that i had written. Everyone had alot of questions around scaling the system and general software engineering concepts.

Although i'm not complaining, but it would have been more helpful if interviewers were more energetic to interview.

Break for 45 mins

Interview 2:

The second round was a design round where i was asked to design an application to store photos. We used draw.io tool for design.

Follow ups -

  1. store images in various formats.
  2. make the entire process asynchronous
  3. update the flow considering mobile users (i didn't clarify this during requirements before)

My mistakes in this round -

  1. Didn't clarify scale of the system before hand. Interviewers had to point out after i designed the system, since my system was slow. Make sure to clarify the estimate user base, anticipated photo upload volume, read v/s write ratio, core functionalities(upload, download, sharing), cost considerations, user devices (bandwidth consideration for mobile).
  2. Didn't talk about Back of the Envelope estimations before diving into design.
  3. Didn't consider scalabaility from the very start. Took multiple iterations before getting to a scalable design.

Interview 3:

Interviewer wanted me to continue developing the existing application. He wanted me to add basic auth for access controls, pagination and add an endpoint to add more players.

My Mistakes in this round -

  1. Missed edge cases. Eg - if user tries to access records after a certain count which is more than the total count of players, service should be responding with 400.
  2. Didn't clarify with interviewer if record should be added incase it already exists.

Make sure to think of all edge cases and go over them with interviewer before coding.

Interview 4:

The round was more focused towards operational excellence and my past experince. We talked about CI/CD pipelines, coding in Java, devops, integration testing, load testing, cloud. He wasn't very happy that i don't have much experience around devops.

Post Interviews:

Recruiter called me 2 days later with interview feedback. She said that my coding is good, but i lagged in system design and operational excellence. Intuit is ready to offer me SDE 1. I declined since i wouldn't downgrade my current level.

But i learnt alot of invaluable lessons while interviewing at Intuit.

Overall learnings -

  1. Clarify requirements with interviewer before getting into design. Be sure to be clear on the scale and use cases, before diving into design.
  2. Think of all edge cases before coding and write them down.

Intuit is actively hiring SDEs across all levels. Higher chances to hear back if applied with referral over career portal.

Hope this helps others out! Please comment if you have any questions and i'll try to answer as much i can.

I have so much more to share, please provide me any feedback that could help me get better at writing these posts and communicate my experience in a better way.

Comments (35)