TOPIC COLLECTION

Build Notes

6 posts

Problems met while building something, and how they were worked out. The focus is the structure chosen, the approaches that failed, and what to watch once it is running, rather than the finished result.

What this subject covers

01

Where the build stalled

Rather than the finished feature, what did not work before it and why that structure was chosen. The starting point is a problem actually hit: connection failures in a browser-only video call, a double booking when two people press the same seat, the order in which an error code narrows down which log to open.

02

The options not taken

Writing down only the chosen approach leaves no way to tell why it is better. So the approaches considered and dropped, the reason for dropping them, and what the current structure cannot handle are written down too.

03

What running it revealed

The things that only become visible after deployment go last: the load as participants grow, differences in browser support, and what to look at first when something fails.

How to read these

  • The problem and the conclusion come first. You can tell what a post is about without reading the background to the end.
  • Observed values, calculated estimates, and simplified simulations are marked as different things rather than mixed together.
  • Most posts have a demo you can press, and the demo carries its own notes on how to operate it and where it stops.

Posts

1–6 of 6

Running It on One Laptop

The server that changed Wi-Fi access point every 37 seconds

The 2012 laptop running this blog was dying several times a day. The cause was a wireless firmware fault, and what I fixed was not the firmware but the roaming.

2026.08.318 min
Problems Met in ProductionDemo

Selects, merges, sorts: request matching in nginx, Apache, and Caddy

Feed one request path to three web servers and each lands on a different configuration block. Follow the rules from each server's own documentation, elimination included.

2026.08.056 min
Problems Met in ProductionDemo

The distress signal a server sends: 502, 504, 500

A server error code tells you not what broke but how far it got before failing. Why searching the app log on a 502 finds nothing, and the one command that halves the places to check.

2026.07.256 min
Problems Met in ProductionDemo

Press the last seat at the same time and both bookings succeed

Without locking, one seat sells twice. Walking through how transactions and pessimistic and optimistic locking let exactly one person succeed.

2026.07.246 min
Tools I BuiltDemo

A lightweight video call for a handful of people

Building a small video meeting on WebRTC, WebSocket, and STUN that people join by link, and explaining the participant and network limits of a peer-to-peer design along with where the privacy boundary sits.

2026.07.106 min
Build Notes

What changed when the blog UI went pixel

Turning cards, buttons, and a mascot pixel-styled through shared CSS rules, while keeping a 390px screen, keyboard focus, and reduced motion comfortable to read.

2026.06.276 min