Hi, I'm Monte.
I design, build and automate the software behind your product.
From scratch, or on a system grown rigid over time.
From analysis and architecture to the build, to the processes that keep quality high: testing, CI/CD, observability, security. And the team stays able to carry on without me.
Who this is for
Product companies building something new, or living with a system grown rigid over time.
Products past the early-stage phase, now hitting friction that was not there before.
Deploys you dread
Every release is an event. You push it to Friday afternoon to dodge the on-call weekend. When something breaks, recovery takes hours, not minutes.
Tech stuck in place
Adding a new feature costs an enormous effort. The stack is old, and every change fights the ones before it. You are falling behind, and you can feel it.
You are about to build something new
A service, an integration, an important feature. This is when architecture choices matter most: they are the most expensive to change later.
If two of these already feel familiar, the right time to act is before the third one shows up.
The method
Three pillars in a deliberate order. Take one away and the other two lose their edge.
Skipping a step doesn't save time. It just pushes the pain further down the line.
Design
There's no going back without paying. That's why design decisions come first.
Verify
Making sure it actually works: under load, under attack, over time. Without this, automation just amplifies the failures.
Automate
Only after designing and verifying. Automation amplifies everything sitting above it, mistakes included.
The proof
Real projects, told through the decisions that shaped them.
8 technical analyses of systems that already had people working inside them. Client names are omitted, the decisions are not.
software installato presso il cliente
Quante versioni del tuo prodotto stai mantenendo davvero?
Le configurazioni supportate sono diventate un elenco scritto, e «verde» ha smesso di significare tre cose diverse. Il lavoro ha rivelato controlli che dichiaravano successo senza aver verificato nulla e configurazioni senza alcun controllo. Il risultato consegnato è la mappa di dove sono i buchi, e quanto costa ogni riga.
integrazione con un sistema di terzi
Il fornitore non ha un'API. Il portale sì.
I dati arrivano nel gestionale senza più trascrizioni manuali, e l'integrazione gira ancora: il portale del costruttore è rimasto quello, perché è specifico per quelle macchine e cambiarlo costerebbe troppo. Lungo la strada è emerso che l'endpoint riordinava le risposte, e per due settimane i valori sono finiti nella colonna sbagliata senza produrre un solo errore.
un dimostratore per una richiesta vera
Tracking live dei mezzi su mappa
Una feature portata end-to-end dallo stesso codice, con mappa nativa: eseguita e vista funzionare su iOS, compilata per Android. Ogni bivio è registrato con l'alternativa scartata, e la verifica è dichiarata per intero: cosa è coperto da test, cosa è stato provato a mano, cosa non è verificato e perché.
Training
Or I train the team
When the problem is not building but knowing how: a path run with the team, on your stack.
AI agents in Python
Building agents that hold up in production: instrumented, with a set of test cases that runs on every change, a spending limit configured and irreversible actions under control.
Observability
Instrumenting services and reconstructing what happened inside a running distributed system, knowing what the stack costs to keep on and when far less is enough.
End-to-end testing with Playwright
An end-to-end suite the team trusts: it runs in CI, it does not produce failures nobody reads, and the team maintains it without help.
Speaking
Latest conferences
See all talks →DevFest Milano 2026 · October 2026
L'incidente non parla PromQL: un'interfaccia naturale sopra il tuo stack di osservabilità

DevSecOpsDay · October 2026
Oltre i ruoli: autorizzazione relazionale con OpenFGA

Working Software 2026 · June 2026
Come il mutation testing mi ha fatto capire che la mia suite di test stava mentendo
Latest posts
What I learn, I write down.
DevContainers: Your Portable and Reproducible Development Environment
How DevContainers work, what lives in the .devcontainer folder, and how to avoid the root-owned files problem that hits developers on Linux
Agents write the tests. Who checks that they work?
Mutation score correlates with real bugs at R² ≈ 0.70, line coverage stops at 0.25. How it becomes the referee for agent-written tests.
How mutation testing showed me my suite was lying
93% coverage, all green, and a third of the tests verified nothing. What Stryker.NET showed, and how I went from 65% to 92%.
RTK and tokensave: reducing token costs in AI coding
Two orthogonal Rust tools: RTK compresses verbose CLI output, tokensave indexes the codebase into a local knowledge graph. Around -80% and -93% of tokens.
ListObjects in Production: Caching, Pre-materialization, and BatchCheck
Why ListObjects becomes the bottleneck in OpenFGA, and how to address it: Redis caching, pre-materialized read models, BatchCheck, and invalidation strategies.
Let's talk.
30 minutes, free, to figure out if we can work together.