Intuit — Software Engineer ✅ Passed
Level: Intern
Round: Online Assessment · Type: Multiple Types · Difficulty: 4/10 · Duration: 60 min · Interviewer: Unfriendly
Topics: Lambda Expressions, Data Structures, Algorithms, Database Concepts, Software Architecture, Networking, Version Control, Graph Algorithms, Sorting Algorithms, Tries, Hashing
Location: San Francisco Bay Area
Interview date: 2024-12-05
Summary
The online assessment consisted of multiple-choice questions covering various topics, including data structures, algorithms, software architecture, and database concepts. There was also a coding question involving maze...
Details
I took an online assessment that included multiple-choice questions on topics such as:
del items[i:]
- Lambda expressions
math.floor and math.ceil for negative numbers
- Prime number identification
- Anonymous functions
- Adjacency lists
- Aggregate values in GROUP BY queries
- Conditional updates in relational databases
- Software architecture for backend systems processing large amounts of data with asynchronous non-blocking operations
- Potential disadvantages of serverless computing (e.g., higher latency of infrequently used services)
- Features of serverless architecture (e.g., whether it guarantees very low latency at all times)
- HTTP headers for indicating the location of a newly created resource in a RESTful API response
- WebSocket protocol
- TCP vs. UDP connections for WebSockets
- Associating users with server sessions (cookies vs. custom headers)
- Scaling SQL databases to handle increased write load (removing/adding indices, writing to a view, adding replicas)
- Suitability of event-driven architecture for GUI applications
- Risks of using single sign-on schemes like OpenID Connect
- Trade-offs between replicating vs. sharding a database for horizontal scaling
- Primary benefits of a plugin architecture
- Best approach to quickly scale a legacy application with in-memory user sessions without introducing session bugs (sticky cookies vs. round-robin load balancing vs. multiple DNS entries)
- Non-version control systems
- Algorithms for finding the shortest route between two destinations in a road map (graph)
- Number of topologically distinct binary trees with 6 nodes
- Sorting algorithms with the slowest worst-case running time
- Data structures for finding words that share a common prefix with a given word (linked list, hash set, trie, binary tree)
- Situations with multiple key hashes in one bucket
- Time complexity of reversing a stack implemented using a linked list
The coding question involved solving a maze represented in ASCII characters. Possible approaches included:
- Recursive function with x, y coordinates
- Applying the left-hand rule
- Viewing the maze as a graph
- Creating a priority queue