I'm an infrastructure and platform engineer in Valencia, Spain. I keep production systems running: Kubernetes on AWS, the pipelines that deploy to them, the observability that says when they're unhappy, and the bill at the end of the month.

I've been writing software since 2008 and doing infrastructure for most of the last decade. These days I work as a fractional platform engineer, contracting for US companies in financial services. Before that I spent nearly six years at Wellfound, a US company, where two of us owned reliability, scalability and delivery for a product serving 3M+ monthly visitors and 20+ product engineers.

The part I care about isn't the infrastructure itself — it's making it usable by the engineers who depend on it. Most of my best work has been internal tooling treated as a product: requirements gathered from the people who'll actually use it, then documented and driven to adoption through guides, screencasts and workshops.

What I work on

  • Production Kubernetes and AWS. Operated and upgraded three production EKS clusters without downtime, with everything underneath managed in Terraform or Pulumi.
  • Reliability and incident response. On-call rotations, runbooks, postmortems — and the unglamorous follow-up work that stops the same incident happening twice.
  • Delivery. GitOps with ArgoCD, canary deployments, and CI that finishes before you've lost your train of thought.
  • Cloud cost. Which, more often than not, turns out to be the same work as performance.
  • Developer tooling, built as a product. Shipped because someone needed it, documented well enough to adopt without me in the room.
  • AI-assisted infrastructure work. Currently: agent-ready development environments, tight feedback loops, and automating recurring operational toil.

Selected work

  • A GraphQL gateway that became core infrastructure. Designed and built a new API gateway in Scala at New Work SE, learning Scala and GraphQL on the job. Adopted across multiple product teams — 100+ engineers — while the legacy Rails REST gateway kept serving 10k+ req/s so teams could migrate at their own pace.
  • Rollback measured in seconds instead of hours. The data team's Dagster pipeline rebuilt a ~1TB Elasticsearch index over several hours, and a bad run meant a 4h+ snapshot restore. Cloning the index up front and repointing the alias on failure took recovery down to seconds — so the team could ship changes without risking a corrupted production index.
  • A third of the database bill, traced to a handful of query patterns. Composite indexes and aggregate rewrites took the worst case from four hours to twenty seconds.
  • Incidents from monthly to a few a year. Caching strategy, read/write splitting and resource tuning, backed by runbooks and postmortems that made the next one shorter.
  • Coding agents with a smaller blast radius. A devcontainer-based environment that lets AI agents run autonomously against the platform, with tight feedback loops and documentation written for them. Now part of day-to-day delivery.

More detail on the CV, and some background on the about page.

Writing

Nothing here yet — I'm starting again, and this time in shorter pieces. Mostly notes from infrastructure work: what broke, what it cost, and what I'd do differently. RSS if you'd like them as they land.

There's also an archive of older posts from a previous, more mobile-shaped career.

Published elsewhere

Elsewhere