I lay
the foundations
other engineers build on.
Computer enthusiast, doctor and engineer. Former vice-dean of COEINF, the professional college of computer engineers of Catalonia. I write every Saturday and I have not missed one since 2022.
The book
The Emotional and Technical Guide to Rescue Stalled Software (2024) is about conquering technical debt without sacrificing your sanity or your shipping schedule. Its rule fits on one line: never rewrite, never stop delivery. About the book.
Essays
> More than half a million views.
More than 250 of them on Medium, one every Saturday since 2022. The most read one, and the ones read longest, argue with the canon:
- The JavaScript framework war is over
- Software Development Is A Beautiful Mess
- Scrum vs Extreme Programming: Was XP Right All Along?
- Confirmed: Code Coverage Is a Useless Management Metric
- The Craziest Piece of Software I've Ever Seen
- What Are Micro-Frontends Really For?
Twenty of them, with a line on each.
Two public APIs of AngularJS are mine
I made its compiler faster.
Two performance changes in the AngularJS compiler are mine. They shipped in 2016 and were never taken out: six years of releases later they are still in 1.8.3, the last one the framework had. So is my implementation of $componentController, the helper its testing module gives you to unit-test a component. So are two benchmark suites I wrote when maintainers asked for numbers they could check — one of which measured the ngClass rewrite built on my work at more than a hundred times faster on the case that mattered. None of it is documentation. The whole account.
The world at the top
The mark in the header is not a picture. It is a planet, grown the moment this page opened, by the pipeline of a program I wrote before the year 2000 for a university graphics course: Mons fractals, Java 1.1.8 on MS-DOS, writing worlds out as VRML.
It is a pipeline of filters, and the order is part of the meaning. Start from an icosahedron. Split every edge and push each new midpoint out or in by a fraction of the edge it came from, so the first rounds carve continents and the last ones only roughen a slope. Put in the sea as a minimum radius: everything below it is raised up to it, which is why a coastline reads as a coastline and not as a change of colour. Work out the climate from height above the sea and from latitude, so that a summit is white wherever it stands, the way the Himalaya is. Only then paint it. Paint first and you get a ball of one colour.
Reload, and it is a different world. The same pipeline runs here, rewritten in TypeScript with nothing underneath it, and you can turn the dials yourself.