Interviewed at Notion for New Grad SWE, here's everything
Overview
Notion's interview process for new graduate software engineer positions stands out in the tech industry for its practical, collaborative approach. Rather than relying on traditional algorithmic problem-solving under time pressure, the company evaluates candidates through a multi-stage process that mirrors actual day-to-day engineering work. The entire process spans approximately five weeks and consists of five distinct rounds, each designed to assess different competencies.
The candidate described Notion as their top choice company, which motivated them to provide a detailed account of each interview stage. This comprehensive breakdown offers valuable insights for frontend engineers preparing for Notion's unique interview format, which prioritises real-world skills, collaboration, and structured thinking.
Interview Process
The interview process at Notion follows a carefully structured progression:
- Take-Home Project: Candidates receive five days to complete a practical frontend coding assignment, though the expected completion time is four to six hours.
- Live Take-Home Extension: A 60-minute pair programming session where candidates extend their take-home project alongside a Notion engineer.
- System Design Round: A technical discussion focused on distributed systems concepts relevant to Notion's product.
- Cross-Functional Interview: A 45-minute session with a product team member to assess communication and problem-solving across disciplines.
- Behavioural Interview: A 30-minute conversation covering motivation, past projects, and soft skills.
Each round builds upon the previous one, creating a cohesive narrative that allows interviewers to evaluate candidates from multiple angles.
Technical Rounds
Take-Home Project
The initial technical assessment requires candidates to build a simplified block-based editorâa core concept central to Notion's product. The project specification includes several key requirements:
- Block Types: Implementation of at least three block types: text blocks, heading blocks, and list blocks.
- Drag and Drop Reordering: Interactive functionality allowing users to reorder blocks within the editor.
- Undo/Redo Capability: State management that supports reversing and reapplying user actions.
The candidate approached this project using React with TypeScript, implementing a reducer pattern to manage the undo/redo functionality. According to feedback received, the evaluation criteria focus on three primary areas:
Original Source
This experience was originally published on reddit.com. Support the author by visiting the original post.
Read on reddit.com