Blog.
Notes from my Obsidian vault: thoughts and experiments shaped by the Zettelkasten system, then refined with LLMs into pieces with a beginning, middle, and end before being published here.
Filter by tag 12 posts in software-architecture
Domain-Driven, Data-Oriented Design (DDDOD)
Bill Kennedy’s Go-centric take on DDD focusing on data flow, validation, and layered boundaries.
Package Oriented Design
Bill Kennedy’s approach to Go package design: purpose-driven packages, clear boundaries, and modular structure.
TDD Effects on Quality and Productivity
Summary of Bissi et al.'s systematic review on Test-Driven Development impacts.
Software Aging
Summary of David Parnas’s 1994 essay on software aging, causes, and preventive practices.
No Silver Bullet — Essence & Accidents
Summary of Frederick Brooks Jr.’s 1986 essay on inherent vs accidental complexity in software engineering.
Modularization Criteria — Parnas 1972
Summary of David Parnas’s criteria for decomposing systems into modules (KWIC case study).
Design by Contract (DbC)
Summary of Bertrand Meyer’s Design by Contract principles for robust software.
Conway’s Law — origins, literature, and team design
Summary of Melvin Conway’s original essay, subsequent research, and practical implications for structuring engineering teams.
Shape Up: Stop Running in Circles and Ship Work that Matters
Notes and practice guide merging book takeaways and course review on Shape Up by Ryan Singer, connected with The Mythical Man-Month, Design by Contract, Programming with Abstract Data Types, and Domain-Driven Design.
Domain-Driven Design: Tackling Complexity in the Heart of Software
Domain-Driven Design (DDD) is a software design approach that focuses on modeling complex systems based on the real-world domains or concepts they represent.
Design Patterns
Notes and presentation outline about design patterns, their intent, trade-offs, and related connections.
ADR — Architecture Decision Records
How to use Architecture Decision Records (ADRs) to document important architectural choices, their context, and trade-offs.