I make automation stay up.
Most automation works on the day it is built. The interesting question is what
happens on day ninety, when an upstream API changes shape, a token is revoked,
a host starts answering 403, or a scheduled task is quietly killed by a
timeout nobody configured.
I build and repair the unglamorous layer that notices — supervision, circuit breaking, structured failure evidence, and deployment that verifies itself instead of assuming.
Stabilising AI and automation workflows that already exist. LLM pipelines, scrapers, n8n and Make workflows, scheduled jobs, Telegram and API integrations — the ones that are 80% working and fail in ways nobody can reproduce. Most of that work is not new features: it is making failure visible, bounded and recoverable.
Getting Python services to run unattended on machines nobody logs into.
macOS launchd and Windows Task Scheduler, packaged so a non-technical person
can install them by double-clicking one file.
| job-watchdog | Know when a scheduled job stops working — including when it keeps succeeding. Exit codes, timeouts, and the silent case: a job that exits 0 and produces nothing because an upstream died weeks ago. Plus a heartbeat monitor for processes that never exit. |
| resilient-poller | Circuit breaker and structured logging for services that depend on third parties that break. Stops a dead upstream from slowing everything down, and makes sure every failure leaves a traceback behind. Runnable demo with real numbers. |
| winservice-kit | Ship a Python service to a Windows box as a package installed by double-clicking one file. No Docker, no Python preinstalled, nobody logged in. Build gates that refuse to produce a package that would fail on the target machine. |
| flyover-alert | A Telegram message when an aircraft passes over your house — or over you, following your phone's live location. Free ADS-B feeds behind a circuit breaker per host, a heartbeat that proves it is still polling, and a Windows kit that installs by double-click. |
| clipsync | One clipboard across Mac, Windows, Linux and Android, carried by your own Tailscale tailnet. No account, no relay, nothing left on someone else's server. The hub binds to the tailnet address only and checks every caller, failing closed. Honest about what Android refuses to allow. |
| disposable-email-bot | Disposable email addresses on your own domain, delivered to Telegram by one Cloudflare Worker. Unknown recipients refused at SMTP time, mail rendered under a no-script policy, only the owner can drive the bot. In production since July 2026. |
The Python ones are standard library only. Every repo has self-tests and a
check.sh that runs the standard analysers in one command, in CI on every
push. Every design note in them comes from something that broke in production
first.
Native Android apps (Kotlin, Jetpack Compose) reading live sensor and BLE data · Telegram bots and notification services running 24/7 across macOS and Windows · data pipelines over free public APIs, with the retry, deduplication and rate handling that makes them survivable · offline-first PWAs · trading indicators and backtesting research in Pine Script and Python.
Stack: Python, Kotlin, Bash, PowerShell, SQLite, JavaScript · launchd, Windows Task Scheduler, systemd · REST integrations, scraping, LLM APIs · Tailscale, SSH, remote administration.
Available for contract work, remote. The engagements I am most useful for:
- an automation that half works — diagnose it, make it fail loudly instead of silently, and hand it back with the failure modes documented;
- a workflow that needs to survive without you — supervision, alerting that does not become noise, and a deploy someone else can repeat;
- a service that needs to run on a machine you do not control.
Reach me at luca@lucamauri.dev.