Insights, tutorials, and lessons learned
TypeScript 📅
Not every error belongs in your types. How to separate recoverable domain errors from technical [...]
AI 📅
Why AI exhausts so many dev teams, and how Agentic Coding done right lets you ship faster, better [...]
Concurrency 📅
The Function Coloring problem between sync and async functions, and how Effect Systems like Effect [...]
Architecture 📅
From template to device: how mobile push notifications actually work, their product and technical [...]
AI📅
AI is transforming how we write software, but not the engineer's mission: laying the rails the AI [...]
AI 📅
An AI agent aligns easily with a team's standards, but it amplifies the good and the bad alike. Why [...]
Resilience 📅
Chaos Engineering, popularized by Netflix: deliberately inject failures to uncover the weaknesses [...]
Lean Management📅
For Bill Gates, his most important job was making sure bad news was never ignored. A Lean lesson on [...]
Lean Management 📅
The Near Transfer concept from neuroscience applied to Problem Solving: solving problems the moment [...]
Testing 📅
Why a green test that pollutes stdout/stderr should be red, and how the Broken Windows Effect [...]
Concurrency📅
How to offload CPU-intensive tasks with Node.js Worker Threads without degrading the Event Loop [...]
Concurrency📅
Understanding Blocking and Non-Blocking in Node.js: the Reactor Pattern, Event Loop, thread pools [...]
Craftsmanship 📅
The Boy Scout Rule and Opportunistic Refactoring: turning continuous code improvement into a [...]
Resilience 📅
The final pattern in the resilience series: the Bulkhead. Partition resources to isolate failures [...]
Architecture 📅
Our job doesn't stop at the commit. The pillars of an Enterprise-Ready application in production [...]
Resilience📅
Rate Limiting to protect the server: capping requests for stability, security, and business. How it [...]
Resilience📅
The Circuit Breaker, the circuit breaker of a resilient architecture: a CLOSED/OPEN/HALF-OPEN state [...]
Resilience📅
The Timeout pattern for resilience: bound every external interaction in time, free up resources [...]
Resilience📅
First of 5 resilience patterns: the Retry and its backoff strategies (fixed, exponential, jitter) [...]
JavaScript 📅
Why a single import triggers dozens of disk lookups, and how explicit extensions [...]
TypeScript📅
Branded types, illegal states unrepresentable, parse don't validate: how to get the most out of the [...]
Architecture📅
Konsist, ArchUnit, eslint-plugin-boundaries: make a hexagonal architecture executable by automating [...]
Career 📅
Concurrency, functional programming, resilience, type-safety: why exploring Effect forces you to [...]
Lean Management 📅
Technical excellence alone won't make a tech product succeed. How Lean Management lets you move [...]
Concurrency📅
Callbacks, Promises, Fibers, Coroutines reduce complexity but don't eliminate resource leaks and [...]
Architecture 📅
Flicker, endless spinners: how to guarantee consistent loading states with spin-delay, optimistic [...]
Concurrency 📅
From Ryan Dahl's diagnosis to the birth of Node.js: why the Event Loop is an alternative to the [...]
Career 📅
Why spaghetti codebases and big balls of mud are the best learning opportunities to become a better [...]
JavaScript 📅
Two fundamental concepts often confused: the evaluation strategy (eager/lazy) decides when an [...]
Architecture📅
A deep dive into Inversion of Control: its history, the Hollywood Principle, callbacks, framework [...]
Career📅
The IT consultant role suffers from a bad reputation. A look at the three pillars of the job and [...]
Concurrency 📅
Why a callback that is both synchronous and asynchronous is an anti-pattern (Zalgo) [...]
Concurrency📅
Demystifying callbacks in JavaScript: the difference between synchronous and asynchronous [...]
JavaScript📅
Six concepts that rest on closures: currying, partial application, higher-order functions [...]
JavaScript📅
Understanding closures in JavaScript: bound vs free variables, capturing the lexical context, and [...]
Lean Management📅
How Lean, seen as a continuous learning system, turns every bug into an opportunity to eradicate [...]
Tooling📅
How Docker Compose's Watch feature (sync, rebuild, sync+restart) shortens the feedback loop and [...]
Open Source📅
Why open source is the best place to learn: skill growth, collaborating with the best, real impact [...]
Tooling📅
Live Reload vs Hot Reload (HMR): how they work, granularity, feedback loop, and the developer [...]
Lean Management📅
Adopt a Lean mindset to turn every obstacle into an opportunity: Continuous Delivery, root-cause [...]
Lean Management 📅
How One-Piece Flow from Lean Management reduces Lead Time, proven mathematically with Little's Law [...]
Lean Management📅
Why the backlog creates overproduction Muda, and how Just-in-Time from Lean Management aligns [...]
Architecture📅
Discover the DataLoader pattern to solve the N+1 problem in GraphQL through batching and caching [...]
Architecture📅
The N+1 problem explained in detail in the context of GraphQL: how a single initial query triggers [...]
Lean Management 📅
A tour of the 8 categories of Muda (waste) from the Toyota Production System, memorized with the [...]
Lean Management 📅
How the Lean-born Gemba Walk helps a Team Lead spot, on the ground, the organizational and [...]
TypeScript📅
Structural vs nominal type systems in TypeScript, and how Branded Types bring type-level uniqueness [...]
Concurrency📅
The little-known flaw in Promises: their non-interruptible nature prevents resources from being [...]
TypeScript📅
Restoring the true definition of a generic in TypeScript: a generic type takes type parameters [...]
Architecture📅
Understanding a cache's complexity: invalidation via TTL and eviction with the LRU, LFU and FIFO [...]
Architecture📅
How a cache speeds up your web apps: in-memory storage, data proximity (CDN), LRU/LFU algorithms [...]
Architecture 📅
An intro to web caching: avoiding over-fetching with the HTTP Cache-Control header, private and [...]
Architecture 📅
Why production containers need proper SIGTERM handling: graceful shutdown, the PID1 init problem [...]
Tooling📅
Why your app must not be a container's PID1: signal propagation, zombie/orphan processes, Docker's [...]
Architecture📅
Understanding DAGs: why cycles are a problem, how topological sort determines task execution order [...]
Architecture📅
Why dependency graphs sit at the heart of modern tooling: monorepo task orchestration, the Affected [...]
Lean Management📅
Why problem-solving is so rarely standardized: the Lean-born PDCA, the difference between symptom [...]
Open Source 📅
A tour of skott web app v2: cluster & hierarchical graph layouts, a VSCode-like file explorer [...]
TypeScript 📅
Why dropping TypeScript for untyped JavaScript is a step backward: feedback, fearless refactoring [...]
Craftsmanship 📅
How TDD and Dependency Injection drive software design: Test-First vs Test-Last vs TDD, baby steps [...]
TypeScript📅
Why Effect in TypeScript: making errors and dependencies explicit, testing, resilience [...]
Craftsmanship 📅
Why 100% code coverage is a misleading target: a trap example, mutation testing with Stryker, and [...]
Open Source 📅
skott's road to v1: the new web application display mode, incremental graph processing with [...]
Tooling 📅
How package managers work: install/update/remove, dependency-tree consistency with lockfiles [...]
Tooling 📅
The foundations of static analysis: parsers, lexical vs syntactic analysis, Abstract Syntax Trees [...]
Open Source 📅
Meet skott: a devtool that builds a dependency graph of your JavaScript/TypeScript/Node.js project [...]
Architecture 📅
Build the Incremental/Affected pattern by hand: model a project as a directed graph, hash + cache [...]
JavaScript📅
An introduction to directed graphs for developers: vertices, edges and adjacency, plus three real [...]
No posts match your search.