01
What do you actually build?
Working software that uses AI where it helps and plain code where it doesn't. Customer-facing sites, internal tools that replace spreadsheets, and assistants that answer questions from your real data.
AI systems engineer · New Orleans → Atlanta · Remote
I build AI systems that hold up in production — retrieval that is measured, assistants that cannot invent your numbers, and the database, tests and deploys underneath them.
Proof, not adjectives
What clients ask first
01
Working software that uses AI where it helps and plain code where it doesn't. Customer-facing sites, internal tools that replace spreadsheets, and assistants that answer questions from your real data.
02
Because I don't let it. On money and records the model only chooses which lookup to run — the numbers come straight from your database. Every figure it reports can be traced to a row you can open yourself.
03
Access rules live in the database, not just the screen, so a user cannot read what their role forbids even through the API. Sensitive jobs run entirely on local hardware, where nothing leaves the building.
04
You get the repository, the tests, the deploy path, and written runbooks. Everything I ship is verified in a real browser and a real database before I call it done — and I tell you what I did not check.
Capability matrix
Designing systems where a language model picks tools and a deterministic program does the work. Includes building the MCP servers those tools live in.
Built a 7-tool MCP server used daily by three different AI clients, plus a router covering 51 capabilities.
Getting the right context in front of a model — chunking, embeddings, hybrid search, and knowing when retrieval is actually making things worse.
90% recall@5 on a 50-question evaluation, against a 44% navigation baseline.
Measuring whether an AI feature works instead of assuming it does, and building the deterministic checks that stop a confident model from costing you money.
Caught a transcription bug that would have billed $971 instead of $52.30, and shipped the check that makes it impossible.
The unglamorous half: schemas, migrations, row-level security, payments, deploys, and enough tests that a change on Friday is not a gamble.
230 automated checks on a single client app, including one proving anonymous visitors read nothing.
Running capable models on hardware you already own, so private data stays put and there is no per-call bill attached to daily work.
Three models orchestrated inside 6 GB of VRAM, with a hand-off scheme so none of them spill to CPU.
The part clients see. Brand systems drawn from a client's own material, 3D and scroll motion that carries meaning, verified on real devices.
Six distinct brand systems shipped, each built from the client's own source material rather than a template.
Selected work

Own R&D
The pattern behind any 'ask our documents' feature — and proof I measure retrieval instead of trusting it.
A retrieval engine over 1,668 documents and 7,806 text chunks, combining keyword and semantic search over SQLite FTS5 with bge embeddings. It ships as an MCP server so any AI assistant can query it directly, and reindexes incrementally in under a second.
The hard part
Adding graph expansion — the obvious next feature — measurably made results worse, dropping recall from 90% to 80-88%. I cut it from ranking and kept it for visualization only. Most teams would have shipped it because it demos well.
Data destroyed at handover
No screenshot exists. The client environment was fully decommissioned at the close of the engagement — hosting and database deleted, and the client’s data with them. The architecture is described here instead.
Security integration firm
One system of record per job — estimate, purchase orders, bills, shipping, tax and true margin — instead of a workbook only one person could safely touch.
A Next.js and Supabase app that became the financial record for every job. 28 migrations, row-level security on every table, and a tamper-evident append-only audit log. Migrated 106 jobs, 112 catalogue items and 31 invoices, reconciled to the client's own totals to the cent.
The hard part
The built-in assistant never sees a number. It only picks which database tool to run; the figures come back from Postgres under the asking user's own permissions. That makes an invented total structurally impossible, and stops one role reading another's margins.

Property maintenance company
Work orders, technician routing, time tracking and invoicing for two apartment properties — replacing texts and paper.
Next.js 16 and Supabase, live on Vercel. 91 units and 152 residents imported, three roles, row-level security across 16 tables, and a database trigger that routes every HVAC job to the only trained technician automatically.
The hard part
Technicians pitch their own pay. Management can approve or send an invoice back with a note, but cannot overwrite a technician's number — enforced in the schema, not the UI. Resident names and phone numbers were also purged from git history before the first push.

Sarcio Services LLC · founder-operated company
Speak the job on the drive home, get a priced invoice with a payment link and a sourced pricing sheet — without client details ever leaving the machine.
A public site plus a local-only invoicing tool. Speech-to-text runs on the GPU with faster-whisper, extraction uses a local Qwen model constrained to a JSON schema, and a second vision model reads the job photos. Payment links are minted per invoice through Stripe.
The hard part
An early build misheard prices and produced $971 of materials instead of $52.30. The fix is deterministic, not a better prompt: an amount is accepted only if that exact figure appears in the transcript. Asked to infer a job from photos alone, the model invented work that was never done — so it is now barred from writing photo notes into billable scope.

Mabel Solicitors · Lagos, Nigeria
A public presence matching a firm established in 2007, plus an architecture for AI document search that never sends client matters to the cloud.
The landing page was built from the firm's own corporate profile — its motto, practice areas and offices. The visual language borrows from Adire textile, with a scroll-driven gold thread spine and real liquid-glass effects. Background textures were generated locally rather than licensed.
The hard part
For a law firm, cloud AI is a confidentiality problem, not a cost one. The proposed system keeps every document on a firm-owned machine in Lagos running a local model, so privileged material never crosses the network.

Own product
Point a phone at the problem and get a measured, step-by-step plan — including the ways the job typically gets ruined.
A photo plus a short description is turned into a full build guide: derived measurements, materials, sequenced steps and failure modes. It is a working demonstration of turning an unstructured image into structured, checkable output.
The hard part
Measurements inferred from a photo are estimates, and treating them as exact is how someone cuts material wrong. The output labels them as photo-derived and tells you to verify before cutting, rather than presenting a confident number.
Also shipped

BD Services
3D neural interface, service pages, intake forms and analytics, exported static.
Visit
Dr. Tina Health Initiative
A public redesign kept as a factual case study, with no invented outcome claims.

CZ MD Aesthetics
Editorial typography, rose-gold glass treatment, and a booking path.

Bagneris Law · New Orleans
A scroll-scrubbed video hero and a heavier editorial register for legal work.

Chris Maison
Browser smoke tests covering the cart and the www/apex domain split.
Visit
Founder-operated subscription project
A Stripe-backed subscription signup flow with eight live price tiers.
Visit
Own R&D
A standalone transparent desktop interface driving a local agent runtime.
How I work
01
AI features get an evaluation with a score, not a demo. If a change does not beat the baseline it does not ship, even when it is the interesting one.
02
Money, records and permissions are handled by code with checks, never by a model's judgement. The model is allowed to choose; it is not allowed to compute.
03
Access rules live in Postgres row-level security, so they hold through the API and not only behind a screen. Audit logs are append-only.
04
Nothing is called done from a passing build alone. Pages get rendered and looked at across real breakpoints before handoff.
05
You get the repo, tests, deploy path and runbooks — plus a plain list of what was not checked and what is known to be rough.
“Evidence before assertions.”
If I say it works, I ran it and looked at the result.
Track record
BD Services
2026 — Present
Brown Maintenance · Stone Mountain, GA
2026 — Present
Perfected Innovations
2010 — Present
Vivint Smart Homes
2019
Field roles
2012 — 2014
United States Navy
2009 — 2010
Contact
Send the problem in plain language. I will tell you whether AI genuinely helps, what it would cost, and when it is the wrong tool — before you spend anything.