I follow an architecture principle I call The Law of Collective Amnesia
A software architect introduces 'The Law of Collective Amnesia' to explain how system design intent fades over time and offers strategies to defend architecture.
A software architect introduces 'The Law of Collective Amnesia' to explain how system design intent fades over time and offers strategies to defend architecture.
Explores the challenge of 'asymmetric questions' in tech teams, where asking is easy but answering requires deep effort and context.
A developer argues against using AI for every problem, highlighting cases where classic programming is simpler and more reliable.
A lecture reflection on the gap between mathematical theory and practical engineering in machine learning, arguing for social analysis over functional analysis.
A blog post discussing the importance of speed in technology and work, referencing Daniel Lemire's insights on avoiding obsolescence.
A critique of AI's role in software development, arguing that output is not productivity and that expertise remains essential for solving real problems.
Explores the deeper lesson of Chesterton's fence in software engineering: understanding why code exists, then deleting it if it's obsolete.
A developer shares lessons on avoiding technical debt by prioritizing planning over coding, using a personal game project as an example.
A software engineer's reflection on managing priorities and technical debt in a fast-growing company, comparing it to spinning plates.
A curated list of articles exploring AI-assisted development, covering real-world integration, career impacts, failed experiments, and technical deep-dives.
Explores how tech debt in infrastructure code creates a self-perpetuating 'flywheel' effect, making it extremely costly and difficult to fix.
An engineering manager reflects on the role's challenges, feeling accountable but not directly credited, and compares it to surfing.
A software engineer discusses strategies for prioritizing and integrating technical cleanup work into the development process, arguing against isolated "technical sprints".
A critique of over-engineering in software development, arguing that excessive abstraction can create complex, unmaintainable code.
An article arguing that engineers should not use complexity as an excuse for poor design, emphasizing the importance of creating simple user experiences.
A senior developer shares key lessons on software quality, automated testing, and bridging the gap between technical and non-technical stakeholders.
A developer draws parallels between physical clutter and technical debt, advocating for regular 'code cleaning' sessions to improve team happiness and productivity.
The article explains the true meaning of 'refactoring' in software development and argues for its proper use to avoid client misunderstandings.
Puzzmo removes its chat feature due to low usage and technical challenges, shifting focus to core UI improvements.
Engineers should focus on understanding the underlying problem behind a task, not just executing it, to avoid creating useless or poorly designed features.