# Software Engineer
**Role:** Software Engineer · **Level:** L1
**Company:** [Notion](https://scaleengineer.com/companies/notion)
**Difficulty:** Medium
**Salary:** US$85000 - US$110000
**Experience:** 0 - 2
**Timeline:** ~7 days
This interview process is designed to assess candidates for an entry-level Software Engineer position at Notion. It focuses on fundamental programming skills, problem-solving abilities, and cultural fit.
Canonical: https://scaleengineer.com/interviews/notion/l1-software-engineer
---
## Overall evaluation

- Technical Skills
- Behavioral and Cultural Fit

## Questions asked

- What are the differences between an abstract class and an interface?
- Explain the concept of recursion with an example.
- How would you design a URL shortener?
- Describe a time you faced a conflict within a team and how you resolved it.
- What interests you about working at Notion?
- Write a function to reverse a linked list.
- What is Big O notation and why is it important?
- Tell me about a project you are proud of.

## Preparation tips

### lists

- Review fundamental data structures (arrays, linked lists, trees, graphs, hash maps) and algorithms (sorting, searching, recursion, dynamic programming).
- Practice coding problems on platforms like LeetCode, HackerRank, or Coderbyte, focusing on easy and medium difficulty.
- Understand basic object-oriented programming (OOP) principles.
- Prepare to discuss your past projects, highlighting your contributions and the technologies used.
- Research Notion's mission, values, and products.
- Practice answering common behavioral questions using the STAR method (Situation, Task, Action, Result).

### studyPlan

- {"title":"Data Structures Fundamentals","longDescription":"Weeks 1-2: Focus on core data structures like arrays, linked lists, stacks, queues, and hash maps. Practice implementing them and solving problems involving their efficient use. Cover basic sorting algorithms (bubble sort, insertion sort, merge sort, quicksort) and searching algorithms (binary search).","shortDescription":"Weeks 1-2: Data Structures (Arrays, Linked Lists, Stacks, Queues, Hash Maps) & Basic Sorting/Searching Algorithms."}
- {"title":"Advanced Data Structures & Algorithms","longDescription":"Weeks 3-4: Dive into more complex data structures such as trees (binary trees, BSTs) and graphs. Learn about graph traversal algorithms (BFS, DFS) and common tree operations. Begin exploring basic dynamic programming concepts and recursion.","shortDescription":"Weeks 3-4: Advanced Data Structures (Trees, Graphs) & Introduction to Recursion/DP."}
- {"title":"Object-Oriented Programming","longDescription":"Week 5: Focus on object-oriented programming (OOP) concepts (encapsulation, inheritance, polymorphism, abstraction) and practice applying them. Review common software development principles and best practices.","shortDescription":"Week 5: Object-Oriented Programming (OOP) Principles."}
- {"title":"Behavioral Preparation & Company Research","longDescription":"Week 6: Practice behavioral questions using the STAR method. Prepare to discuss your projects, motivations, and how you handle challenges. Research Notion's company culture and values.","shortDescription":"Week 6: Behavioral Questions & Company Research."}

## Location differences

- {"location":"Remote","differences":{"tips":["Be prepared to discuss academic projects in detail.","Showcase your passion for technology and problem-solving.","Research Notion's products and values."],"interviewFocus":["Understanding of core computer science concepts.","Ability to articulate thought process clearly.","Enthusiasm for learning and growth."],"commonQuestions":["Tell me about a challenging project you worked on during your studies.","How do you approach learning a new programming language or technology?","Describe a time you had to collaborate with a team on a technical project."]}}
- {"location":"San Francisco","differences":{"tips":["Be ready to share specific examples from your experience.","Demonstrate your understanding of teamwork and collaboration.","Prepare questions about the team and day-to-day responsibilities."],"interviewFocus":["Alignment with Notion's company culture.","Communication and interpersonal skills.","Understanding of software development lifecycle."],"commonQuestions":["Walk me through your resume and highlight relevant experiences.","What interests you about working at Notion's San Francisco office?","How do you handle constructive criticism?"]}}

## Round 1: Technical Screening - Coding Challenge
**Type:** Technical Screening · **Difficulty:** Easy · **Duration:** 45 min
Assess fundamental coding skills and problem-solving.
This initial technical screening round focuses on assessing fundamental programming skills and problem-solving abilities. You will be asked to solve one or two coding problems, typically involving arrays, strings, or basic data structures. The interviewer will evaluate your approach, code quality, and ability to explain your solution.
**Interviewers look for:** Clear communication of thought process.; Ability to write clean and functional code.; Basic knowledge of data structures and algorithms.
**Evaluation criteria:** Problem-solving skills; Coding proficiency; Understanding of basic algorithms
**Common rejection reasons:** Inability to articulate thought process.; Poor understanding of fundamental data structures.; Difficulty in solving basic coding problems.; Lack of enthusiasm or engagement.
## Questions

- Write a function to check if a string is a palindrome.
- Given an array of integers, find the two numbers that add up to a specific target.

## Preparation tips

- Practice coding problems on platforms like LeetCode (easy difficulty).
- Be prepared to explain your code and the time/space complexity of your solution.
- Ensure your development environment is set up for remote interviews if applicable.

## Round 2: Data Structures and Algorithms Deep Dive
**Type:** Data Structures and Algorithms Interview · **Difficulty:** Medium · **Duration:** 60 min
Assess proficiency in data structures and algorithms with more complex problems.
This round delves deeper into your understanding of data structures and algorithms. You'll be presented with more challenging problems that may require knowledge of trees, graphs, or dynamic programming. The focus is on your ability to choose the right data structures and algorithms, optimize your solutions, and articulate the reasoning behind your choices.
**Interviewers look for:** Efficient and well-reasoned solutions.; Understanding of various data structures and their applications.; Ability to analyze and discuss algorithmic complexity.; Clear communication of trade-offs.
**Evaluation criteria:** Proficiency in data structures and algorithms.; Ability to optimize solutions.; Understanding of time and space complexity.; Problem-solving approach for more complex scenarios.
**Common rejection reasons:** Inability to apply data structures and algorithms effectively.; Poorly optimized solutions.; Difficulty in understanding and implementing more complex algorithms.; Lack of clarity in explaining trade-offs.
## Questions

- Given a binary tree, find its inorder traversal.
- Find the shortest path in a maze using Breadth-First Search (BFS).

## Preparation tips

- Practice medium-difficulty problems on LeetCode, focusing on trees, graphs, and dynamic programming.
- Understand the trade-offs between different data structures and algorithms.
- Be prepared to discuss the time and space complexity of your solutions in detail.

## Round 3: Behavioral and Cultural Fit Interview
**Type:** Behavioral Interview · **Difficulty:** Medium · **Duration:** 45 min
Assess behavioral competencies and cultural fit.
This round focuses on your behavioral competencies and cultural fit. The hiring manager will ask questions about your past experiences, teamwork, problem-solving approaches in non-technical contexts, and your motivations for joining Notion. They will assess how well you align with the company's values and how you would contribute to the team environment.
**Interviewers look for:** Clear and concise communication.; Ability to work effectively in a team.; Alignment with Notion's mission and values.; Genuine interest in the company and the role.
**Evaluation criteria:** Communication and interpersonal skills.; Teamwork and collaboration abilities.; Cultural alignment with Notion's values.; Motivation and enthusiasm for the role and company.
**Common rejection reasons:** Poor communication skills.; Lack of cultural fit.; Inability to provide specific examples for behavioral questions.; Unclear career aspirations or motivation.
## Questions

- Tell me about a time you had to work with a difficult teammate. How did you handle it?
- What are your strengths and weaknesses as a software engineer?
- Why are you interested in Notion?

## Preparation tips

- Prepare specific examples using the STAR method for common behavioral questions.
- Research Notion's company culture, mission, and values.
- Think about your career goals and why Notion is a good fit for them.
- Prepare thoughtful questions to ask the hiring manager.
