← Knowledge Base

Engineering Practice

Local-first privacy architecture, OCR accuracy, watermarking and identifier design, hands-on engineering notes.

Articles in this topic

Spring Boot 4.2.0-M2 Released: SSL Bundle Support for LDAP and OpenTelemetry Conventions

Spring Boot 4.2.0-M2, released on September 25, 2026, ships 141 changes. This article covers SSL bundle support for LDAP, OpenTelemetry semantic conventions and unified OTLP configuration, plus the Tomcat property moves, Janino removal and Micrometer convention renames you need to handle when upgrading from 4.1.

8 min readJavaObservabilitySecurity
Spring Framework 7.0.9 Released: SpEL Compilation Off by Default, Forwarded Headers Need an Explicit Choice

Spring Framework 7.0.9, released on August 20, 2026, closes out the 7.0.x line. This article explains why SpEL compilation is now disabled by default and what to do about it, why you must now choose between Forwarded and X-Forwarded-*, and which memory-leak and concurrency fixes landed.

6 min readJavaSecurityJVM
Java 27 in Depth: The 9 JEPs and Their Impact

Java 27 (GA 2026-09-15, JSR 402) ships nine JEPs: G1 as the default GC everywhere, compact object headers, post-quantum TLS, lazy constants and primitive pattern matching. A developer-focused breakdown with migration notes.

13 min readJavaJVMPerformanceSecurity
Everyday Git and Recovering from Four Common Accidents

Wrong branch, deleted branch, overwritten work? Recovery through reflog, everyday commands, and three rules for teams.

6 min readGitCLIPitfalls
Add a Watermark Before You Share Images

Watermarks do more than stop reposting: attribution, tracing and branding. Choosing a style and cleaning privacy data before upload.

4 min readImagesPrivacy
Practical Regex Recipes and Four Common Traps

Reusable recipes for emails, phone numbers and log dedup, plus greedy vs lazy, groups, lookaround, catastrophic backtracking, and when not to use regex.

6 min readRegexPitfalls
Seven Practical Ways to Improve OCR Accuracy

Poor accuracy is rarely the engine alone: resolution, skew, contrast and language packs all matter. A checklist you can apply today.

5 min readOCRImages
Which UUID Version? v1, v4, v7 and When Not to Use One

A UUID is not just a random string. v1, v4 and v7 differ in time semantics, information leakage and index performance.

4 min readIdentifiersPitfalls
Local vs Server Processing: Why Browser-Only Tools Are Safer

Uploading a file to a server and computing it in your browser have very different security boundaries. Comparing both architectures.

5 min readPrivacyBeginner
The Testing Pyramid: Unit Tests Should Dominate

Why piles of UI end-to-end tests are slow and flaky. The unit / integration / e2e ratio and where to spend effort.

4 min readTestingBeginner
Image vs Container: They Are Not the Same in Docker

An image is read-only, a container is a running instance. Layers, size optimization, and why data belongs in volumes.

5 min readCloud nativeBeginnerCI/CD
Observability Three Signals: Logs, Metrics, Traces

You cannot fix what you cannot see. The distinct roles of logs, metrics and traces, and how to pinpoint failures fast.

5 min readObservabilityBeginner
Catastrophic Regex Backtracking: One Pattern That Can Down Your Service

Some patterns explode exponentially on certain input. Why nested quantifiers are dangerous, how to spot and avoid them, plus a timeout fallback.

4 min readRegexPitfalls
The 3-2-1 Backup Rule and Restore Drills

Backup is not the goal; recovery is. The 3-2-1 rule, RPO/RTO, verification and restore drills, plus the most common failures.

3 min readBeginnerPitfalls
Semantic Versioning in Practice: MAJOR.MINOR.PATCH and Dependency Ranges

When does a change deserve a MAJOR bump? What is the difference between ^ and ~? Version semantics, the 0.x rules, and four dependency traps.

5 min readCLIBeginner
Shell Scripting Essentials: Safe Preamble, Quoting Rules, Four Common Errors

Why set -euo pipefail is standard, how $var differs from "$var", and the four places scripts most often break.

5 min readCLIPitfalls
SSH Keys and config: From Generation to Managing Many Hosts

Why ed25519? How to write a useful ~/.ssh/config? Key deployment, host aliases, and four common pitfalls.

7 min readSSHCLI
Linux File Permissions: What the Three Digits Really Mean

What do 755, 644 and 600 mean? Why is the execute bit special on directories? Three identity groups, octal notation, and five frequent mistakes.

5 min readLinuxCLIBeginner
Concurrency Models Compared: Processes, Threads, Event Loops, Coroutines

CPU-bound or IO-bound? Need isolation? Compare four concurrency models across key dimensions, with a selection order and common traps.

5 min readConcurrencyPerformance
Canary and Blue-Green: Ship Without Blame

Do not push the new version to everyone at once. Canary by percentage, blue-green instant switch, and how to roll back fast.

3 min readCI/CDBeginner
Why a Database Index Makes Queries 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.

3 min readDatabasesBeginner
Process, Thread and Coroutine: Three Units of Concurrency

Processes isolate, threads share memory, coroutines schedule in user space. Their costs, switching overhead, and when to favour coroutines or async.

4 min readConcurrencyBeginner

Related tools

Other topics