Engineering Practice
Local-first privacy architecture, OCR accuracy, watermarking and identifier design — hands-on engineering notes.
Articles in this topic
Wrong branch, deleted branch, overwritten work? Recovery through reflog, everyday commands, and three rules for teams.
Watermarks do more than stop reposting: attribution, tracing and branding. Choosing a style and cleaning privacy data before upload.
Reusable recipes for emails, phone numbers and log dedup — plus greedy vs lazy, groups, lookaround, catastrophic backtracking, and when not to use regex.
Poor accuracy is rarely the engine alone: resolution, skew, contrast and language packs all matter. A checklist you can apply today.
A UUID is not just a random string. v1, v4 and v7 differ in time semantics, information leakage and index performance.
Uploading a file to a server and computing it in your browser have very different security boundaries. Comparing both architectures.
Why piles of UI end-to-end tests are slow and flaky. The unit / integration / e2e ratio and where to spend effort.
An image is read-only, a container is a running instance. Layers, size optimization, and why data belongs in volumes.
You cannot fix what you cannot see. The distinct roles of logs, metrics and traces, and how to pinpoint failures fast.
Some patterns explode exponentially on certain input. Why nested quantifiers are dangerous, how to spot and avoid them, plus a timeout fallback.
Backup is not the goal; recovery is. The 3-2-1 rule, RPO/RTO, verification and restore drills, plus the most common failures.
When does a change deserve a MAJOR bump? What is the difference between ^ and ~? Version semantics, the 0.x rules, and four dependency traps.
Why set -euo pipefail is standard, how $var differs from "$var", and the four places scripts most often break.
Why ed25519? How to write a useful ~/.ssh/config? Key deployment, host aliases, and four common pitfalls.
What do 755, 644 and 600 mean? Why is the execute bit special on directories? Three identity groups, octal notation, and five frequent mistakes.
CPU-bound or IO-bound? Need isolation? Compare four concurrency models across key dimensions, with a selection order and common traps.
Do not push the new version to everyone at once. Canary by percentage, blue-green instant switch, and how to roll back fast.
Without an index the database scans the whole table. B+tree indexes, the return-to-table step, leftmost prefix, and why more indexes are not always better.
Processes isolate, threads share memory, coroutines schedule in user space. Their costs, switching overhead, and when to favour coroutines or async.