# Software Engineer
**Role:** Software Engineer · **Level:** L3
**Company:** [Quora](https://scaleengineer.com/companies/quora)
**Difficulty:** Medium
**Salary:** US$110000 - US$140000
**Experience:** 1 - 3
**Timeline:** ~7 days
The Software Engineer (L3) interview at Quora is designed to assess a candidate's foundational knowledge in computer science, problem-solving abilities, and cultural fit within the company. It typically involves a mix of technical and behavioral assessments to ensure the candidate can contribute effectively to Quora's engineering teams.
Canonical: https://scaleengineer.com/interviews/quora/l3-software-engineer
---
## Overall evaluation

- Technical Skills
- Communication & Behavioral

## Questions asked

- Given an array of integers, find the contiguous subarray with the largest sum.
- Implement a function to reverse a linked list.
- Design a system to handle real-time notifications for a social media platform.
- Tell me about a time you received constructive criticism and how you responded.
- What are your favorite data structures and why?
- How would you optimize a slow-loading web page?
- Describe a situation where you had to work with a difficult colleague.
- Explain the concept of recursion with an example.

## Preparation tips

### lists

- Review fundamental data structures (arrays, linked lists, trees, graphs, hash maps) and algorithms (sorting, searching, dynamic programming, graph traversal).
- Practice coding problems on platforms like LeetCode, HackerRank, or Coderbyte, focusing on medium-difficulty problems.
- Understand core computer science concepts such as time and space complexity (Big O notation).
- Study basic system design principles, including scalability, availability, and reliability.
- Prepare for behavioral questions by reflecting on past experiences using the STAR method (Situation, Task, Action, Result).
- Research Quora's mission, values, and recent product developments.
- Prepare thoughtful questions to ask the interviewer about the role, team, and company culture.

### studyPlan

- {"title":"Data Structures & Algorithms","longDescription":"Weeks 1-2: Focus on Data Structures and Algorithms. Cover arrays, linked lists, stacks, queues, trees (binary trees, BSTs, heaps), hash tables, and graphs. Practice implementing these and solving problems related to them. Understand time and space complexity for each.","shortDescription":"Weeks 1-2: Data Structures & Algorithms fundamentals. Practice implementations and complexity analysis."}
- {"title":"Algorithms","longDescription":"Weeks 3-4: Dive into Algorithms. Focus on sorting algorithms (merge sort, quicksort), searching algorithms (binary search), recursion, dynamic programming, and graph algorithms (BFS, DFS, Dijkstra's). Solve problems that require applying these concepts.","shortDescription":"Weeks 3-4: Algorithm techniques like sorting, DP, and graph traversal. Solve related problems."}
- {"title":"System Design Fundamentals","longDescription":"Week 5: Introduction to System Design. Learn about basic concepts like load balancing, caching, databases (SQL vs. NoSQL), APIs, and microservices. Understand trade-offs in designing scalable systems.","shortDescription":"Week 5: System Design basics: scalability, databases, caching."}
- {"title":"Behavioral & Company Research","longDescription":"Week 6: Behavioral Preparation. Reflect on your past projects and experiences. Prepare stories using the STAR method for common behavioral questions related to teamwork, problem-solving, failures, and successes. Also, research Quora.","shortDescription":"Week 6: Behavioral questions (STAR method) and Quora research."}
- {"title":"Mock Interviews & Final Review","longDescription":"Week 7: Mock Interviews and Review. Conduct mock interviews focusing on both technical and behavioral aspects. Review weak areas identified during practice and mock interviews. Prepare questions for the interviewers.","shortDescription":"Week 7: Mock interviews, review weak areas, prepare questions."}

## Location differences

- {"location":"Mountain View, CA","differences":{"tips":["Be prepared to whiteboard solutions for common coding problems.","Familiarize yourself with Quora's product and engineering blog.","Practice explaining your thought process clearly."],"interviewFocus":["Emphasis on core data structures and algorithms.","Understanding of web fundamentals and basic system design.","Behavioral questions focusing on collaboration and learning."],"commonQuestions":["How would you design a URL shortener?","Explain the difference between a process and a thread.","Describe a challenging technical problem you solved.","How do you handle disagreements within a team?"]}}
- {"location":"New York, NY","differences":{"tips":["Review common system design patterns.","Be ready to discuss trade-offs in your technical decisions.","Highlight instances where you took initiative and ownership."],"interviewFocus":["Stronger emphasis on system design and scalability.","Deeper dive into distributed systems concepts.","Behavioral questions assessing adaptability and ownership."],"commonQuestions":["Design a system to track user engagement on Quora.","What are the trade-offs between SQL and NoSQL databases?","Tell me about a time you had to adapt to a new technology.","How do you prioritize your work when faced with multiple deadlines?"]}}

## Round 1: Technical Screen - Coding
**Type:** Data Structures and Algorithms Interview · **Difficulty:** Medium · **Duration:** 45 min
Coding challenge focused on data structures and algorithms.
This round focuses on your core programming skills. You will be asked to solve one or two coding problems, typically involving data structures and algorithms. The interviewer will assess your ability to understand the problem, devise a solution, write efficient and correct code, and explain your thought process.
**Interviewers look for:** A structured approach to problem-solving.; Ability to translate a problem into code.; Understanding of Big O notation.; Clean and readable code.
**Evaluation criteria:** Problem-solving approach; Correctness of code; Efficiency of solution (time and space complexity); Coding style and clarity
**Common rejection reasons:** Inability to articulate thought process.; Poor understanding of fundamental data structures.; Difficulty in writing clean, working code.; Lack of problem-solving approach.
## Questions

- Given a binary tree, find its inorder traversal.
- Find the kth smallest element in an unsorted array.

## Preparation tips

- Practice coding problems on a whiteboard or a shared editor.
- Think out loud and explain your approach before coding.
- Consider edge cases and test your code mentally.
- Be prepared to discuss time and space complexity.

## Round 2: Technical Screen - System Design
**Type:** System Design Interview · **Difficulty:** Medium · **Duration:** 60 min
Design a scalable system and discuss trade-offs.
This round assesses your ability to design and think about larger systems. You'll be given an open-ended problem, such as designing a specific feature or a large-scale system (e.g., a news feed, a URL shortener). The focus is on your thought process, how you handle ambiguity, and your understanding of system design principles.
**Interviewers look for:** Ability to break down complex problems.; Understanding of distributed systems concepts.; Sound reasoning for design choices.; Consideration of various system components (databases, caching, APIs).
**Evaluation criteria:** System design approach; Scalability considerations; Trade-off analysis; Clarity of explanation; Handling of constraints and requirements
**Common rejection reasons:** Inability to design a scalable system.; Poor understanding of trade-offs.; Lack of clarity in explaining design choices.; Not considering failure scenarios or edge cases.
## Questions

- Design a system like Twitter's timeline.
- How would you design a rate limiter?

## Preparation tips

- Review common system design patterns and architectures.
- Practice designing systems for scale and reliability.
- Be prepared to discuss trade-offs between different approaches.
- Think about potential bottlenecks and failure points.

## Round 3: Behavioral & Hiring Manager Interview
**Type:** Behavioral Interview · **Difficulty:** Medium · **Duration:** 45 min
Behavioral questions to assess past experiences and cultural fit.
This round focuses on your past experiences, work style, and how you collaborate with others. You'll be asked behavioral questions designed to understand your strengths, weaknesses, how you handle challenges, and your overall fit with Quora's culture. Using the STAR method is highly recommended.
**Interviewers look for:** Honesty and self-awareness.; Ability to articulate past experiences effectively (using STAR).; Enthusiasm for Quora and the role.; Evidence of collaboration and positive impact.
**Evaluation criteria:** Communication clarity; Teamwork and collaboration; Problem-solving approach in past experiences; Learning and adaptability; Cultural fit and alignment with Quora's values
**Common rejection reasons:** Poor communication skills.; Lack of self-awareness.; Inability to provide specific examples.; Not demonstrating alignment with Quora's values.; Appearing unenthusiastic or disengaged.
## Questions

- Tell me about a time you failed and what you learned from it.
- Describe a project you are particularly proud of and your role in it.
- How do you handle conflicting priorities?

## Preparation tips

- Prepare specific examples using the STAR method for common behavioral questions.
- Reflect on your career goals and why you're interested in Quora.
- Be ready to discuss your strengths and weaknesses.
- Show genuine interest and enthusiasm.
