Experience
12+
Years shipping web and mobile products across full-stack, leadership, and automation roles.
Experience
12+
Years shipping web and mobile products across full-stack, leadership, and automation roles.
Team led
14
Largest cross-functional team I have led across product, design, frontend, and backend.
Cycle Time
-75%
Reduced release lead times by optimizing CI/CD pipelines and automating quality gates.
Community
100+
Typical attendance for ReactJS Colombia meetups, workshops, and talks.
A few of the products, companies, and communities behind the case studies. Not logos for the sake of logos, just a quick sense of the environments where the work has shipped.
Void
Technical leadership across esports web, mobile, backend, and real-time delivery at Void.
Team Liquid
Product engineering and fan-engagement systems shipped through Optic Power client work.
Rappi
AI martech dashboards and campaign workflows built during the Datagran modernization work.
Subway
Analytics and customer-data product work supported through Datagran.
X Games
High-traffic sports media platform and programmatic ad infrastructure for one of the world’s most recognized extreme sports brands.
ReactJS Colombia
Community talks, workshops, and mentorship through one of Medellin’s most active React groups.
React and TypeScript sit at the center, but the work extends across the full stack: backend services, automation pipelines, testing infrastructure, and delivery tooling.
A curated snapshot of the stack, ordered from the tools that shape products most directly to the supporting systems around them.
From headless commerce and esports to real estate and open source, these projects show how I approach architecture, automation, and delivery under real constraints.
Rebuilt Marcone's storefront into a faster, more accessible headless experience, lifting Lighthouse from 35 to 98 while giving teams room to ship independently.
Built and scaled the official X Games digital platform — a high-traffic sports media site serving millions of fans — with real-time live streaming, geo-based access control, and a programmatic ad infrastructure powered by Google Ad Manager.
Led architecture and delivery for a fast-moving esports platform across web, mobile, and backend systems, improving performance, release speed, and team velocity.
The throughline in my work is making engineering calmer: clearer priorities, fewer avoidable decisions under pressure, and better systems for the people shipping them.
What I do now
My work spans full-stack delivery, developer tooling, and automation: finding the slowest parts of a team's workflow and replacing them with repeatable systems that make shipping feel calmer and more predictable.
How I lead
I stay close to the code, set useful standards, and help teams make better technical decisions earlier.
Outside the sprint
I co-organize ReactJS Colombia, write about DX and workflows, and keep building while working remotely from Medellin.
Projects only show one part of the picture. The other part is how I share what I learn, contribute to engineering communities, and keep my own workflow sharp.
Speaking and community
I am most useful in rooms where the goal is practical clarity: developer experience, technical leadership, architecture, testing, automation, and the delivery systems that make teams feel more confident.
Uses and workflow
The exact tools shift over time, but the priorities stay the same: boring reliability, fewer context switches, and a workflow that supports both deep implementation work and hands-on leadership.
Bias
Boring reliability over shiny setup churn
Default stack
TypeScript, React, Astro, Node.js, Tailwind, Vitest, Playwright
What I optimize for
Fast feedback loops, clear standards, and fewer context switches
I write about software architecture, full-stack systems, automation, and the engineering decisions that help teams ship with confidence. Published in Towards Dev and on Medium.
Cadence
1/mo
One flagship post each month, plus one refresh to an older evergreen article so the archive keeps compounding instead of aging in place.
Refreshes
1/mo
Older evergreen pieces scheduled for refresh so the archive keeps compounding.
Series
3
Related reading tracks already live across the blog archive.
AI agents rerun checks constantly. Quiet logs, compact reporters, and parallel verification reduce token waste without lowering the quality bar.
In series: The santi020k way · Part 11
AI speeds up code changes, but ESLint, tests, snapshots, and end-to-end checks are what keep probabilistic output from turning into production risk.
In series: The santi020k way · Part 10
Why I deprecated @santi020k/eslint-config-santi020k in favor of a composable monorepo with clearer packages, better docs, and stronger DX.
In series: ESLint in Practice · Part 3
The client work is only part of the story. I also publish tooling, write publicly about delivery systems, and stay close to community rooms where the ideas get tested in the open.
Designed and shipped a VS Code theme extension with matched dark and light variants, marketplace publishing, registry automation, and a focused documentation site.
Built a DX-first ESLint toolkit for JavaScript and TypeScript teams that want stronger defaults, less setup friction, and cleaner reviews.
Co-organize one of Medellin's most active React communities, sustaining free meetups and workshops that drew 100+ participants at peak sessions.
The teams that get the most leverage from my work usually need stronger technical direction without losing delivery momentum.
Best fit when a team is shipping, but needs clearer standards, calmer releases, and stronger technical decision-making across the stack.
Useful for product teams that need leadership without losing hands-on depth.
Useful when a platform needs to get faster, more accessible, and easier to evolve without freezing delivery for months.
Strong match for rebuilds, migrations, architecture cleanup, and performance-heavy work.
A lot of the leverage comes from better linting, testing, CI/CD, documentation, and automation that reduce review noise and release stress.
Best when the team already feels the friction every week and wants a calmer default.