Full Stack Developer, building with AI
Complete products — frontend, backend, data, payments and the pipeline that ships them.

Real money, real cards, phones with no signal — flows that hold up.
- Katapult Labs
- Devsu
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
A transaction platform on Stripe: checkout, saved cards, subscriptions, platform fees, payouts and receipts — one flow, built and maintained by me.
AI in the loopTests, debugging and pixel-precise UI, accelerated with AI.
Next.js / NestJS / Stripe / Supabase Postgres / Redis / Design system
- Buyers pay inside the product with Stripe Elements.
- A NestJS API creates and confirms every PaymentIntent.
- Before a card is charged, a Redis guard checks the device.
- Stripe handles cards, saved methods and subscriptions.
- Connected accounts get their share; the platform keeps its fee.
- Signed webhooks report what really happened.
- Every transaction state lands in Postgres.
- Receipts and exports are generated from that one record.
Built
- 01Auth
- 02Users
- 03Checkout
- 04Subscriptions
- 05Webhooks
- 06Payouts
- 07Receipts
- 08Reports
Impact
$100K+
In transactions, hundreds of thousands of dollars
100%
Of the payment flow built and maintained by me
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
Mobile payments for Ecuador's largest digital wallet: QR codes, deep links and offline payments encrypted on the device.
React Native / NestJS / TypeScript / AWS / Design system
- A wallet app, often on a weak network.
- Pay by scanning a QR code or opening a deep link.
- With no signal, the payment is encrypted and kept on the device.
- When the network returns, it syncs.
- Backend services take over, across a large distributed team.
- A cache layer stops empty or invalid responses from reaching the user.
- Interactive charts show people where their money goes.
Built
- 01QR payments
- 02Deep links
- 03Offline mode
- 04Encryption
- 05Charts
- 06Service migration
Impact
1000s
Of people paying with no connection
#1
Digital wallet in Ecuador
Agents do the typing. I own the architecture, the review and the result.
- Every project
- Neura
- Lucka · Lexio
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
I don't trust AI to write good code. So I built a system that doesn't need trust.
Claude Code / MCP / Agents / Skills / Hooks
- It starts in a meeting. Granola takes the notes.
- Claude turns them into tickets.
- A planner agent writes the plan. Every decision becomes a question I answer.
- Claude codes against one short, strict rules file and the Figma design.
- Hooks check every edit. Hardcoded colour, wrong file name, push to main: blocked.
- A test planner proposes the edge cases. I pick. Jest and Cypress run them.
- Four AI reviewers check the code in parallel. A fifth tries to prove them wrong.
- Every pull request ships with a live preview.
The loop
- 01Notes
- 02Ticket
- 03Plan
- 04Code
- 05Hooks
- 06Tests
- 07AI review
- 08PR
Impact
+200%
Delivery output since AI joined the loop
3 days
To build a complete application
2 wks
To ship a feature scoped at three months
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI

