The closer to the edge, the more stable a platform must be
Explains why edge components like API gateways must be more resilient than backend services to protect platform availability.
Explains why edge components like API gateways must be more resilient than backend services to protect platform availability.
Explores five software architecture mistakes that make systems hard to change, emphasizing understanding the domain before choosing tools.
Explains compensating transactions as a key resiliency pattern in distributed systems, using real-world payment reversal examples.
A reflection on shared understanding in software projects, quoting Armin Ronacher on the role of friction in team synchronization.
A physicist turned AI developer explains creating Matrix Designer to enforce architecture and design before AI writes code, solving the problem of fragmented AI-generated software.
Explores a third approach to using coding agents: implementing backpressure mechanisms like tests and types to validate work before human review.
Review of Fred Brooks' 'The Mythical Man-Month' and its enduring lessons on software project management and conceptual integrity.
A blog post assembling a reading list and syllabus for a course on engineering architecture, covering computing systems and cyber-physical systems.
Explains the C4 model for creating clear, multi-level software architecture diagrams to improve communication across teams.
Explores idempotency in system design, its patterns, and critical role in reliable distributed systems, generative AI, and AI agents.
Explains the difference between high availability and high resiliency in system design, and why both are crucial.
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 senior engineer reflects on the transition from individual contributor to system designer, exploring the addictive nature of shipping code versus the long-term leverage of building robust systems.
A lecture on control theory, explaining feedback as an algebraic interconnection for robust system design, using amplifier gain as an example.
A software engineer shares seven career aspirations for 2026, focusing on fundamentals, systems thinking, communication, and long-term impact.
Explores how AI prompts have evolved from simple text strings into critical, reusable system components with logic, and the challenges this creates.
A Principal Engineer compares interview processes at 8 major tech firms, detailing coding, system design, and behavioral rounds.
A strategy for building low-latency systems by deferring non-essential processing to an event-driven platform to optimize real-time performance.
Explains the concept of a 'synchrony budget' for designing distributed systems, advocating for asynchronous communication to improve performance and availability.
A summary of Dr. Werner Vogels' re:Invent 2024 keynote on system design principles like evolvability, decomposition, and cell-based architectures.