2026
Deploying Swagger UI for Bacen's Pix API
A pull request to the Brazilian central bank that was closed without ever being merged, and shipped anyway. Rendering an OpenAPI spec as docs, from CI.
· 2 min read
What My Thesis Assumed About Hardware
Five years on from my paper about coordinating jobs across weak devices. The hardware assumption aged badly. The reliability assumption did not age at all.
· 3 min read
Cutting Backend CI by 76%
A Django test pipeline went from a median of 18.5 minutes to 4.5. Almost none of it came from making tests faster. The last part was a connection budget.
· 6 min read
One Source of Truth for Fair-Usage Limits
A pricing policy is only as real as the number of systems that agree on it. Nine published usage bands, one table, and three codebases reading it.
· 4 min read
queryFn vs select: One Transform, Two Consumers
Transforms in select look textbook until route loaders start prefetching. Why the transform moved into queryFn so observers and loaders read the same shape.
· 3 min read
Designing URLs for a Printed QR Code
A QR code printed in a book can never be reprinted. How that constraint shaped number-keyed routes, an owned domain, and QR codes pinned to a hardcoded origin.
· 2 min read
Rebuilding my personal site
A short tour of the latest rebuild: a static-first site with no client framework, reduced motion as a real signal, and most of the work shifted to build time.
· 3 min read
Audit Scripts for a Design System
How a style guide became a suite of audit scripts behind one umbrella command, grouped by what they protect, with parallel execution and an explicit drift-resolution workflow.
· 3 min read
Test Layers for a Design System
Type tests, an API surface snapshot, story-level token-cascade guards, and property tests. Layered testing that catches the failure modes a design system actually has.
· 3 min read
Caching Sharp-Processed Images in Static Builds
How I cut documentation build times by hashing image inputs, committing the preprocessed webp outputs, and skipping image work on every CI run.
· 3 min read
2025
Replacing Astro Image for a Documentation Site
Why I removed Astro's built-in Image component from a docs site and replaced it with a thin custom wrapper, and the lesson about when generic abstractions cost more than they save.
· 3 min read
Custom markdownlint Rules for Docs Conventions
How I encoded the docs site's actual conventions into project-specific markdownlint rules so contributors stopped having to remember them.
· 3 min read
Building an OpenAPI Code Generation Pipeline with Kubb
How I automated TypeScript type and Zod schema generation from OpenAPI specs using Kubb, with scheduled CI runs and team notifications for breaking changes.
· 4 min read
Building Type-Safe APIs with OpenAPI
How the dashboard API integration layer became its own product: OpenAPI as the single source of truth across multiple consuming teams.
· 4 min read
A Practical Prefetching Strategy with TanStack Query and Router
How I implemented intent-based preloading, route-level prefetching, and pagination prefetching to make a dashboard feel instant.
· 4 min read
Encoding Pricing Rules Without Forking the UI
How I moved pricing math out of components and into the plan definition so a marketing site could absorb new products and billing models without UI changes.
· 3 min read
Mocking the API Contract Before Implementing It
How shipping the API contract first, a live endpoint serving a realistic OpenAPI payload, removed the synchronization tax between backend and frontend.
· 3 min read
Proxy Patterns for Multi-API Dashboards
How I designed a proxy layer to unify multiple APIs with different auth, error shapes, and data models behind one type-safe surface in a React dashboard.
· 3 min read
2024
Hybrid Next.js: Static Export and SSR from One Codebase
How I shipped a Next.js marketing site that builds as a static export for one host and as a server-rendered app on Vercel, without forking the codebase.
· 3 min read
Building Interactive Pricing Pages with Next.js
How I built dynamic pricing pages with range sliders, plan comparisons, and real-time calculators for a SaaS product website.
· 3 min read