Second order effects
Explores the unpredictable second-order effects of AI evolution, focusing on how AI coding tools may reshape developer choices and business models.
Explores the unpredictable second-order effects of AI evolution, focusing on how AI coding tools may reshape developer choices and business models.
A weekly collection of curated articles on software architecture, development, DevOps, code quality, and tech leadership.
A conversation on how LLMs help shape software abstractions and manage cognitive load in building systems that survive change.
Explores Abstraction of Thought (AoT), a structured reasoning method that uses multiple abstraction levels to improve AI reasoning beyond linear Chain-of-Thought approaches.
Armin Ronacher discusses challenges in AI agent design, including abstraction issues, testing difficulties, and API synchronization problems.
A developer shares lessons on building AI agents, discussing SDK abstractions, caching, reinforcement, and tooling challenges.
Martin Fowler argues that LLMs represent a fundamental shift in software development, comparable to the move from assembler to high-level languages.
Explores common pitfalls in software abstraction like DRY misuse, lasagna code, and util files, offering advice for scalable design.
The article critiques the DRY principle, explaining how its overzealous application can lead to complex, hard-to-maintain code and bad abstractions.
A critique of over-engineering in software development, arguing that excessive abstraction can create complex, unmaintainable code.
Explains how to use protocol-oriented programming in Swift to design flexible applications by focusing on what entities can do rather than what they are.
Explains how to use Rust's Newtype pattern to safely abstract file name extraction from paths, replacing error-prone code.
Explains the key differences between abstraction and encapsulation, two fundamental object-oriented programming concepts.
A developer analyzes what makes a good developer experience, focusing on the inconsistent and 'lumpy' nature of the Web Platform's APIs and abstractions.
Explores the difference between high-level intent and low-level requirements in software engineering and how to effectively navigate between them.
Argues for organizing code with the most abstract functions first to improve readability and debugging efficiency.
A guide on learning React effectively, focusing on understanding JavaScript fundamentals and the costs/benefits of abstractions.
A developer's chart on career priorities goes viral, sparking discussion on the evolution from making code work to valuing readability and avoiding over-abstraction.
The article introduces AHA Programming, a principle advocating 'Avoid Hasty Abstractions' and preferring duplication over bad abstractions for more maintainable code.
A developer questions the pursuit of 'clean code' after refactoring for DRYness makes the codebase harder to understand.