Category: Programming

  • git merge

    A deep dive into git’s 3-way merge algorithm.

  • The git database

    How git stores and works with data.

  • Review this for me

    Follow-up to “refactor this for me”. Can a LLM provide expert-level code reviews?

  • Refactor this for me

    I asked an LLM to do a code refactor for me.

  • My first side quest in Gutenberg

    How docgen, the tool used in Gutenberg for auto-generating JavaScript API docs, came to be.

  • On JavaScript modules

    A brief history of JavaScript modularity and why ESModules are the future. Includes a technique to make CommonJS modules work in browsers.

  • JavaScript in use 2011-2017

    According to the HTTP Archive, the top 1.000 websites download 5 times more JavaScript today than seven years ago – HTML grew 2x and CSS 3x. Combining that with the fact that the mobile web is more present than ever, the result is that the main bottleneck for the websites we create and consume is the CPU.

  • Input lag: 1977-2017

    Input lag: 1977-2017 is an essay about the time it takes several computers to display a character from a keypress. A lot of newer computers take 3 to 5 times more than 30 to 40 years old computers.

  • Google Maps’ Moat

    Google Maps’ Moat, by Justin O’Beirne. On the competitive advantage that Google Maps has over Apple Maps – equally interesting for map nerds and business people.

  • Agile according to Basecamp

    Running in Circles is Basecamp’s view of agile product management. They acknowledge the value of working in cycles, but add three pieces: having the time to focus, being able to modify the original plan, and tackle the core unknowns of the feature first. The first two are enablers that are provided to the makers by management.…

  • Ten years of mobile

    10 years of mobile by Luke Wroblewski packs a lot of knowledge in one hour and a half. If I could only watch one talk about mobile, I’d make it this.

  • Software architecture failing

    Software architecture failing: tech writing is biased towards what the big ones do, which usually doesn’t fit most other contexts – but, who got fired for choosing IBM, right? Although I feel connected to this rant at an emotional level, I do think it’s necessary to elaborate more and make a positive contribution: help to…

  • Zakas on career advice

    The best career advice I’ve received, by Nicholas Zakas.

  • Born for it

    Born for it, on how the image of software developers came about.

  • Code and decision trees

    An example on how changing the language for thinking may help us to simplify our programs.

  • The Google repository

    I’ve been reading how Google organizes its codebase: they maintain a hyper-large repository containing everything, since the beginning of the company. I guess you may find Gmail, Photos, or AdWords there. You won’t find Android or Chrome, though – these are open source projects. The repository is 86Tb of data, 1 billion of files, and 35 billion…

  • How comparing things is faster and simpler with immutability

    The third post of the series about the differences between values and references is focused on a practical example, the same trick that is at the core of React and Redux performance.

  • How equality and copy operations work

    This is the second post of a series about how fundamental operations work depending on the nature of data they work with. JavaScript is used as example.

  • Value and reference data types

    The introductory post of a series about how fundamental operations behave depending on the nature of the data they work with. JavaScript will be used as an example.

  • A week of FP and JS

    Just this week, two of my colleagues at Automattic have written about Functional Programming concepts. Check Grzegorz’s A journey to Functional JavaScript and Miguel’s Functors and monads: an introduction.

  • sum-csv

    Reflections on a little thing I made, to learn how to better create the bigger ones.