- Multithreading
Threads let a program do several things at once. They also introduce a class of bug that is intermittent, unreproducible and dependent on timing — which is why the most useful advice about concurrency is to use the highest-level tool that solves your problem. Starting a thread start() creates a…
- React – Styling
className not class, the inline style object and its camelCased keys, conditional and combined class names, CSS Modules for scoping, importing a stylesheet in the entry file and why import order decides which rule wins. Plus where CSS-in-JS and Tailwind fit, and the case for CSS custom properties.
- Angular – Change Detection, OnPush and Zoneless
Why an Angular app gets slow and what to do about it. How change detection actually works, what `OnPush` changes, and the zoneless mode signals made possible — the demo app runs with no zone.js at all and `OnPush` on every one of its components. Where `@defer` fits, route-level code splitting, and measuring with Angular DevTools rather than guessing.
- Docker – Building and Pushing from GitHub Actions
A workflow that builds the image, tags it from the git ref, pushes it to a registry and does not leak a credential. `docker/build-push-action`, why a CI runner starts with an empty layer cache and what `cache-from`/`cache-to` do about it, and using GitHub's OIDC token instead of storing a long-lived key.
- Hasura – Deployment
Getting it running somewhere that is not your laptop. The environment variables that actually matter in production, running the engine on Docker or Kubernetes with health checks and more than one replica, database connection pooling and why it bites before anything else does, zero-downtime metadata changes, and where Hasura Cloud saves you work. Then DDN and Private DDN in v3.