Systems · Data · AI

Software that survives contact with reality.

CarvaTech designs and builds the unglamorous parts well — the schema, the pipeline, the retry logic, the migration — so the product on top of them keeps working long after launch day.

6
Products shipped
3
In production daily
Full‑stack
Schema to App Store
What I build

Three disciplines, one stack.

Most software fails at the seams — where the app meets the data, and where the data meets the outside world. That's where the work is.

01

System design

Architectures that hold up under load and under change — clear boundaries, honest failure modes, and a schema you won't have to fight in a year.

API designPostgresAuthInfrastructure
02

App development

Products people actually use, on the web and in the App Store — React Native and Next.js front ends over TypeScript backends, offline-first where it matters.

React NativeNext.jsTypeScriptStripe
03

Data & AI integration

Pipelines that move real data between systems that were never meant to talk — bank feeds, church rosters, third-party APIs — with LLMs used where judgment is needed, not as decoration.

ETLClaudePlaidWebhooks
Selected work

Built, shipped, and still running.

Products designed and engineered end to end — architecture, backend, app, and the boring operational glue that keeps them alive.

iOS · TestFlight beta

Gym Coach

An AI training coach that doesn't just hand you a plan. It watches what actually happens — a missed week, a stalled lift, a crowded squat rack, a cranky shoulder — and rewrites the program around it, always explaining why. Offline-first logging, an 8-week mesocycle engine, and optional cloud backup.

React NativeExpo SDK 54SupabaseClaude
iOS + Web · Vertical slice

Quote-to-Cash for Trades

A contractor writes a quote on a phone. The customer opens a link, ticks the add-ons they want, signs with a finger, and it becomes an invoice against a job. Change orders, payment schedules, card and Apple Pay, refunds, credit notes, and the subscription that pays for all of it — covered by 621 tests.

Expo SDK 57PrismaPostgres 18Stripe
Web · In production

Church Finance

Month-end close for a church, without the spreadsheets: bank feeds through Plaid, rule-based and AI-assisted categorization, receipt storage, and reporting that gives leadership visibility and members transparency.

ExpressPrismaNext.jsPlaid
Automation · In production

WhatsApp Birthday Bot

Every morning it reads Planning Center, finds the day's birthdays and wedding anniversaries, writes a warm Brazilian-Portuguese message with Claude, and posts it to the church's WhatsApp group — @-tagging the person so they actually get the ping.

Node.jsClaudePlanning Center
Website · Live

Bilingual church website

A WordPress site replaced with hand-written HTML, CSS and JavaScript — fully bilingual in Portuguese and English, with every string in a single translation file, deployed to Cloudflare Pages on push. Faster, cheaper to run, and editable by someone who isn't a developer.

HTML5Vanilla JSCloudflare Pagesi18n
Web + Mobile · In development

TripVault

Trips, reservations and the paperwork that comes with them, in one shared place — invite the people you're travelling with, and everyone sees the same itinerary. A typed end-to-end stack: tRPC contracts shared between a Next.js web app and an Expo client.

Next.js 16tRPCPrismaClerkStripe
How I work

Technical depth, delivered with clarity.

01

Architecture first

Every project starts with the data model and the boundaries. Scale, resilience and maintainability get decided before the first line of code, not patched in after the first outage.

02

Full-stack ownership

Database schema through to the UI and the App Store submission. No handoffs, no gaps, and nobody to point at when something needs to change.

03

Data-native by design

Integration isn't an afterthought bolted on at the end. Data flows cleanly across every layer because the system was drawn that way from the start.

04

Built for the long run

Documented, tested, and engineered so your team can own, extend and scale it — long after the project that created it is finished.

Get in touch

Ready to build something that lasts?

Tell me about your project. We'll work out the right architecture, the right stack, and the right path forward — before anyone writes code.

Start a conversation

No commitment — just a conversation.