Freelance software engineer · Real-time systems · AI agents
Real-time systems and AI agents that hold up with real users.
I help teams ship the hard parts: messaging that doesn’t fall over during a campaign, databases that stay fast as data piles up, and AI agents you can measure before you trust them. I’ve already made these mistakes in production, so you don’t have to.
6 years building Turn.io’s WhatsApp platform, used by the WHO and national health ministries.
14.7M
people reached by national public-health campaigns on the bulk send engine I built
1 TB+
production PostgreSQL tables partitioned to get performance back
~21 s
cold start for a self-hosted, FP8-quantised 27B medical model, down from ~100 s
10+ yrs
shipping production software, 6 of them on WhatsApp at scale
Services
Five things I do very well
Hire me for one of them. Most projects touch two or three, because messaging, data and AI tend to fail together.
WhatsApp Business Platform
WhatsApp services that hold up when millions of people use them.
- WhatsApp Cloud API
- Webhooks
- Message templates
- Interactive messages
Real-time systems
Pipelines that bend under load instead of breaking.
- Elixir
- Erlang/OTP
- Phoenix & LiveView
- GenStage / Broadway
PostgreSQL & Elasticsearch
Get your database fast again, and keep it fast as data grows.
- PostgreSQL
- Declarative partitioning
- pg_stat_statements
- Read replicas
AI agents & evals
AI agents you can put in front of real users, and the evals that prove it.
- Anthropic Claude
- OpenAI
- Gemini
- MedGemma
Agentic coding
Get your engineers real work out of coding agents, not just autocomplete.
- Claude Code
- Skills & slash commands
- Hooks
- MCP servers
How I work
Most of my best work started on a customer call
- 01
Discovery
I join the call with your team and, ideally, your users. We map what must never go wrong and what "good" looks like.
- 02
First version
A thin, real slice in production early, instead of a long design phase. Real traffic teaches more than documents.
- 03
Measure
Load tests, dashboards, evals. Every claim about speed, reliability or quality gets a number.
- 04
Iterate
Failures become test cases, bottlenecks become tickets. I stay until the system runs itself and your team owns it.
Selected work
Built at Turn.io, running in production
Turn.io is a WhatsApp platform used by the WHO, national health ministries and clinic networks. Here is some of what I built there.
Bulk messaging engine
High-throughput send engine with rate limiting, backpressure, delivery tracking and retries, used for national public-health campaigns.
AIAgent harness & sandboxed tools
The agent loop organisations use to run AI agents on WhatsApp: tools, orchestration, guardrails and handover to humans.
EvalsSimulation & online evals
LLM-simulated users, LLM judges, OpenTelemetry tracing and a feedback loop that turns failures into fixes.
DataPostgres & Elasticsearch at scale
Partitioned 1 TB+ tables and live search indices, with lifecycle policies moving old data to cold storage.
Writing
Latest writing
Testing a medical triage agent with LangWatch Scenario and pytest
How I test a medical triage AI agent with LangWatch Scenario: a simulated user, judge criteria, scripted and free-running conversations, in pytest and CI.
Building a reliable WhatsApp Cloud API webhook receiver at scale
How to build a WhatsApp Cloud API webhook receiver that holds up: signature checks on the raw body, fast 200s, dedup, per-contact ordering and media handling.
Backpressure in Elixir: sending millions of WhatsApp messages without falling over
Designing a bulk WhatsApp send engine in Elixir: demand-driven Broadway pipelines, per-number token buckets, retries with jitter and batched status tracking.
FAQ
Before you get in touch
What kind of projects do you take on?
Projects where messaging, data and AI meet: WhatsApp services, real-time backends in Elixir, database performance work on PostgreSQL or Elasticsearch, and AI agents that need to be reliable and measurable. I also help engineering teams adopt coding agents like Claude Code.
How do engagements work?
Usually one of three shapes: a short, fixed-scope review (one to two weeks), a build with a clear outcome, or a few months embedded part-time in your team as a senior engineer. We start with a free intro call.
Where are you based, and which time zones do you work with?
I am based in Italy (CET) and work remotely with teams in Europe, Africa, the Middle East and the Americas. I have also worked on site with customers when it helped.
Which languages do you work in?
English and Italian, both professionally. My main programming languages are Elixir and Python, plus TypeScript, SQL and Lua.
Can you work with our existing team and stack?
Yes. I prefer working with your engineers rather than around them, and I leave behind documentation, dashboards and tests so the team owns what we build.