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.

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

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

  • 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