Learning from Terminals to Design the Future of User Interfaces
How we overvalue the wrong technology and novel aspects of interface design at the expense of substantial gains to our productivity.
I'm Brandur. This site is where I publish words and photos. The section updated most often is atoms , short multimedia particles reminiscent of a Twitter feed. I update my now page monthly according to what I'm working on and thinking about. I publish a newsletter as often as I can.
Visit brandur.org → RSS feedOn Hacker News May 2017 – Aug 2026
Software Engineering 27Databases & Data 20Tech Industry & Business 7Systems & Performance 6Career & Management 4Web & Frontend 3
How we overvalue the wrong technology and novel aspects of interface design at the expense of substantial gains to our productivity.
The traditional soft deletion pattern using <code>deleted_at</code> columns leaks into code, curbs the usefulness of foreign keys, and makes data removal difficult. Luckily, there’s an alternative.
Practicing minimalism with the lofty goal of total ephemeralization to build coherent, stable, and operable stacks.
A dive into the mechanics that allow Postgres to provide strong atomic guarantees despite the chaotic entropy of production.
Introducing River, a Postgres-based job queue designed for resilience and correctness through strong transactional guarantees.
A detailed look at the frameworks, concurrency model, error handling, middleware constructs, and testing strategies of a web service written in Rust.
Touring the ORM and Postgres landscape in Go, and why sqlc is today’s top pick.
How to format blog content so it’ll last.
A few thoughts on Rust after a few months of regular use.
An alternate to traditional <code>deleted_at</code> soft deletion that stays out of the way and minimizes bugs.
Words from Mark Zuckerberg on management and remote work.
Hitting the limit for maximum allowed connections is a common operational problem in Postgres. Here we look at a few techniques for managing connections and making efficient use of those that are available.
Building a log-based architecture that’s fast, efficient, and resilient on the new stream data structure in Redis.
How Postgres’ v7 UUIDs are made monotonic, and why that’s a great feature.
Life with Postgres only.
Scaling out operation with read replicas and avoiding the downside of stale reads by observing replication progress.
How a seemingly minor enhancement in Postgres 11 fills one of the system’s biggest operational holes.
LLMs made software cheaper to build, but not free. A look at the new buy-vs-build math of the LLM age, and the pricing zone where small software businesses can still survive.
Flattening a single very hot vertical Redis node into a horizontal Redis Cluster at Stripe.
Why it makes sense to model APIs as graphs, and what GraphQL can do for us to help with discovery, batch operations, and gradual enhancement.
Why Go’s stability and simple deployments is a good fit for a serverless environment.
Maximizing Postgres connection economy by using a single connection per program to receive and distribute all listen/notify notifications.
On how software that survives first encounter with production tends to live longer than we think it should.
Building resilient services by identifying foreign state mutations and grouping local changes into restartable atomic phases so that every request can be driven to completion.
It’s been a rough month for Heroku. On April 15th, they opened a security notice that’s been active ever since – the status page, designed for incidents measured in hours rather than days or weeks, dutifully reads off a duration of “478 hours, 9 minutes” 1 .
Almost every notable managed Postgres provider bundles a connection pooler, giving us a strong hint that connection management is a product problem rather than a user problem.
Some of my favorite practices and ideas from almost four years at Heroku.
Safely refactoring Ruby traditionally involves many incremental steps and feature flags. Sorbet and 100% branch coverage make it possible to refactor a lot of code safely.
On looking for alternatives to Slack culture.
~4 lines of Go to produce succinct, stable, URL-friendly slugs from timestamps.