Intuit Senior Software Engineer Frontend Interview Experience
Overview
Intuit, the financial technology company behind QuickBooks, TurboTax, and Mint, seeks Senior Software Engineers for their frontend development teams. The interview process for such positions stands out for its emphasis on practical, real-world coding tasks conducted on actual codebases rather than abstract algorithmic problems.
Interview Process
The full interview loop spanned five distinct rounds, with Rounds 2 through 5 conducted consecutively on the same dayâa physically and mentally demanding format that tested endurance alongside technical proficiency.
| Round | Duration | Focus Area | |-------|----------|------------| | Technical Phone Interview | 75 mins | DSA, JavaScript Deep Dive | | Coding Round with Team | 90 mins | React Components | | Advanced JavaScript & Security | 60 mins | Promise Patterns, Web Security | | DOM Manipulation & LLM Integration | 55 mins | DOM Algorithms, AI Integration | | Manager Round | 30 mins | Architecture, Performance |
Technical Rounds
Round 1: Technical Phone Interview (75 minutes)
This comprehensive initial round evaluated multiple competency areas through project discussions, data structures, and JavaScript fundamentals.
Project Discussion: The candidate was asked to describe the most challenging project worked on and how challenges were resolvedâprobing problem-solving approach and technical depth.
Data Structures Questions:
-
Balanced Brackets: Given a string containing characters and brackets, determining whether brackets were properly balanced using a stack-based approach. Examples included
((abd))(balanced) and)(())abc(not balanced). -
Connected Graph: Explaining how to verify if a graph is connectedâwhether all vertices can be traversed from a given starting vertex using DFS or BFS algorithms.
JavaScript Deep Dive:
-
Hoisting: Output-based questions tested understanding of function and variable hoisting.
-
Promises: A tricky question assessed understanding of synchronous versus asynchronous execution:
console.log(1);
const promise = new Promise((resolve) => { console.log(2); resolve(); console.log(3); });
console.log(4);
// Output: 1, 2, 3, 4
Key insight: the Promise executor function runs synchronously, not asynchronously.
Original Source
This experience was originally published on medium.com. Support the author by visiting the original post.
Read on medium.com