Learning a system you've never seen#
Some of the best technical interviews hand you a system you've never seen and watch how fast you learn it. Practising on a language you already know doesn't train that skill.
So I built a trainer around two query languages that don't exist anywhere else: FLOW, a pipe-based syntax that reads left to right, and NEST, a nested functional syntax where the innermost call runs first. Both run on the same dataset and the same set of operations, in completely different shapes. You can't memorise your way through, because the second language makes you relearn every operation in an unfamiliar grammar.

How it works#
Both languages run for real. Each has its own interpreter running entirely in the browser (FLOW is a straightforward pipe-stage evaluator, NEST needed an actual tokeniser and parser for nested function calls), executing live against a small two-table dataset. Nine levels per language build the same arc: filter, then select columns, then sort and limit, then group and aggregate, then derived columns, then a join. The whole trainer is a single HTML file with no backend and no dependencies.
Three design choices do most of the teaching:
- An always-open scratchpad next to every challenge. It has no target and no grading. It's a place to test a hypothesis against the real data before committing to an answer, which is what a live interview rewards and a static tutorial never asks you to do.
- A cardinality trap. One level asks a question that looks like it should be answered by joining through the transaction table. Go that way and you get a confidently wrong number, because the join inflates and drops entities with no transactions. The correct path starts from the entity table directly, the same grain-reasoning mistake that separates people who understand a data model from people who can just write syntax.
- An undocumented operation. At level eight, a new function appears with no description. You have to test it blind in the scratchpad before you can use it, which is what happens when someone hands you a system with no manual.
Every submission is checked against the expected output, so any correct path passes. If your answer took more steps than it needed, the trainer tells you and shows the leaner path. It's the follow-up a sharp interviewer asks once you've got it right: can you do that in fewer steps?

After level nine#
Once you clear all nine levels in one language, the closing screen tells you to switch languages and start again from scratch. The skill being trained was never FLOW or NEST. It's learning an unfamiliar system fast: say the hypothesis out loud before you test it, check a piece of it in the scratchpad and don't bluff past a gap you haven't closed.