I'm a freelance software engineer. I build apps, websites, and AI features for startups and small businesses that need something built properly, and soon — no team, no handoffs, just me.
Four to six weeks, a price agreed before we start, and a working product at the end. The lowest-risk way to find out whether an idea holds up.
Turn a pile of PDFs into a spreadsheet. Read a receipt from a photo. Answer questions about your own documents.
Idea to launched product. Next.js and React on the web, React Native on iPhone and Android.
APIs, data pipelines, third-party integrations, and cloud setup. Also where overflow work from agencies lands.
Five products I designed, built, and shipped myself. These are my own products, not client work — I build them to sharpen the same tools I use for clients.
Catalog a die-cast collection by photographing the card. AI reads the name, series, and number off it, and tells you in the store whether you already own it. Mobile-first PWA.
Community grocery price comparison — "GasBuddy for groceries." Photograph a receipt, AI parses every line item, and once confirmed the prices become searchable for everyone nearby.
Turns credit-card PDF statements into clean, structured transactions that budgeting tools can use.
One calendar view across every Google account — something Google's own web app won't do. Local and read-only; merges duplicate invites.
View source →Tracks what's in which storage box. A QR code on each box opens its contents on scan.
Collectors end up with duplicate cars because there's no fast way to check, standing in a store aisle, whether a specific casting and series is already in the collection at home.
A die-cast collection grows past the point anyone can remember by name. Manual spreadsheets fall behind, and the moment you actually need the answer — in a store, phone in hand — is the worst moment to be typing into one.
Photograph the blister card and let a vision model read the name, series, and collector number straight off it — no manual entry. The app checks that against the existing catalogue and gives a straight yes-or-no on ownership, built mobile-first as an installable PWA so it works one-handed in a store aisle.
A free 20-minute conversation about what you're trying to build. No sales pitch, no deck.
A plain-language proposal — what gets built, how long it takes, and a fixed price or weekly rate. Agreed before anything starts.
Weekly check-ins with working software, not slides. You can ask questions or change direction any time.
Deployed, with the code and documentation handed to you. Available after launch if something needs attention.
No price list — every project is different. Engagements are structured one of three ways, agreed before work starts.
A defined deliverable for a defined price. Best for sprints and well-scoped builds.
Billed by the week for open-ended or evolving work, invoiced as we go.
A set number of hours each month, for ongoing maintenance or a steady stream of small work.
Tell me roughly what you need and I'll reply within a day — usually with a couple of questions and a sense of whether it fits a sprint, a full build, or something else.