- Hasura – Migrations, Metadata and CI/CD
How a schema change gets from your laptop to production without anyone clicking in a console. What the Hasura CLI's migrations, metadata and seeds directories each hold, why metadata and migrations must move together, and the awkward question of who owns the schema when your ORM already runs its own migrations. Then a pipeline that applies both on merge, and the v3 equivalent built on `ddn supergraph build`.
- React – Error Boundaries
One thrown error in one component blanks the entire page — React unmounts the whole tree rather than show something broken. An error boundary is the only thing that stops it, it is still the one thing you need a class component for, and it does not catch event handlers or async code. Here is what to do about all three.
- Java 21 Virtual Threads
A virtual thread is a thread that costs almost nothing to create. You can have millions of them. That single change removes the reason most server code was written asynchronously, and it is the biggest thing to happen to Java concurrency in twenty years. The problem A platform thread — the only…
- Greedy Algorithms
Take the best-looking option at each step and never reconsider. Fast, simple, and correct only when the greedy choice property holds — with a worked case where greedy returns three coins and dynamic programming returns two, so you can see it fail.
- Spring Boot – Stateless API Authentication with JWT
Issuing a token at login, validating it in a OncePerRequestFilter, and putting the result in the SecurityContext. Where the signing key comes from, what does and does not belong in a claim, and the honest trade-off nobody mentions: a stateless token cannot be revoked.