Neura, a personal AI assistant built from zero: send a voice note, get emails written and tasks created. Web, mobile and backend, with a team of three.
AI in the loopAI inside the product, and across the build: screens, API integration and UI iteration.
Next.js / React Native / Express / Supabase / Redis / OpenAI / Design system
- The person just talks: a voice note from the phone.
- One backend receives it, with auth and rate limits.
- The audio becomes text.
- An AI step decides what was asked for.
- Emails get written and sent.
- Tasks get created.
- A web app shows everything Neura did.
Delivery
- 01Idea
- 02Scope
- 03Design
- 04Build
- 05Integrate
- 06Release
Impact
15+
Screens delivered
<3
Months from idea to working app
3
Apps: web, mobile and backend
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
In Lucka and Lexio, AI writes data the app keeps: expenses from a voice note, lessons from a phrase. One schema, any provider, nothing saved unchecked.
Tauri / Rust / SQLite / whisper.cpp / llama.cpp
- The user speaks or pastes a text.
- Speech becomes text on the machine itself.
- One JSON schema tells every model exactly what to return.
- A local model can answer, with a grammar it cannot break.
- Or OpenAI, Anthropic or Gemini, with the user’s own key.
- Every answer is validated and mapped to real records in tested code.
- Only then is it saved, after the user confirms.
Flow
- 01Speak
- 02Transcribe
- 03Interpret
- 04Validate
- 05Confirm
- 06Save
Impact
4
AI providers behind one interface
1
Schema that every provider fills
0
Model answers saved without validation
APIs that serve hundreds of people at once, on SQL, NoSQL and Redis.
- Katapult Labs · Kuepa · GooDev
- Kuepa → Katapult Labs
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
APIs that answer hundreds of people at the same time: relational and non-relational data, webhooks from payment providers, and Redis in front of whatever gets slow.
AI in the loopImplementation plans, backend code and tests drafted with AI, reviewed line by line.
NestJS / Express / PostgreSQL / MySQL / MongoDB / Prisma / TypeORM / Sequelize / Mongoose / Redis
- Hundreds of people at once, each asking for their own data.
- One API answers them all, with auth, roles and rate limits in front.
- Providers like Stripe push events by webhook; each one is verified before it counts.
- Redis answers the frequent reads from memory, so the database is not asked twice.
- Writes go through an ORM: Prisma, TypeORM, Sequelize or Mongoose, or plain SQL, whichever the project calls for.
- Data with strict relations lives in Postgres or MySQL.
- Documents that change shape live in MongoDB.
Built
- 01Auth & roles
- 02REST APIs
- 03SQL
- 04NoSQL
- 05ORMs
- 06Webhooks
- 07Redis cache
- 08Jobs
Impact
100s
Of users at the same time, each reading their own data
SQL + NoSQL
Postgres, MySQL and MongoDB, chosen by what the data needs
Webhooks
Payment events, verified before anything is saved
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
First to make an edtech platform answer faster. Later, to rate-limit an API and stop card testing before a stolen card is ever charged.
Redis / Node / NestJS / Lua / Stripe
- Every payment request carries a device id.
- Each one is bucketed by device and by IP.
- Too many payment intents from one device in ten minutes: blocked on the spot.
- Otherwise, Stripe tries the card.
- Declines come back by webhook, with the card fingerprint.
- Redis counts distinct declined cards per bucket, atomically.
- Three bad cards on one device trip the breaker. A crowd on shared Wi-Fi never does.
Over the years
- 01Response cache
- 02Rate limiting
- 03Throttler storage
- 04Velocity cap
- 05Card-testing breaker
Impact
Faster
Frequent reads served from memory instead of the database
Fair use
Rate limits shared by every server, so no one can flood the API
Fraud
Stolen cards blocked before they are ever charged
Every rule checked three times before anything reaches production.
- Katapult Labs · Lucka
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
Every rule runs when the agent writes, when I commit and when CI merges. Desktop apps go further: real macOS and Windows builds are launched before each release.
AI in the loopThe same rules guard humans and agents. Neither can skip them.
GitHub Actions / Husky / Jest / Cypress / Supabase CLI / Vercel
- On write: Claude hooks block what the rules forbid and lint every edit.
- On commit: Husky and lint-staged run the same rules again.
- On merge: CI runs lint, types and unit tests.
- Every migration is applied to a fresh local database before it can ship.
- Each pull request gets its own Vercel preview.
- Cypress tests the real preview in a browser.
- Migrations roll out one environment at a time: feedback, staging, main.
Delivery
- 01Write
- 02Commit
- 03CI
- 04Migrations
- 05Preview
- 06Cypress
- 07Staging
- 08Production
Impact
Checkout
One-time and recurring payments, run end to end in a real browser on every PR
Roles
Who can see and do what, checked by unit tests on every PR
Migrations
Every database change applied to a fresh database before it ships
Smaller deploys, a smaller bill, teams that ship on their own.
- Kuepa Edutech
- Frontend
- Mobile
- Backend
- Database
- Integrations
- CI/CD
- AI
Proposed and built a Module Federation architecture for an education platform, then kept it fast: real-time updates, jobs, legacy clean-up and unit tests.
React / Module Federation / Node / Socket.io / AWS / Design system
- Students and advisors, one entry point.
- A thin shell owns routing and loads the rest.
- Remotes are fetched at runtime from AWS.
- Dashboards ship on their own.
- Leads and reports ship on their own.
- Payments ship on their own.
- A Node backend pushes live updates over Socket.io and runs the jobs.
Built
- 01Proposal
- 02Shell
- 03Remotes
- 04Real-time
- 05Jobs
- 06Unit tests
Impact
~50%
Smaller deployments
~30%
Lower AWS bill
2+
Years on the platform
- 01Katapult LabsSenior Full Stack DeveloperPayments, API and CI/CD, end to end2025 — Now
- 02NeuraTech Lead · Full Stack (part-time)An AI assistant from zero2025
- 03DevsuMobile & Frontend DeveloperOffline payments for a national wallet2024 — 25
- 04GooDevFull Stack DeveloperMySQL architecture and payment gateways2023 — 24
- 05Kuepa EdutechFull Stack DeveloperMicro-frontends, real-time and Redis2022 — 24
- 06IndependentWeb development tutorTaught web development and helped students land jobs2022 — 23
- 07AKE labFrontend DeveloperDrag-and-drop interfaces, Node and Oracle on AWS2021 — 22
- 08Editorial H&GFrontend DeveloperReact and Redux interfaces2021
- Desktop app · AILucka Personal finance that lives on your machine. Say what you spent; local AI writes it down.Tauri / Rust / SQLite / Whisper / llama.cpp
- Desktop app · AILexio English from your own readings and meetings. Swipe the phrases you want; AI writes a lesson and exercises for each.Tauri / Rust / SQLite / llama.cpp / 4 AI providers
- Open sourceMercado Pago template The Mercado Pago checkout I used at GooDev, published for other developers.Next.js / MongoDB / Mercado Pago
- Open sourceNext + Supabase template Day one of every project: auth, role guards, CI, migrations and agent rules.Next.js / Supabase / GitHub Actions
Courses I’ve taken, explained the way I understood them, with something to try for every idea.
All learning →Open to remote Full Stack and AI-augmented developer roles. I work in English every day: stand-ups, planning, code reviews and client meetings.