Skip to content

Vendomo Interview

Welcome, and thanks for taking the time to interview 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

See the Environment page for how to run it and what's provided.

Format

This is a pair-programming interview in three phases. Modern engineers code with an AI agent every day, so this loop is designed around that reality — we want to see how you work, both with and without an assistant.

Phase Focus AI assistance
1 Bug bash Unassisted — no AI
2 Implementation AI-assisted — use your agent
3 Optimization AI-assisted — use your agent

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.

Phases 2 and 3 are AI-assisted. Use your coding agent freely — in fact, please do. Share your screen and think out loud as you go. We're watching how you direct the agent, how you review what it produces, and how you integrate it — as much as the final code itself. Treat the agent like a fast teammate whose work you're responsible for.

Where to go next