Skip to content

Vendomo

Vendomo Kata

Welcome, and thanks for taking the time to work through this with us. This page explains the format so there are no surprises. Have a read before we start — you're welcome to ask questions at any point.

What you'll be working on

Vendomo is a vending-machine fleet-management app: a single place for an operations team to see where every machine is, what state it's in, and what's been serviced recently, plus tooling to onboard new machines.

The stack is:

Layer Tech
Frontend React + Vite + TypeScript + Leaflet
API FastAPI (Python 3.12)
Database PostgreSQL 16
Cache/bus Redis 8 (cache, streams, GEO, query engine)
Worker Async revenue-event generator

Format

This is a pair-programming kata in two phases, taking about an hour in total. Modern engineers code with an AI assistant every day, so this is designed around that reality — we want to see how you work both without and with one.

Phase Focus Time AI assistance
1 Bug bash ~20 min Unassisted — no AI
2 Implementation ~30 min AI-assisted — use your tools

There's a short intro at the start and a short wrap-up at the end. Throughout, we're most interested in how you think — your reasoning, how you scope a problem, and how you evaluate the work in front of you. A clear, well-narrated investigation matters more to us than racing to a finished pull request.

Ground rules

Phase 1 is unassisted. No coding agent, no LLM autocomplete. You may:

  • read the code,
  • run the app,
  • hit the API / Swagger,
  • read logs,
  • use a debugger,
  • and use plain documentation.

We just want to see you reason about an unfamiliar system with your own debugging skills.

Phase 2 is AI-assisted. Use any coding agent or AI tool you like — Claude Code, Cursor, Copilot, Windsurf, whatever you're fastest in. Please use whatever you'd reach for in your day-to-day; we're not testing a specific tool. Share your screen and think out loud as you go. We're watching how you direct the tool, how you review what it produces, and how you integrate it — as much as the final code itself. Treat it like a fast teammate whose work you're responsible for.

Where to go next