Victor Billaud — Engineering Portfolio
Canonical, machine-readable portfolio. Served at both
/and/portfolio.md. Index: https://victorbillaud.fr/llms.txt
Profile
Software engineer based in Paris, France. AI Software Engineer at Maki People, and builder of Think Aloud, my own voice product for system design interview practice.
Focus areas:
- Voice AI and real-time audio systems
- LLM applications and multi-agent systems
- Backend and distributed systems
- Full-stack product development
Selected projects
Think Aloud — voice system-design interview practice (own product)
- Problem: Practising a system design interview needs an interviewer who listens, reads your diagram, and keeps the interview moving through its parts on time. A language model handed all three drifts. A speech-to-speech model also decides for itself when to speak, and nothing it has been told can be taken back.
- My contribution: Designed and built end-to-end (own product) in under three weeks: specs, architecture, product decisions and the live interviews that judged each design. Claude Code agents wrote most of the code under my direction, run as programs with ticketed pull requests, reviews, decision logs and budgets for paid model calls.
- Technical work: A server-side Director that never speaks and hands the voice model a Card of at most four open questions, with the moment it lands chosen by measurement (sent into the model's own speech, it drew an interruption 1 time in 35; into the candidate's, 13 in 34); an event-sourced Ledger under a pure
decide()that appends before it sends, so a Durable Object eviction replays to the same place and never sends twice; live judgments only where the answer steers the interviewer, everything else judged after the interview; a deterministic canvas-to-text renderer so the interviewer can read and point at what the candidate draws; coaching pauses that replace the voice session so the interviewer never hears the coach; a Report where one model call reads the transcript and code decides the grade, measured on gold-labelled fixtures; and a scripted candidate that drives the real app in headless Chromium with synthesised speech. - Stack: TypeScript, Cloudflare Workers, Durable Objects, D1, R2 and Queues, OpenAI speech-to-speech over WebRTC with a server sideband, React and Excalidraw, Stripe, Vitest and Playwright.
- Outcome: Live in private beta at https://thinkaloud.dev with four interviews and payments on. 256 commits, about 50,000 lines of TypeScript and 1,555 test cases. No usage figures published; report accuracy is measured in-sample only.
- Case study: https://victorbillaud.fr/projects/thinkaloud.md
Mochi — Voice AI screening agent (Maki People)
- Problem: A screening interview has to reach the end — every question answered, in order, inside a time budget. A language model handed the whole interview loses its place, and a transcript with gaps is one nobody can act on. A phone call also cannot be retried: when something breaks, a real person is holding a phone in silence.
- My contribution: Wrote most of the runtime; architectural decisions made as a team. In production for over a year, interviewing candidates by phone and browser in thirteen languages.
- Technical work: Separated navigation from speech — a state machine owns the position in the interview and the model owns the wording, with the conditions for moving on written as plain sentences by whoever designs the interview; per-turn isolation so an interruption can never leave the interview half-advanced; turn-taking that reconciles several disagreeing end-of-speech signals and adapts how long it waits to how long the candidate has been talking; two-stage interruption handling; self-hosted inference for latency and for constraining what the model can produce; a catalogue of failure paths where almost nothing is allowed to end a call; and an evaluation stack of simulated candidates, written behavioural rules and judges measured against human labels.
- Stack: Python, LiveKit (audio transport and telephony) at the low-level primitives, third-party speech-to-text and synthesis, self-hosted open-weights inference, conversation tracing and call-quality metrics.
- Outcome: In production at Maki People. Production metrics are measured internally and not published.
- Case study: https://victorbillaud.fr/projects/mochi.md
Vallum — deterministic multiplayer game server on Cloudflare Durable Objects
- Problem: Real-time multiplayer fails silently: a simulation that diverges on two machines does not throw, it drifts, and the first symptom is two players seeing different boards. On edge compute the object holding the match can also be evicted at any moment.
- My contribution: Designed and built end-to-end (personal project): simulation, network protocol, server, client renderer and opponent AI.
- Technical work: A dependency-free, pure simulation — no wall clock, no
Math.random, no I/O — making a match a function of(seed, map, intent log), with a hand-written integer PRNG, byte-exact serialization, 64-bit state hashing and golden vectors as the determinism proof; server-authoritative ticking at 30 Hz inside one Durable Object per match, with crash recovery by replaying a phase-boundary snapshot and a per-tick intent log; a binary msgpack protocol with snapshot-then-delta state whose reassembly preserves object identity so the renderer's dirty checks stay meaningful; one client interface with local and networked implementations, held together by a test asserting they agree tick for tick. - Stack: TypeScript, Cloudflare Workers and Durable Objects, hibernating WebSockets, msgpack, canvas 2D, pnpm + Turborepo, Vitest.
- Outcome: Live and playable at https://vallum.games. 1,000 matches (~10M ticks) replay deterministically from seed as a committed benchmark baseline. No user base and no load data.
- Case study: https://victorbillaud.fr/projects/vallum.md
Rephrase — native macOS text-rewriting product
- Problem: Rewriting selected text in any app requires copying into a separate tool and back.
- My contribution: Designed and built the product end-to-end (personal project).
- Technical work: Native SwiftUI/AppKit menu-bar app that captures the current selection, streams a rewritten result from a backend, and pastes it back in place (with copy fallback). Server-owned prompt/preset model; LLM access kept backend-only.
- Stack: SwiftUI/AppKit (macOS), TypeScript + Fastify API on Fly.io, PostgreSQL on Supabase, Supabase Auth (Google OAuth, PKCE), Turborepo + pnpm monorepo.
- Outcome: v0 core loop (capture → rewrite → paste-back), trial-gated. Billing deferred to v1. Product site at https://rephrase.studio.
- Case study: https://victorbillaud.fr/projects/rephrase.md
Experience
- AI Software Engineer — Maki People (Paris, Sep 2024 – present). Core engineer on Mochi, the voice screening agent: the event-sourced conversation engine, the turn-taking and barge-in layer, the multi-agent orchestrator, self-hosted inference, and the simulation and evaluation harness. Python.
- Software Engineer Intern — Maki People (Paris, Mar 2024 – Sep 2024). Full-stack engineer across internal and client-facing systems using Hasura, NestJS, and React; contributed enterprise features for large clients and foundational engineering tooling.
Technical strengths demonstrated
- Steering real-time voice models, measured on live sessions — demonstrated in Think Aloud
- Event-sourced, pure decision cores with replay — demonstrated in Think Aloud and Mochi
- Evaluating LLM judges against gold labels — demonstrated in Think Aloud and Mochi
- Directing coding agents at product scale — demonstrated in Think Aloud
- Real-time audio / Voice AI — demonstrated in Mochi
- Multi-agent systems and state machines — demonstrated in Mochi
- LLM infrastructure (self-hosted serving) — demonstrated in Mochi
- Distributed systems and real-time networking — demonstrated in Vallum
- Deterministic simulation, replay and crash recovery — demonstrated in Vallum
- Edge compute (Cloudflare Workers, Durable Objects) — demonstrated in Vallum
- Binary protocol design — demonstrated in Vallum
- Native macOS application development — demonstrated in Rephrase
- Full-stack TypeScript (Fastify, Next.js, Supabase) — demonstrated in Rephrase
External profiles
- GitHub: https://github.com/victorbillaud
- LinkedIn: https://www.linkedin.com/in/victorbillaud
- Contact: mailto:[email protected]