I'm a staff software engineer with 20+ years building production systems. I partner with organizations that want to move past AI experiments into deployments they can actually depend on — with thoughtful architecture, proper monitoring, and a clear answer to "what happens when this breaks?"
Best fit for mid-market teams in regulated or data-sensitive industries — logistics, financial services, healthcare, legal — where running AI on your own infrastructure matters.
Getting AI into a demo is easy. Getting it to run reliably inside a real business — with production traffic, sensitive data, and real consequences when something goes wrong — is a different problem. That's the work I enjoy, and it's what I've spent my career building toward.
If you've already shipped something that's fragile or giving you pause, I can help. I'll audit what's there, walk you through the failure modes, and work with you to shore it up or rebuild where it makes sense.
Building AI into your existing systems with the same rigor you'd apply to any production service — structured outputs, validation, retries, observability. Components you can depend on, not just things that work on a good day.
Running LLMs on your own hardware so your data stays yours. Model selection, optimization, and deployment tuned to your workload. Especially valuable for teams in regulated industries or organizations with strict data privacy requirements.
Sometimes the most useful thing I can do is help you think clearly about where AI actually fits. I'll look at your infrastructure, data, and goals and give you an honest roadmap — including the places where AI isn't the right answer.
Enterprise SaaS vendors needed to understand which technologies were deployed across their entire addressable market — roughly 515,000 organizations — and detect the leading indicator of customer churn: dual-vendor deployments that precede a switch. The challenge wasn't the crawler. It was building a reliable, resumable, multi-stage pipeline that could process a market at scale, deliver clean data to enterprise partners on a monthly cadence, and handle the messy reality of websites that break in every way imaginable.
As co-founder and CTO, I architected the full pipeline: a Python async Playwright crawler (10–20 concurrent headless browsers with slot isolation, checkpointing, and backpressure) feeding a Go signal processor (1,000+ regex and text fingerprints, batched inserts with circuit-breaker and exponential backoff) into a Go exporter with MD5 deduplication and atomic file writes, delivered monthly to partner S3 buckets. The v2 ML account matcher was the technically interesting piece — a Random Forest classifier with 15+ feature vectors across four parallel matching strategies, tuned to 92% accuracy while running 73% faster and using 60% less memory than v1. Operational maturity mattered as much as the algorithms: per-stage alerting, dry-run mode, retry-failed mode, and status monitoring that let the team sleep at night.
A media organization needed 15,000+ videos made searchable across three languages — with semantic understanding rather than keyword matching, and with AI running on their own hardware to control costs at scale. I designed and built the pipeline end to end: automated ingestion, transcription with faster-whisper, multi-language translation, and a three-pass LLM analysis that extracts themes, validates content against a domain-specific reference corpus, and produces search-ready tags that match how users actually look for things.
The hard problems were the unglamorous ones. GPU memory budgeting to run 14 parallel transcription workers in 21GB of VRAM without contention. A two-phase scheduling model that separates network-bound work from GPU-bound work so neither starves the other. Deterministic confidence scoring — rule-based, not LLM-generated — so content with low-confidence claims gets flagged for human review before publishing. Streaming audio-only extraction from cloud storage to cut bandwidth by 90%. And the batch work that actually proves a pipeline is production-grade: 5,522 AI jobs processed overnight with zero failures.
Keyword search doesn't help when a user types "why do I keep running from what God asked me to do." Naive vector RAG over a transcript corpus doesn't help either — it collapses the distinction between what the content is and what the content speaks to. For the multilingual video platform, the question was how to make search actually work across 15,000+ sermons in three languages, by designing the tagger and the search layer to cooperate deliberately rather than bolting them together after the fact.
The architecture is four-tier typed embeddings with per-type weights tunable from the database without a redeploy — transcript chunks, summaries, themes, and the interesting piece: per-phrase embeddings generated from the pastoral-inference pass, weighted highest because they're already pre-shaped as real user queries. Query expansion uses a persona-based prompt ("describe the searcher, not the solution") per language, so terse emotional keywords land in the same register as the indexed content. The whole thing is held together by a small, tolerant contract between the Python LLM tagger and the Go pgvector index — defined once, consumed by three ingest paths, tested for drift. A low-confidence signal surfaces back to the UI when the system isn't sure any result answers the question.
Every engagement starts with a written scope — nobody gets a surprise invoice, and nobody gets a surprise deliverable. Most work falls into one of four shapes:
Short-form assessment when you're not sure where to start. I look at your infrastructure, data, and goals and produce a prioritized roadmap — including honest guidance on where AI isn't the right answer. Usually the entry point to a larger engagement, but works as a standalone.
For defined builds. Paid discovery produces a written scope document; I quote a fixed price against it. Change orders handle anything outside the scope so we both stay on the same page. Typical engagements run six to twelve weeks.
For AI systems that are fragile, unreliable, or underperforming. I audit what's there, walk you through the failure modes, and work with you on a clear path forward — shore up, rebuild, or replace. The decision is yours once you have real information.
For teams with ongoing AI work who want priority access to a senior engineer. Architecture review, code review, planning help, and on-call judgment for decisions that matter. Monthly, quarterly contracts.
Twenty years of building production systems across startups and enterprise. I've led teams, architected distributed platforms, and shipped through acquisitions, migrations, and scaling moments. The AI work I do now is built on top of that foundation — not instead of it.
I take on a small number of engagements at a time so I can give each one real attention. Whether you're looking at an ambitious project or just want a second set of eyes on something, send a note and we'll figure out if there's a fit.