Why your software project is behind schedule (and over budget)
Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.
Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.
Assume you are wrong by default: why verification built into your workflow beats confidence, and how short feedback loops catch what you cannot see.
Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Why small, iterative steps beat big-bang delivery: lessons from growing into an agile developer, one short feedback loop at a time.
How automated tests transformed twelve years of software development — a personal retrospective on quality, confidence, and lessons learned.
Stop giving AI instructions. Describing the problem and asking questions first produces better results — the AI knows patterns, you know your context.
Assume you are wrong by default: why verification built into your workflow beats confidence, and how short feedback loops catch what you cannot see.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Why small, iterative steps beat big-bang delivery: lessons from growing into an agile developer, one short feedback loop at a time.
Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.
Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Why small, iterative steps beat big-bang delivery: lessons from growing into an agile developer, one short feedback loop at a time.
How automated tests transformed twelve years of software development — a personal retrospective on quality, confidence, and lessons learned.
Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Assume you are wrong by default: why verification built into your workflow beats confidence, and how short feedback loops catch what you cannot see.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.
A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.
Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.
A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.
Stop giving AI instructions. Describing the problem and asking questions first produces better results — the AI knows patterns, you know your context.
Assume you are wrong by default: why verification built into your workflow beats confidence, and how short feedback loops catch what you cannot see.
How automated tests transformed twelve years of software development — a personal retrospective on quality, confidence, and lessons learned.
How automated tests transformed twelve years of software development — a personal retrospective on quality, confidence, and lessons learned.
How automated tests transformed twelve years of software development — a personal retrospective on quality, confidence, and lessons learned.
Why small, iterative steps beat big-bang delivery: lessons from growing into an agile developer, one short feedback loop at a time.
Why small, iterative steps beat big-bang delivery: lessons from growing into an agile developer, one short feedback loop at a time.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Why writing is a developer’s most underrated skill — clear prose sharpens thinking, spreads knowledge, and becomes a superpower in the age of LLMs.
Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.
Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.
Why every developer should build a personal website: practice explaining technical work to non-technical people, own your content, grow your career.
A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.
A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.
A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.
A step-by-step guide to migrating a frontend monolith to micro frontends: extract a shared kernel, then split the first module into a standalone SPA.
Assume you are wrong by default: why verification built into your workflow beats confidence, and how short feedback loops catch what you cannot see.
Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.
Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.
Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.
Compose micro frontends at runtime with import maps — a lightweight, browser-native alternative to Module Federation. No page reloads, no iframes.
Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.
Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.
Software projects rarely fail on technical work. They fail on long feedback loops, unvalidated trust, and gut-feeling estimates — all three fixable.
External APIs will change without warning. How adapters and hexagonal architecture keep foreign systems at the boundary of your codebase.
External APIs will change without warning. How adapters and hexagonal architecture keep foreign systems at the boundary of your codebase.
External APIs will change without warning. How adapters and hexagonal architecture keep foreign systems at the boundary of your codebase.
External APIs will change without warning. How adapters and hexagonal architecture keep foreign systems at the boundary of your codebase.
External APIs will change without warning. How adapters and hexagonal architecture keep foreign systems at the boundary of your codebase.
Stop giving AI instructions. Describing the problem and asking questions first produces better results — the AI knows patterns, you know your context.
Stop giving AI instructions. Describing the problem and asking questions first produces better results — the AI knows patterns, you know your context.
Stop giving AI instructions. Describing the problem and asking questions first produces better results — the AI knows patterns, you know your context.