Our Technical Interview Was Testing a Company We No Longer Are

Joko is a shopping companion used by more than 6 million people in France and the US. We were a small engineering team for a long time. The company kept growing and gaining ground in its market. The team grew with it. The code we change today is almost never code we wrote, which makes shared standards matter far more than they used to.

As a consequence, we wrote our engineering principles down properly, starting with how we structure a service, then how we review, how we test, and what end-to-end ownership means. We also consolidated our services into a monorepo with strong guardrails for humans and AI agents, and a world-class developer experience. That is more than putting the code in one place. Every change, from an engineer or from an agent, goes through the same guardrails, so the system stays safe to modify.

AI radically changed the work on top of that. We use agents for everything, from technical explorations and incident investigations to writing code and reviewing it. The skill that now matters is getting more done while keeping the quality bar high.

Then we looked at our hiring loop and realized it wasn’t aligned with any of it.

Why the old loop stopped working

The previous technical interview was 2 LeetCode-style rounds plus a system design interview. Three interviews, four problems.

Some of it worked well. It showed us how candidates structured their thinking, how clearly they communicated, and whether they could use a hint. Two coding rounds also let us stop early when the first interview was clearly off, and compare notes on different exercises.

There were, however, four types of problems.

The previous interview: two timed algorithm rounds, then a system design conversation.

Two algorithm rounds measured the same skill. The system design round was the one that already looked like the job.

It measured something adjacent to the job. Nobody at Joko implements a graph traversal from memory under time pressure. The work is closer to picking up a service you have never seen and changing it safely.

The rounds overlapped. The two algorithmic interviews mostly measured the same skill. A second look was useful. It became less useful once we knew which skills the job actually required.

AI broke the exercise. Every classic prompt is now solved instantly by a model. Ban it and you’re measuring performance in a world that no longer exists; allow it and the exercise dissolves.

Our standards had moved and the interview hadn’t. This is what forced the rewrite. We were asking for puzzle-solving while our engineering principles asked for readable code, real tests, clean boundaries, and product judgment. A candidate could pass the coding rounds without demonstrating any of that. The system design round was the exception: it already tested the judgment we care about.

What we run instead

One 90-minute session: a small service in the same hexagonal, ports-and-adapters style we run in production, in a shared editor with an AI assistant built in. The principles behind that style are in Clean Architecture at Joko.

Phase 1 — Read and review. The candidate reads an existing, partially built feature, explains what it does and who it’s for, then reviews it with us: what would you change, what would you leave alone.

Phase 2 — Build the feature. A high-level spec, no decomposition given. They design out loud, then build with tests. We add requirements as they go. The interesting moment is what happens to their design when the requirement moves.

Phase 3 — Design around what they built. System design grounded in the code now on screen: how you know it works, and how that signal gets back into the system.

Review the code, build the feature, then design the system.

Review, then build, then design.

We tell candidates upfront: the AI assistant is there, and using it is part of what we’re testing. Not whether you use it, but how you prompt it and whether you catch it when it’s confidently wrong.

What the new format shows about AI

We have run this interview more than 30 times. The gap shows up immediately. Some candidates do not understand the code the agent wrote. They do not challenge an answer that is confidently wrong. They are not in the driver’s seat, and they do not iterate. Others treat the agent as a tool: they prompt it, read what comes back, reject what breaks a boundary, and go again. Writing zero lines by hand can still be a pass. Accepting the first answer is not.

The interview follows from our engineering principles

We didn’t invent a clever format. Each phase exists because a principle demanded one:

  • “Code reviews are the center of our engineering culture." So the session opens with a review, not a blank file.
  • “Leave the code better than you found it." So candidates inherit a half-finished feature and decide what to fix before extending it.
  • “Pair programming is a force multiplier." So it’s a paired session, not a take-home.
  • “We aim for 100% test coverage to enable confident change." So the feature isn’t done when it works, only when a test would catch it breaking.
  • “Engineers own their projects end-to-end." So the last phase asks how you’d measure this in production, and feed the result back.

What we don’t test is fluency with our technical stack. Anyone good picks up a language in a week. Reasoning inside an unfamiliar system is the part that takes years of experience. TypeScript is the default and Python is available, and neither is scored. We send a short architecture primer beforehand so nobody is filtered on having read about the pattern.

What it bought us

The signal looks like the job. Reading unfamiliar code, arguing a trade-off, decomposing a vague spec.

AI usage became observable. Two candidates finish with the model’s help and look identical on output. One pasted a prompt and accepted the answer; the other spotted that the generated code violated a boundary and pushed back. That gap is invisible in a format that bans AI.

The session doubles as a recruiting document. Candidates leave knowing what our code and our standards actually look like.

The new format still tests what the old loop did well: how someone thinks out loud, how they explain a trade-off, and how they use a hint.

Takeaway

An interview should follow from how the team actually works. For us, that now includes AI. The principles still come first: review, tests, ownership, and clean boundaries. The new question is whether a candidate can use an agent and stay responsible for the result.

We’re hiring

If reading someone else’s code, arguing about the right seam, and shipping into a platform serving millions of users sounds like your kind of work, we’re recruiting in France and Spain ➡️ https://www.welcometothejungle.com/en/companies/joko/jobs 👋