Field notes on data, AI, infrastructure, and systems that have to survive reality.
I write about data engineering, AI-native tools, local AI, product architecture, and the messy parts of building software that rarely show up in clean demos.
Most of my work sits somewhere between business logic, data platforms, and practical automation. That means dealing with things like drifting schemas, unclear requirements, brittle pipelines, half-useful AI, expensive tools, and systems that looked simple until they met real users.
This site is where I write those things down. Not as polished thought leadership. Not as hype. Mostly as working notes from the field.
Latest posts
- Deploying Fabric Without a Debugger
I gave myself three Fabric workspaces and a deployment pipeline, and the first thing that went wrong went wrong quietly — the notebook deployed fine and pointed at the wrong environment. A field note on why CI/CD ends up small: when it breaks, you have a log and nothing else.
- willitload: What It Refuses to Do
I wrote a fifteen-line pre-flight check, then spent far longer deciding what the real version must never claim. A field note on building a validator you can actually trust — and letting a corpus I designed to break it tell me where I was wrong.
- The Files That Break Your Bulk Load
Point a bulk load at a folder of files and you're trusting the worst file in the set — which usually loads without complaining. A field guide to which files silently corrupt a load, why, and a fifteen-line pre-flight check that names them before the load runs.
- Why I Self-Host
The reasons I give — privacy, cost, resilience — are all true, and all partly a cover story. I set out to build a little local-AI appliance and spent the night fighting NVIDIA drivers and firewall lockouts instead, and enjoyed it. That last part is the actual reason, and it isn't a recommendation.
- Markdown to PDF Is a Swamp
"Convert this Markdown to a PDF" sounds like a solved problem — a one-liner. It is a swamp: no standard pipeline, a dead-but-ubiquitous engine at its center, and a workflow where you only find out the PDF is wrong after you've made it. I built a tool that doesn't drain the swamp, just hands you an honest map.
Start here
New here? These carry the ideas the rest of the site leans on.
- AI Is Good at the Work You Can Check Why the same assistant flies on one project and flails on another — the line is whether a machine can tell when it's wrong.
- How I Learned to Distrust My Own Demo The most useful thing I built in a decade of projects: disbelieving an impressive result until something that doesn't care about my feelings confirms it.
- I Sequenced My Family. We Still Don't Have an Answer. A rare-disease hunt across my family, as a data engineer rather than a geneticist — and what the doing taught me, including the part where the mystery held.
- I Built Cellular Routers Every Way. Then I Bought One. Years of building 4G/5G routers from scratch, and why for anything mission-critical I now buy the boring vendor box.
What I write about
-
Microsoft Fabric, Azure data platforms, lakehouse design, ETL migrations, data modeling, incremental loads, watermarks, auditability, and the boring control layers that make pipelines reliable.
-
How AI fits into real workflows without turning everything into a black box — especially systems where AI assists, but deterministic logic still owns the final action.
-
Ollama, OpenWebUI, SearXNG, local models, homelabs, GPUs, self-hosted tools, and the tradeoffs between local control and cloud convenience.
-
3D printing, Raspberry Pi, SBCs, OpenWrt, pfSense, Proxmox, Unraid, embedded devices, LTE/5G modules, routers, sensors, and other useful rabbit holes.
-
Small tools, solo SaaS ideas, anti-bloat thinking, workflow design, and the line where a useful feature starts turning into a platform.
-
Markdown, search, documents, structured notes, versioning, retrieval, and the problem of keeping information useful after the initial excitement wears off.
-
Domain-specific systems: recipe versioning, genomics data, smart agriculture, multilingual media, privacy tooling, and other workflows that are really software problems in disguise.
Why this site exists
I use writing to think. Some posts are technical deep dives, some are product notes, some are rough explorations, and some are just me trying to understand where a tool, pattern, or idea breaks.
The common thread is simple: can this system stay useful, understandable, and maintainable after the demo is over? That question shows up everywhere — and it is the backbone of how I think about systems. I've written that up on the philosophy page.
A note on how these are written: I work with AI in the loop — to think through ideas, fact-check specifics, and tidy the prose — then rewrite everything in my own voice. The arguments, the judgment, and the mistakes are mine. Many posts are field notes from real work; where that touches someone else's business, I change the identifying details and keep the shape of what actually happened.