Went through Notion's coding rounds in early 2026 applying for a mid-level SWE role. Here's what the technical screening actually looks like.
Screening stage. There's no traditional LeetCode OA link. At least in my case, the first technical gate was a CodeSignal or similar timed async assessment. Two problems, 70 minutes total. Difficulty felt like LeetCode medium, maybe one medium-hard. Standard array/string manipulation and one graph traversal problem. Nothing exotic.
If you pass that, you move to a live coding round with an engineer. That's where things got interesting.
The live coding round. 60 minutes, pair-programming style in a shared editor (they weren't picky about language). The problem was practical, not abstract. Something in the vein of: parse a structured document format and extract certain elements. Very fitting for a company building document tooling.
They're clearly watching how you reason, not just whether you get to the right answer. The interviewer asked questions throughout. Not hints exactly, more like "what are you optimizing for here" or "how would this behave if the input is malformed." Edge case handling mattered a lot.
Difficulty honestly. If you've been grinding LeetCode hard, you'll probably find the problems easier than you expected. That said, I've seen people freeze on Notion's rounds because the problems are less formulaic. There's no "this is a sliding window problem" shortcut. You have to actually think about the domain.
What I'd prep. Trees and recursion are worth reviewing given the block/document structure of their product. String parsing. Graph traversal basics. Don't skip your system design even for mid-level. One of my rounds had a mini design question tacked on at the end.
Time management was tighter than I expected in the live round. I spent too long optimizing the first part when a working solution was enough.