Daniel Slater

AI Lead Engineer · Cape Town

AI Lead Engineer at Nsuna, a hospitality platform, where I have shipped across the whole stack since 2024 and founded and lead its voice-AI agent. I build with a fenced fleet of Claude Code agents. Below is the work.

scroll ↓

Selected work

Nsuna · founded and lead

Voice-AI ordering agent

Takes real orders at two restaurants, by phone and in the Nsuna app.

  • Python on LiveKit Agents, with function tools that act on the live Go backend.
  • The model provider is a config choice with automatic failover. Production runs OpenAI’s realtime model.
  • Every call writes a trace, and I built the AI-calls studio in the Svelte admin portal that turns it into a timeline, a recording, latency and cost per call.
  • Traced orders that skipped the read-back to prompt non-compliance, and proved a transcription prompt was inventing dialogue before removing it.
  • Founded the Python AI service (FastAPI) the agents run in, and remain its top committer.
  • Python
  • LiveKit Agents
  • FastAPI
  • OpenAI Realtime
  • Go
  • Svelte

Ask me for a number to call it

Private product. A colleague leads the restaurant agent’s prompt day to day.

The AI-calls studio showing one test call as a timeline: each turn a shaded band, with lanes for the agent and caller messages, end of utterance, transcription, the model, tool calls such as add_to_cart, confirm_order and place_order, and speech synthesis.
The AI-calls studio, a test call on the stage restaurant, turn by turn.

How I work

A fenced fleet of Claude Code agents

One control session drives long-lived agent sessions across my Mac and two servers.

  • A hook allows, denies or holds each tool call. Destructive commands never run, and risky ones wait for a decision.
  • Skills I wrote carry the repeatable work: deploys, pull-request review against the repo’s own rubric, production call forensics.
  • Curated memory files carry the team’s rules from one session to the next.
  • Agents prove their work against the full local stack and its end-to-end tests.
  • A CI guard I wrote fails any test run that passes having asserted nothing.
  • Claude Code co-wrote almost every commit on this site, the whist table included.
  • Claude Code
  • tmux
  • Shell hooks
  • launchd

The repos are private. I can walk you through them.

Control session briefs, steers, approves
Mac agent sessions
Dev box agent sessions
GPU box agent sessions
Each session works in its own worktree and proves its change against the full local stack.

Try it · danielslater.dev/whist

Contract whist over the ocean

A 3D card table you can play now against bots, from three to seven seats. The two shortest hands are played blind: you hold your cards facing out and bid on everyone else’s.

  • Online tables run on Cloudflare Durable Objects with results in D1, behind Google sign-in.
  • A daily deal puts every player on the same cards, with a board of the day.
  • three.js
  • SvelteKit
  • Cloudflare Workers
  • Durable Objects
  • D1

Play whist

A round card table floating on the ocean, seven hands around it, the player’s own two cards held facing out, and a score panel on the right.
The aerias.co.za homepage: a runner in a white vest under the headline South Africa’s Lightest Running Vest.

Tech lead · aerias.co.za

Aerias running store

The online store of a running brand, live since August 2026. I lead its technology.

  • A SvelteKit storefront and admin portal, served from Cloudflare.
  • Supabase for data, with Paystack checkout and abandoned-cart alerts in Supabase Edge Functions.
  • SvelteKit
  • Svelte 5
  • Cloudflare
  • Supabase
  • Paystack

aerias.co.za

More work

Nsuna · since 2024

Across the Nsuna platform

Go and Python (FastAPI) services, SvelteKit web front-ends and a React Native app.

  • Wallet credit at checkout across the Go API, the voice agent and the Svelte diner app in one week.
  • Recommended LLM curation for popular items after order counts kept pushing still water and frozen stock. The curated set, with a manual override, is live.
  • Rewrote the Kafka Streams aggregator to KTable–KTable joins to stop change-data-capture bootstrap drops.
  • Led the October 2026 CI overhaul after the move to GitHub.
  • Go
  • GraphQL
  • Python
  • PostgreSQL
  • OpenSearch
  • Kafka
  • Kubernetes

Software Developer (2024), Full-stack Developer (2024 – 2026), AI Lead Engineer (2026 – present).

Personal agent

Bottimus

The agent I run my life through on Discord.

  • Reads my meeting minutes and reminds me what I promised before standup.
  • Runs my Todoist, analyses visitor journeys on client sites and dispatches work to Claude Code sessions.
  • I wrote its Go runtime: one binary, pure-Go SQLite, multi-tenant agents. It also serves my interactive CV, which you can talk to by text or voice.
  • TypeScript
  • Bun
  • Go
  • SQLite
  • Discord

Talk to my CV

The dietitiansplug.com homepage: a search box, filters by province, city and area of interest, and a map of South Africa.

Directories

dietitiansplug.com and physiosplug.com

Directories of South African dietitians and physiotherapists, built from practitioner records I resolve every week from public registers and listings.

  • Entity resolution with a human decision queue whose rulings feed the next merge.
  • Indexed in OpenSearch.
  • TypeScript
  • Bun
  • OpenSearch
  • SvelteKit
  • Cloudflare

dietitiansplug.com physiosplug.com

The leachie.com homepage: the headline Systems that bring in customers and cut the admin, above a carousel of client sites.

My studio · leachie.com

Leachie

Lead generation and automation for small businesses.

  • Sites the owner can edit, visit tracking, a leads portal and QR codes that route.
  • SvelteKit
  • Cloudflare
  • Supabase

leachie.com

Open source · from my MSc

paramaterial

A Python package for repeatable processing of mechanical test data, from my MSc dissertation.

  • 17 releases on PyPI under the MIT licence, with a docs site.
  • paramaterial-lab runs the same workflow in the browser.
  • Python
  • NumPy
  • pandas
  • SciPy

PyPI Docs paramaterial-lab

Smaller things

  • footyviz Computer-vision pipeline for amateur football footage: YOLO11 detection, BoT-SORT tracking, team-colour clustering.
  • surf-lab Breaking-wave simulator in the browser, with a world map and live instruments.
  • map-kit Svelte 5, MapLibre and OpenFreeMap map components.
  • mactabs Autoscrolling guitar-tab viewer for the Mac, with voice speed control.
  • berleinpsych.com Website and branding for a psychotherapy practice.

Before software

I convened and lectured the postgraduate courses in finite element methods and computational mechanics at UCT’s CERECAM, full time while completing my MSc(Eng) with distinction, then part time alongside Nsuna. The paramaterial package came out of that MSc.

BSc(Eng) Mechanical and Mechatronics Engineering and MSc(Eng) Mechanical Engineering, University of Cape Town.

CV

The CV has its own page, a PDF, and a version you can talk to.