Migrating bizee.com to a new stack with zero downtime
Two architectures, about 4,000 redirects and a multi-layer cache moved bizee.com from Next.js and Payload to Laravel and Statamic. Organic LCP fell 52%.
1,100+ pages
1,100+
pages migrated with zero downtime
1 component
replaced two legacy jQuery payment stacks
−52% LCP
on organic pages, 2.1 s to 1.0 s
−85%
website server errors
Two architectures, about 4,000 redirects and a multi-layer cache moved bizee.com from Next.js and Payload to Laravel and Statamic. Organic LCP fell 52%.
1,100+ pages
A Vue component behind an event-based adapter replaced two legacy jQuery payment stacks across four call sites: saved cards, Apple Pay and PayPal through Adyen.
2,300 lines retired
A Kibana dashboard, daily health checks and deploy gates with automatic rollback. Server errors fell about 85%; release-induced JavaScript errors went from 339 a day to zero.
33 panels
I write the spec and the architecture for each project, then hand it to one engineer to drive. We keep the technical discussion going during the build so each of them grows into the next level. Before I touch an incoming issue I ask who on the team can own it. Priorities come from product. Technical decisions are mine.
The team works against a competency rubric I adapted for them: ten dimensions (system thinking, craftsmanship, product sense, ambiguity, drive, extreme ownership, operational excellence, communication, continuous learning, judgment with AI) at four levels. "Meets" is the goal: a solid, autonomous engineer. "High" is reserved for people who raise the team. Every rating needs a concrete example from the last six months. Each review ends in one action. We focus on two or three dimensions per person per cycle. The rubric exists so people improve.
Everyone on the team builds with AI, so what I measure is the judgment applied to what the AI produces. You own what you ship whether you typed it or an agent did. For more than a year most of the features I shipped were written by Claude Code sessions I directed and reviewed, several in parallel. I built the team's agent harness in Claude Code: hand it a ticket and it plans, implements, deploys and runs the post-release check in production. The guardrails around them: code review, deploy gates with automatic rollback, a daily production health check.
Anything odd in the metrics goes to the public channel within 30 minutes, raw. False alarms are welcome. A P1 means everyone investigates on their own and brings hypotheses with data. Post-mortems are blameless: they name the process that fell short, then fix it. Most of these mechanisms came out of a team retrospective; the team proposed them. A daily monitoring rotation covers the gap while the automated alerts get built.
We brought A/B testing in-house on the website and the order funnel. Two pricing tests that cut conversion were rolled back under decision thresholds agreed before launch. Experiments save a baseline before they start. Anyone on the team should be able to explain our metrics in terms of business impact.
When someone has a gap I set the expectation clearly, give them the tools, then step back. The bulk of the change is theirs. I coach by asking why a decision was made before pointing at the mistake. Estimates belong to the engineer. I keep my own gut estimate. When the two differ, that gap is where the coaching happens. Milestone updates come from the team in the public channel, so stakeholders hear from the people doing the work. The goal is a team where anyone works, communicates and drives independently.
I'm a lead full-stack software engineer with 15+ years building web products, the last ten for U.S. companies. I'm strongest in PHP/Laravel, Vue, React, TypeScript and Node. I go deep on payments, web performance and observability.
Most recently I led the six-engineer growth engineering team at Bizee while shipping features myself. I also served on the three-engineer architecture council that reviewed and improved the technical design of engineering initiatives. I still ship: notaclin.mx is a clinical SaaS I built and run solo, with Stripe in production.
I've worked remotely with U.S. teams since 2016. I work U.S. hours from Guadalajara, Mexico.
Bizee (formerly Incfile)
Growth Tech Lead
Led the six engineers who owned bizee.com and the order funnel. Shipped features myself across frontend, backend and data. Member of the three-engineer architecture council.
Bizee
Senior Software Engineer and Tech Lead, Platform
Built the Vue payments component shared by the order funnel and the customer dashboard: saved cards, Apple Pay and PayPal through Adyen. Led the customer dashboard's migration from jQuery to Vue.js. Set up Cypress end-to-end testing for the order funnel.
Wizeline
Senior Software Engineer
Consulted for Dow Jones (WSJ, Barron's, MarketWatch), Fox and The Australian. Led the frontend sub-team that re-architected Fox Business and Fox News in React and Node.
Earlier roles
Co-Founder, Solnet México (2008 – 2015)
Co-founded and ran a custom software studio for 7 years. Also Software Engineer at the Supreme Court of Justice of Jalisco and Freelance Software Engineer at Digital Daemons.
Clinical notes and e-prescription SaaS for medical practices in Mexico, built and operated solo. Laravel, Vue, Inertia and PostgreSQL with Stripe in production.
Bilingual comparison site for non-residents opening a U.S. LLC, built solo with Claude Code subagents and a reviewer per task. A quoted price without a verified source blocks the deploy.