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.
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.
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.
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.
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.
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.
Products designed and engineered end to end — architecture, backend, app, and the boring operational glue that keeps them alive.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Documented, tested, and engineered so your team can own, extend and scale it — long after the project that created it is finished.
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 conversationNo commitment — just a conversation.