Last time my family was replaced by technology

#697 – October 04, 2026

farrier who became a mechanic when cars arrived reframes today's fears

Last time my family was replaced by technology
2 minutes by Manuel Darcemont

Manuel shares a family story about a French farrier who became a mechanic when cars arrived reframes today's fears about AI replacing developers. Past generations faced the same dread when tractors and engines upended their trades. What carried them through was holding onto their purpose rather than their tools. If what drives you is building things and solving problems, that purpose can survive a change in how you do it.

100+ Search Engines. One Simple API.
sponsored by SerpApi

Build with real-time search data from Google, YouTube, Amazon, and more. SerpApi delivers structured results in JSON and Markdown for AI agents and your next app. Skip scraping headaches. Start building with a simple API.

Making your own dithered QR codes
5 minutes by Andrew Taylor

QR codes store data in a grid of squares, where some squares help scanners locate the code and others store the actual data. By shrinking the data squares and filling the space with image pixels, you can embed a photo into a QR code. Error diffusion dithering improves image quality and hides noise caused by data squares. Prettier codes scan less reliably though, so consider where and how the code will be used.

Railway-oriented programming
22 minutes by Sunhyoup Lee

Errors and side effects are unavoidable in software, but there are structured ways to handle them. Two common approaches are checking conditions before acting or catching exceptions after the fact. Railway-Oriented Programming takes a different route, using functional concepts like functors and monads to split every function into a success or failure path, keeping program flow linear and predictable. It works well in many environments but is not a universal solution, and applying it everywhere can reduce readability.

Monolith first
5 minutes by Martin Fowler

Starting with microservices on a new project often leads to trouble, while successful cases usually began as monoliths first. Building a monolith early helps teams move fast, get user feedback, and find the right service boundaries before committing to a more complex structure. Once the system matures, teams can gradually split off services. Avoid microservices at the start unless your team already has solid experience with them.

What good is a best-effort exclusive lock, anyway?
6 minutes by Philippe Gaultier

CockroachDB supports SELECT ... FOR UPDATE but treats it as best-effort under its default SERIALIZABLE isolation. Unlike Postgres, it does not guarantee exclusive row locking. Instead, it uses fast in-memory locks to reduce contention by making competing transactions wait their turn. Correctness still comes from SERIALIZABLE itself, which ensures only one conflicting transaction commits while others retry.

And the most popular article from the last issue was:

newsletters