# Software Engineer
**Role:** Software Engineer · **Level:** L3
**Company:** [Notion](https://scaleengineer.com/companies/notion)
**Difficulty:** Medium
**Salary:** US$100000 - US$130000
**Experience:** 1 - 3
**Timeline:** ~10 days
The Software Engineer L3 interview process at Notion is designed to assess a candidate's foundational software engineering skills, problem-solving abilities, and cultural fit within the company. It typically involves multiple rounds, including technical assessments, behavioral interviews, and a final hiring manager discussion.
Canonical: https://scaleengineer.com/interviews/notion/l3-software-engineer
---
## Overall evaluation

- Technical Skills
- Behavioral and Cultural Fit
- Potential and Growth

## Questions asked

- Write a function to reverse a linked list.
- Given an array of integers, find the two numbers that add up to a specific target.
- Explain the difference between a process and a thread.
- Describe a situation where you had to deal with a difficult stakeholder.
- How would you design a URL shortener service?
- What are your strengths and weaknesses as a software engineer?
- Tell me about a time you failed and what you learned from it.

## Preparation tips

### lists

- Review fundamental data structures (arrays, linked lists, trees, graphs, hash maps) and algorithms (sorting, searching, dynamic programming, recursion).
- Practice coding problems on platforms like LeetCode, HackerRank, or Coderbyte, focusing on medium-difficulty problems.
- Understand object-oriented programming principles and design patterns.
- Brush up on system design concepts, even for junior roles, to understand scalability and architecture.
- Prepare to discuss your past projects in detail, highlighting your contributions and the challenges you faced.
- Research Notion's products, mission, and values to understand how your role contributes.
- Prepare answers to common behavioral questions using the STAR method (Situation, Task, Action, Result).

### studyPlan

- {"title":"Data Structures and Algorithms Fundamentals","longDescription":"Weeks 1-2: Focus on core data structures like arrays, linked lists, stacks, queues, and hash maps. Practice problems related to these structures, emphasizing time and space complexity analysis. Understand basic sorting and searching algorithms.","shortDescription":"Weeks 1-2: Data Structures (Arrays, Linked Lists, Stacks, Queues, Hash Maps) & Basic Algorithms (Sorting, Searching)."}
- {"title":"Advanced Data Structures and Algorithmic Techniques","longDescription":"Weeks 3-4: Dive into more complex data structures like trees (binary trees, BSTs, tries) and graphs. Study graph traversal algorithms (BFS, DFS) and common tree operations. Begin exploring dynamic programming and recursion.","shortDescription":"Weeks 3-4: Advanced Data Structures (Trees, Graphs) & Recursion/DP."}
- {"title":"System Design Introduction","longDescription":"Week 5: Focus on system design fundamentals. Understand concepts like scalability, availability, databases (SQL vs. NoSQL), caching, load balancing, and API design. Practice designing simple systems.","shortDescription":"Week 5: System Design Basics (Scalability, Databases, Caching)."}
- {"title":"Behavioral and Cultural Fit Preparation","longDescription":"Week 6: Prepare for behavioral interviews. Review your resume and identify key projects and experiences. Practice answering common behavioral questions using the STAR method. Research Notion's company culture and values.","shortDescription":"Week 6: Behavioral Interview Prep (STAR method, Notion values)."}

## Location differences

- {"location":"Remote","differences":{"tips":["Ensure a stable internet connection and a quiet environment.","Familiarize yourself with Notion's collaboration features.","Be prepared to articulate your thought process clearly, as non-verbal cues might be less apparent."],"interviewFocus":["Adaptability to remote collaboration tools and practices.","Communication skills in a distributed environment.","Proactive problem-solving in a remote setting."],"commonQuestions":["Describe a challenging bug you fixed and your approach.","How do you stay updated with new technologies?","Tell me about a time you disagreed with a teammate and how you resolved it."]}}
- {"location":"San Francisco","differences":{"tips":["Be prepared to whiteboard solutions or use collaborative coding tools.","Understand Notion's product and how software engineering contributes to it.","Engage actively with interviewers and ask clarifying questions."],"interviewFocus":["Understanding of core data structures and algorithms.","Ability to write clean, maintainable, and efficient code.","Collaboration and teamwork within an office environment."],"commonQuestions":["How do you approach learning a new codebase?","Describe a project you are particularly proud of.","What are your thoughts on code reviews?"]}}

## Round 1: Coding Challenge
**Type:** Technical Interview (Coding) · **Difficulty:** Medium · **Duration:** 45 min
Solve coding problems focusing on data structures and algorithms.
This round focuses on assessing your fundamental programming skills. You will be asked to solve one or two coding problems, typically involving data structures and algorithms. The interviewer will evaluate your approach to problem-solving, your ability to write clean and efficient code, and your understanding of time and space complexity.
**Interviewers look for:** Logical thinking; Ability to translate requirements into code; Attention to detail; Basic understanding of CS fundamentals
**Evaluation criteria:** Problem-solving approach; Correctness of the solution; Code clarity and efficiency; Understanding of data structures and algorithms
**Common rejection reasons:** Inability to solve basic coding problems.; Poor understanding of time and space complexity.; Lack of clear communication during problem-solving.
## Questions

- Given an array of integers, return indices of the two numbers such that they add up to target.
- Implement a function to check if a binary tree is a valid Binary Search Tree.

## Preparation tips

- Practice coding problems on platforms like LeetCode.
- Be prepared to explain your thought process step-by-step.
- Write clean, well-commented code.
- Test your code with edge cases.

## Round 2: Behavioral and Cultural Fit
**Type:** Behavioral Interview · **Difficulty:** Medium · **Duration:** 45 min
Discuss past experiences, teamwork, and cultural fit.
This round is designed to understand your behavioral patterns, past experiences, and how you handle various work situations. You'll be asked questions about your projects, teamwork, challenges, and how you align with Notion's culture. The STAR method is highly recommended for structuring your answers.
**Interviewers look for:** Honesty and self-awareness; Ability to learn from mistakes; Proactiveness and initiative; Positive attitude and enthusiasm
**Evaluation criteria:** Communication skills; Teamwork and collaboration; Problem-solving approach in past projects; Cultural fit and alignment with Notion's values
**Common rejection reasons:** Inability to articulate past experiences clearly.; Lack of self-awareness regarding strengths and weaknesses.; Poor alignment with company values or team dynamics.
## Questions

- Tell me about a time you faced a significant technical challenge and how you overcame it.
- Describe a situation where you had to work with a difficult team member. How did you handle it?
- What are you passionate about outside of work?

## Preparation tips

- Prepare examples using the STAR method for common behavioral questions.
- Reflect on your past projects and your specific contributions.
- Understand Notion's mission, values, and culture.
- Be ready to discuss your career goals and motivations.

## Round 3: Hiring Manager and System Design Discussion
**Type:** Hiring Manager / System Design · **Difficulty:** Medium · **Duration:** 60 min
Discuss system design, career goals, and overall fit with the hiring manager.
In this final round, you'll meet with the hiring manager to discuss your overall fit for the team and the role. This may include a deeper dive into your technical experience, a discussion about system design principles, and an opportunity for you to ask questions about the team, projects, and career growth at Notion. The manager will assess your potential to contribute and grow within the organization.
**Interviewers look for:** Ability to design scalable and robust systems; Understanding of trade-offs in design decisions; Clear articulation of technical concepts; Enthusiasm for Notion's product and engineering challenges
**Evaluation criteria:** Technical depth and breadth; System design thinking; Communication and explanation skills; Alignment with team's technical direction; Motivation and interest in the role
**Common rejection reasons:** Lack of clarity in explaining technical decisions.; Inability to connect technical solutions to business needs.; Unrealistic expectations about the role or compensation.
## Questions

- How would you design a system to handle real-time notifications for a collaborative document editor?
- What are your expectations for this role and your career at Notion?
- Walk me through a project you led or had significant ownership of.

## Preparation tips

- Prepare questions for the hiring manager about the team, projects, and culture.
- Be ready to discuss your career aspirations and how this role fits into them.
- Review system design concepts and be prepared to discuss trade-offs.
- Show genuine interest in Notion's mission and product.
