GOIÂNIA, BRAZIL · UTC-3 · OPEN TO WORK
I build the software a business opens every morning.
Three years as a full-time QA before I moved to writing product. Today I'm one of two developers on a payments platform: the API's data models and migrations, and the merchant dashboard.
SELECTED WORK
A few things I built recently.
Click any of them and the device grows until the screen fills the window — the system runs right here, no sign-up. Some of these run a real business and are rebuilt with a generic brand; most are mine alone. Each one says which is which.
Casamento Completo
Multi-tenant wedding SaaS — RSVPs, gift registry with PIX, automated emails, customizable public site.
- Next.js 16
- React 19
- Prisma
- PostgreSQL
- NextAuth
School Admin Dashboard
A real school-management system — 16 months, 419 commits: enrollment that fills the contract PDF in the browser, e-signature, web push, a drag-and-drop schedule. Shown here with a generic brand.
- React
- TypeScript
- PostgreSQL
- Drizzle ORM
- pdf-lib
Clinic Scheduling & Records
Medical agenda, patient records and billing in one panel — appointments by professional and specialty, real-time status, and the patient chart one click away.
- Single HTML file
- Tailwind (CDN)
- Chart.js
- Vanilla JS
- No build step
Local Lead Prospecting Panel
Find the business on the map, qualify it, and reach the owner with the proposal already written — pipeline, import and follow-up in one panel.
- Single HTML file
- Vanilla JS
- Hand-written CSS
- No build step
Event Site & Guest Panel
The couple edits their own site — guests, gift registry, message wall and a countdown, without asking anyone for help.
- Single HTML file
- Vanilla JS
- Hand-written CSS
- No build step
Everything else that opens
All self-initiated, unless the line says otherwise. Same rule as the five above: no login, and each says on screen when the data is invented.
- PulseWhat the product did this week, without exporting a spreadsheet.
- NorteBalance, card and instant transfer on one screen.
- KlinikaThe day's schedule and the chart open, without switching tabs.
- RotaThe fleet on the map and the whole trip one click away.
- AulaThe lesson, the material and what has been watched, in one place.
- SinoThree things done well, instead of twenty half-finished.Read the full story
- CadenceThe page sells before there is a salesperson in the conversation.Read the full story
- NavalhaPrice, hours and booking without going through DMs.Read the full story
- BalcãoThe house's own delivery, without handing 27% to the app.
- SerenoThe stargazing night booked without exchanging a message.
- BasaltoForty-three years of rock explain the price of the bottle.
- CompassoThe price of each test, and when the guideline says not to do it.
- VertenteThe survey of your roof before the quote.
- AlcanceThe price of surgery, the road to recovery, and what the clinic does not do.Read the full story
TOOLS
Modern stack, boring choices.
I use the tools that production teams trust — fast, well-supported, easy to hire for. No experimental frameworks just to look clever.
- TypeScript
- NestJS
- TypeORM
- Next.js
- React
- Node
- PostgreSQL
- Prisma
- Tailwind
- Framer Motion
- Hono
- Resend
- Cloudflare
- Bun
- Redis
- Docker
- AWS S3
- Cypress
- Playwright
- Vitest
- Claude
- Mercado Pago
ABOUT
Gabriel Teles. Full-stack, Goiânia.
I have been in computing since 2016, when I took a technical course in computing alongside secondary school at Instituto Federal Goiano, and then Computer Science at UFG. The first paid work came in 2021, as a QA at Jera — a studio that has shipped 300+ apps and is the official supplier for Rock in Rio. The festival apps went through me: Rock in Rio, Rock in Rio Lisboa, Lollapalooza Brasil, The Town. Testing before launch is one job; being on call while the app is live and hundreds of thousands of people are using it at an event that cannot be postponed is another. Three years of that, full time and remote, before I moved to writing product.
The 2025 Lollapalooza app closed its cycle at 99.79% stability on Android across 23 releases, with 80,000 people depending on it per day — Jera published those numbers. That result belongs to a team, not to me. What is mine is the habit it left: I read a diff asking what breaks in production, not whether it compiles.
Today I'm one of two developers on a payments platform — three people in all. My part is the merchant dashboard and the API's data models and migrations — webhooks that arrive twice, syncs that have to be safe to run again after they die halfway — plus a browser extension where 82% of the commits are mine. That code is under NDA, so what this site shows is work I own end to end, plus demos I built myself and label as such.
Most of my code starts in Claude Code or Cursor now. What I don't do is merge what I can't explain line by line.

- In computing since2016 · 10y
- Based inBrazil · UTC-3
- Remote since2022 · in a team
- StatusOpen to work
CONTACT
Hiring, or need a hand on something?
Email is the fastest way to reach me — I answer every one. If you'd rather see code before talking, I can give you read access to a private repo.
gabriel_teles2010@hotmail.com