PostsThoughts on software engineering, design, and building products.EngineeringProcessCultureProductivityThe Velocity TrapWe optimize for speed, measuring our worth in commits per day. But in our rush to ship, we accumulate a debt that no amount of sprint planning can pay off. A reflection on why slowing down is the only way to speed up.2026-03-01EngineeringArchitectureComplexityToolsThe Abstraction CeilingWe build abstractions to hide complexity, but eventually, we hit a ceiling where the abstraction leaks and becomes a hostage situation. A case study on composability over magic.2026-02-15EngineeringArchitectureComplexityUncertaintyThe Architecture of UncertaintyWe build software with the vocabulary of construction, but the ground beneath us is constantly shifting. A reflection on why we over-engineer for a future that never arrives.2026-02-01EngineeringArchitectureComplexityPatternsThe Cargo Cult of Clean ArchitectureWe layer our applications like onions, convinced that one day we'll swap the database. A look at why 'Clean Architecture' often leads to messy code and unnecessary layers of boilerplate.2026-01-15EngineeringFrontendState ManagementComplexityThe Cognitive Load of Modern State ManagementManaging state in modern web apps has become an exercise in architectural endurance. A reflection on how we trade simple local state for global complexity.2026-01-01EngineeringComplexityToolingDXThe Fatigue of Infinite ConfigurabilityWe demanded flexibility, and we got it. Now every component is a shapeshifter, accepting a dozen props to define its existence. A look at why constraints are better than options.2025-12-15Previous12More pages9Next
EngineeringProcessCultureProductivityThe Velocity TrapWe optimize for speed, measuring our worth in commits per day. But in our rush to ship, we accumulate a debt that no amount of sprint planning can pay off. A reflection on why slowing down is the only way to speed up.2026-03-01
EngineeringArchitectureComplexityToolsThe Abstraction CeilingWe build abstractions to hide complexity, but eventually, we hit a ceiling where the abstraction leaks and becomes a hostage situation. A case study on composability over magic.2026-02-15
EngineeringArchitectureComplexityUncertaintyThe Architecture of UncertaintyWe build software with the vocabulary of construction, but the ground beneath us is constantly shifting. A reflection on why we over-engineer for a future that never arrives.2026-02-01
EngineeringArchitectureComplexityPatternsThe Cargo Cult of Clean ArchitectureWe layer our applications like onions, convinced that one day we'll swap the database. A look at why 'Clean Architecture' often leads to messy code and unnecessary layers of boilerplate.2026-01-15
EngineeringFrontendState ManagementComplexityThe Cognitive Load of Modern State ManagementManaging state in modern web apps has become an exercise in architectural endurance. A reflection on how we trade simple local state for global complexity.2026-01-01
EngineeringComplexityToolingDXThe Fatigue of Infinite ConfigurabilityWe demanded flexibility, and we got it. Now every component is a shapeshifter, accepting a dozen props to define its existence. A look at why constraints are better than options.2025-12-15