Authentication vs Authorization - and How to Implement Both
Two concepts that are constantly confused and constantly misimplemented. Here is what each means and how to get both right.
Deep dives into the topics that separate good engineers from great ones.
Two concepts that are constantly confused and constantly misimplemented. Here is what each means and how to get both right.
Three architectural styles, their actual tradeoffs, and how to choose between them without falling into the microservices trap.
The compiled vs. interpreted distinction is blurrier than you think, and understanding the spectrum explains tradeoffs you make every day.
From a line of source code to electrons moving through silicon - the mental model every engineer should have.
Most teams argue about Gitflow vs trunk-based development. The better question is what you are actually trying to solve.
A code review is not a gatekeeping exercise. Here is what makes them useful - from both sides of the diff.
A commit message is a letter to whoever debugs this code next. Here is how to write one that actually helps.
Refactoring is changing structure without changing behavior. The hard part is keeping those two things separate.
From HTML bytes to pixels on screen - the rendering pipeline that every frontend engineer should understand.
JavaScript is single-threaded but non-blocking. The event loop is the mechanism that makes both of those things true at the same time.