UX, UI and AI · React · Next.js · TypeScript · Design Systems · Accessibility · MCP · AI Agents · LLM Evaluation 15+ years shipping production software · Remote, Brazil (UTC-3) · kelvinbiffi.com
AI made me faster. It did not make me necessary. Fifteen years of engineering did that, and it is why I can tell a model where to look instead of watching it guess.
I wrote the books on MCP, Context Engineering and AI Agents in Python. Then I shipped all three to production, which is a very different experience.
An agent does not fail loudly.
It returns something plausible. The logs look clean. Three weeks later someone finds a corrupted record.
So I stopped trusting model output and started validating it like user input: schema-constrained, value-checked, with guardrails that can refuse to answer, evaluation loops, and cost tracked per conversation instead of per call.
That layer is half of what I do. The other half is the interface on top of it, and it is the half almost everyone underbuilds.
Chat is the easy part. The hard part is every screen after it: the approval card for an action that cannot be undone, the refusal state where the model said no and that is the correct answer, the tool call you can inspect, the citation that ties a claim back to its source, the cost meter, the diff someone has to review before a record changes. Those screens decide whether a person trusts the system enough to use it. A model’s answer is worthless until someone can act on it.
| Product | What it is |
|---|---|
| Linkezera | Link-in-bio SaaS. 3,700+ users across LATAM. Built end to end. |
| Mentezinha | Child-safe conversational AI on Google Vertex AI. Built it for my son's homeschooling, now other families use it. With children as the users there is no acceptable failure rate, so the guardrail is a validation layer that can refuse to answer, not a line in a prompt. |
| StartAtende | AI-powered customer support on WhatsApp. Intent routing and cost control per conversation. |
| ViralRecast | Finds what is going viral on TikTok, Reels and YouTube, explains why a post worked and cuts the vertical clips. Web app and an MCP server with OAuth 2.1 so it runs inside Claude and ChatGPT. Postgres with pgvector for post similarity, and an atomic credit wallet that refunds failed media jobs. |
| Renderster | Video rendering as a service, and the media engine behind ViralRecast. Visual editor or JSON in, finished video out. Go API and workers on a Redis queue with retries, backoff and dead-letter, FFmpeg underneath, output on Cloudflare R2. |
| Couryo | Transactional email API built for Brazil, in beta and already sending for my other products. TypeScript end to end: Hono with zod-openapi, BullMQ workers on Redis, Postgres with Drizzle. Delivery runs on AWS SES v2 with a tenant per customer and BYODKIM. Every send takes an Idempotency-Key, so a retried request never becomes a second email. SMTP relay, an MCP server with OAuth, official SDKs for Node, Python and PHP, and 679 tests on the API. |
| SunoBoard | AI music studio. I built it to score the games I want to make, then gave it an MCP server so an agent can compose, check generation status and pull finished tracks without a human in the loop. |
| MentalKare | Accessible mental health platform, multilingual. |
| YellowKode Academy | Courses and technical books for developers. I teach the foundation that makes AI actually work. |
Games are why I built SunoBoard in the first place. Under K3 Games Studio I design, build and publish my own, and five are live on itch.io:
| Game | Genre | |
|---|---|---|
| Bubble Blaster | Puzzle, arcade | Aim, shoot, match three. Chain reactions drop whole clusters in slow motion across 24 handcrafted levels in 3 neon worlds, each with its own pixel art creatures and an original synthwave soundtrack. |
| Kaiju Siege | Strategy | The kaijus rose from the deep. Deploy five combat mechs, call orbital strikes and hold the city across four living biomes with day and night cycle and weather. Campaign with four bosses, plus an endless mode. |
| Dino Breakout | Action, arcade | The fences failed at midnight and the dinosaurs own the streets. Lead the Rescue Rangers through the city and get the civilians out. |
| Hollow Fields | Action, horror | The world did not end in fire, it rotted. You are Death's last servant, harvesting thousands of souls with auto-weapons, a manual reap sweep and a dash. |
| Gate of the Dead | Shooter, arcade | Arcade shooter. |
- Subscription, billing and lifecycle flows on Stripe, used by thousands of paying members at Firstleaf (US wine subscription)
- An enterprise login and registration gateway with Keycloak and MFA serving millions of users at Lojas Renner
- Frontend systems for DIFC, the Dubai International Financial Centre, and for 605 Media Analytics
- A Vue.js landing page builder at Pmweb that cut development effort by 70%, moving page creation out of the engineering queue and into the client's hands
- Near Companion at Hire With Near: a Chrome extension over an LLM pipeline with Recall.ai, Supabase, HubSpot, Cloudflare R2 and n8n. A bot joins the intake call as a silent participant and writes the structured job description live, during the call. I owned the whole interface, and every model output was schema-validated before it touched a CRM
Agents with tool calling · MCP servers and clients · RAG and contextual retrieval · evaluation loops · guardrails · schema-constrained output · cost control · FFmpeg · WhisperX
How I work: Claude Code daily, with a written context file in every repo so the agent inherits the project's decisions instead of rediscovering them every session.
Client work lives in private repos. What is open is everything I build under YellowKode and Wunka, both mine, plus the tooling here.
The official clients for Couryo, open source under Wunka. Each one wraps the API, retries safely with an idempotency key, and plugs into the mail layer the framework already has, so switching providers is a config change and not a rewrite.
- couryo-node - TypeScript SDK. On npm as
@couryo/node. - couryo-python - Python SDK with a Django email backend. On PyPI as
couryo. - couryo-php - PHP SDK with a Laravel mail transport. On Packagist as
couryo/couryo-php. - couryo-email-templates - Brazilian transactional email templates for React Email (Pix, boleto, password reset). Works with any provider. On npm as
@couryo/email-templates.
- ollos-mcp - eyes and ears for agents. Whisper transcription, speaker segmentation, perceptual-hash keyframing and OCR, all running locally in Node through ONNX Runtime. No Python, no cloud, no API key, so the file never leaves the machine. Same core ships as an MCP server, a CLI and a Node library. The part I care about is that it reports confidence per block and per segment and filters the lines Whisper invents over silence, because a transcript that does not say where it is unsure is worse than one that is visibly wrong. On npm as
ollos-mcp. - suno-mcp - MCP server that lets Claude, Cursor and any MCP client generate music with Suno from a plain sentence. It owns the whole generation flow, polling and retrieval, so the assistant never sits blocked on the API. On npm as
@yellowkode/suno-mcp, withsuno-mcp-coreholding the typed handlers and tool schemas so a new transport never means rewriting the tools. - yk-agent - autonomous agent that runs entirely on your machine. Browses, extracts and executes with no API key and no account, with a retrieval knowledge base built in. The interesting constraint is privacy: nothing leaves the laptop, which changes what you are allowed to do at every step.
- yk-chat - local AI chat with the same knowledge base, for people who want to use a model without handing over their data.
- squadron - an opinionated skeleton for a project run by one person and a team of agents. Ten agents, five skills, and documentation the agents actually obey. Not a framework, a starting point you adapt.
- Guide-Book - design system and style guide generator that reads your CSS, SCSS, LESS or Stylus and produces the categories, elements and modules of your design system. On npm as
guide-book-generator. - javascript-book - every code example from JavaScript: Básico ao Avançado.
- Book source, all public: MCP na Prática com Python, Agentes de IA com Python and Multiagente com Python. I wrote the books, then shipped the same patterns to production, which is a very different experience.
- Bubble-Shooter and GUI_Unity3D_Style_Guide_Base - a JS game and a Unity3D GUI style guide. Games are the reason I built SunoBoard (the published ones are above), and a design system is a design system whether it renders in a browser or in Unity.
- Criando e aplicando um Style Guide do zero - full source for my design systems course.
Almost thirty published books. Four of them are the exact stack I work in.
AI engineering
| Book | |
|---|---|
| MCP na Prática com Python | Amazon |
| Context Engineering: O Guia Definitivo para LLMs | Amazon |
| Agentes de IA com Python | Amazon |
| Spec Driven Development na Prática | Amazon |
Everything else I have written (languages, fundamentals, and a cosmic horror series)
Dev na Prática series
- JavaScript na Prática
- Go na Prática
- TDD na Prática com Python
- TypeScript na Prática
- SQL na Prática com PostgreSQL
Technical, standalone
- JavaScript: Básico ao Avançado
- Lógica de Programação na Prática
- Guia do Programador Moderno
- Algoritmo para Leigos
Fiction: Arquivo Morto, a cosmic horror series
- O Andar que Não Existe · A Geometria do Arquiteto · O Corredor Sem Fim · A Escada do Consolação · O Arquivo Submerso · A Janela Fechada de Dentro · O Jardim Sem Saída
Other
Remote, Brazil (UTC-3), so most of a US or European day is my day too.
kelvinbiffi.developer@gmail.com · LinkedIn · kelvinbiffi.com










