Yesterday
- In November of 2024 I wrote a blog post titled "Is Python Really That Slow?", in which I tested several versions of Python and noted the steady progress the language has been making in terms of performance. Today is the 8th of October 2025, just a day after the official release...
This week
- Parquet is excellent for analytical workloads. Columnar layout, aggressive compression, predicate pushdown, but deletes require rewriting entire files. Systems like Apache Iceberg and Delta Lake solve this by adding metadata layers that track delete files separately from data...
- PostgreSQL handles large JSON payloads reasonably well until you start updating or deleting them frequently. Once payloads cross the 8 KB TOAST threshold and churn becomes high, autovacuum can dominate your I/O budget and cause other issues. I have been exploring the idea of...
Last week
- Andrew Kelley famously (or infamously, depending on your views) said "the compiler is too damn slow, that's why we have bugs."1
- Every time I look at someone’s simple static site generation setup for their blog, I feel a pang of envy. I’m sure I could make a decent blogging engine in 2,000 lines of code, and it would be something I’d understand, be proud over, able to extend, and willing to share with...
- Concurrent-safe operations without explicit synchronization....
- What’s the best way to get started building AI agent systems? There are countless frameworks for building AI agents available, such as CrewAI, LangGraph, and the OpenAI Agents SDK, and it can be overwhelming to choose one. On the other hand, Anthropic recommended starting with...
Two weeks ago
- Service templates are a typical building block in the “golden paths” organisations build for their engineering teams, to make it easy to do the right thing. The templates are supposed to be the role models for all the services in the organisation, always representing the most up...
- With version 1.0 released after 2010....
- Allow the new built-in to be called on expressions....
- Stay updated on changes coming in future Go releases....
- Exploring unconventional ways to handle concurrency....
- Agents need tools they understand, like simple keyword search. They can reason about these tools, evaluate the results, refine, and iterate to deliver rather interesting results. But maybe with some caveats....
About a month ago
- Seven Years of Firecracker Time flies like an arrow. Fruit flies like a banana. Back at re:Invent 2018, we shared Firecracker with the world. Firecracker is open source software that makes it easy to create and manage small virtual machines. At the time, we talked about...
- In a world dominated by modern programming languages, C remains a powerful choice for low-level system programming and efficiency. Here's why I still choose C for certain projects....
- Having recently read the article “Why are Event Driven Systems Hard?”, and having worked on several event driven systems myself, I began to wonder why people so often frame these systems as inherently difficult. It’s true that event driven and distributed systems can be hard to...
- I normally skip presentations because I prefer reading, but Building the Hundred-Year Web Service (YouTube) was worth the time.1 Note that despite “htmx” featuring in the title, very little of the presentation is actually about htmx. It is about choosing and using technology in...
- Part of my role at Mozilla is making sure we're focusing on the right features, and we got onto the topic of fetch upload streams. It's something Chrome has supported for a while, but it isn't yet supported in either Firefox or Safari. I asked folks on various social platforms...
about 1 month ago
- I had a (maybe slightly overqualified) computer science teacher back in highschool, Mr. Paige. He worked on the Ada compiler and has been programming since the early 80s. One day I complained about linter tooling that was driving me nuts. I said something to the effect of, "it's...
Rows per page