Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,543 posts.
Overhead of Returning Optional Values in Java and Rust (2021)
Some programming languages like Java or Scala offer more than one way to express a concept of “lack of value”. Traditionally, a special null value is used to...
On Comments in Code
I used to think that I didn’t need comments if I wrote self-documenting code. However, I have realized that I do write comments, and that I find them really useful. To see how many comments I…
Stop Validating Email Addresses with Regex (2012)
Just stop, y’all. It’s a waste of your time and your effort. Put down your Google search for an email regular expression, take a step back, and breathe.
Little languages are the future of programming
Little languages; what they are, why they matter and how they will shape the future of programming.
Removing garbage collection from the Rust language (2013)
I've been floating ways to simplify the memory management story in Rust around the core team lately. Memory management is a contentious topic, since we've worked hard to get to the current state of things, and with the push toward stability lately, there is a (quite reasonable!) resistance to any changes at this…
I was a 10x engineer and I’m sorry
You probably saw the big discussion this past weekend on Twitter about 10x Engineers. It all started with a tweet about how to recognize a 10x Engineer, followed by tons of responses about how usel…
Looking at Unity made me understand the point of C++ coroutines
I had seen many talks about coroutines but it never really clicked where I could use them outisde of async IO. Until I looked at how Unity uses them in C#.
A Guide to Naming Variables
Names Considered Useful Software is written for people to understand; variable names should be chosen accordingly. People ...
Real-world CSS vs. CSS-in-JS performance comparison
I took the real app and convert it from Styled Components to Linaria to compare the app performance of CSS-in-JS and normal CSS. Continue reading if you want to know how it went.
Formal methods: Just good engineering practice?
Earlier this week, I did the keynote at TLA+ conf 2024 ( watch the video or check out the slides ). My message in the keynote was something I have believed to be true for a long time: formal methods are an important part of good software engineering practice. If you’re a software engineer, especially one working on…
What even is a JSON number?
An exploration of numbers in JSON and various JSON implementations
Dotfiles feel too personal to share
I love dotfiles and I love sharing. But I have this weird feeling that sharing my dotfiles is too intimate and personal.
Encoding Data in Dubstep Drops
[Warning: Those who can’t stand EDM/dubstep, oh boy do I have bad news for you in regards to this blog post]
Why Companies Don't Fix Bugs
A few years ago, a lone programmer named t0st did something extraordinary: he fixed an 8-year-old bug in GTA Online that had been driving players crazy. The bug? Painfully long load times, sometimes u
Making Sense of the Audio Stack on Unix
Audio on Unix is a little zoo, there are so many acronyms for projects and APIs that it's easy to get lost. Let's tackle that issue! Most articles are confusing because they either use audio technical jargon, or because they barely scratch the surface and leave people clueless. A little knowledge can be dangerous.
A surprising JavaScript memory leak found at Meteor
This week, my teammates at Meteor tracked down a surprising JavaScript memory leak . I searched the web for variations on javascript closure memory leak and came up with nothing relevant, so maybe this is a relatively unknown issue. (Most of what you find for that query talks about the bad garbage collection algorithm…
Getting into robotics as a software engineer
Most of my career has been working on web services and mobile apps but at some point this got old for me—in high school I was part of a soldering club and I had this lingering feeling that I wanted to get into ‘harder’ problems. Two years ago I started looking around for companies in Amsterdam and came across…
PHP 5.3.3 hangs on numeric value 2.2250738585072011e-308
I stumbled upon a very strange bug in PHP; this statement sends it into an infinite loop:
Seemingly Impossible Swift Programs
We will construct Swift programs that should be impossible to implement, yet somehow are not!
Agentic coding notes
I've been using AI fairly heavily since last November and the whole thing is a funny experience . An agent will do something that, if a human did it, you'd immediately fire them. My reaction, of course, is to act as if this is great and spin up a thousand agents so they can do even more of that.
Continuous Deployment
Last winter John Allspaw joined Etsy to run tech ops. John has written several important books on web ops and is one of the experts in operating large scale web services. One of the first things John did when he arrived at Etsy is work with the dev and ops teams to put in place […]
Ways to shoot yourself in the foot with Redis
Personal website of Phil Booth
Deprecating Raw Pointers in C++20
The C++ Standard moves at a fast pace. Probably, not all developers caught up with C++11/14 yet and recently we got C++17. Now it’ time to prepare C++20! A few weeks ago The C++ Committee had an official ISO meeting in Jacksonville, FL (12-17 March 2018) where they worked hard on the new specification.