Typed functional Dependency Injection in Python
Explains how to implement typed functional dependency injection in Python, contrasting it with traditional OO DI and using a Django example.
Explains how to implement typed functional dependency injection in Python, contrasting it with traditional OO DI and using a Django example.
Explores architectural drivers like functional requirements and quality attributes that influence the choice between a Modular Monolith and Microservices.
An introduction to Modular Monolith architecture, contrasting it with microservices and defining its core principles.
Article argues that code quality directly impacts user experience by enabling faster feature delivery and fewer bugs.
Explores definitions of software architecture, examining it as decisions, system structure, and design process to form a universal understanding.
Explores principles for creating a clean, maintainable Domain Model in software, applying clean code concepts to Domain-Driven Design.
A satirical article about a town building a new, high-tech road that prioritizes cars and revenue over pedestrians and cyclists.
Explains how to use Go's internal/ directory to create private packages, reducing a project's public API surface and improving design.
A tutorial on integrating the VIPER architecture with SwiftUI to build scalable, modular iOS applications following clean code principles.
Clarifies misconceptions about dependency injection, explaining what it is not: service location, shared dependencies, or auto-wiring.
A software architect explains the importance of cloud computing for career growth, using analogies to describe its services and benefits.
PSPDFKit shares insights on maintaining a large, cross-platform SDK, focusing on API evolution, proposal-based development, and long-term code maintainability.
Explores applying Domain Driven Design principles to identify and structure micro-frontends within complex web applications.
Explains why UI components should only serve end users and developers, and how testing implementation details creates a problematic 'test user'.
An explanation of GRASP (General Responsibility Assignment Software Patterns), a set of object-oriented design principles for assigning responsibilities in software.
Explores how Conway's Law reveals communication gaps between hardware, firmware, kernel, and software layers, using examples like Spectre and Kubernetes.
A critique of microservices complexity, advocating for the simplicity and maintainability of monolithic architectures in software development.
Lessons learned from building an enterprise PowerApps application, covering performance, control management, and code organization pitfalls.
Explores the importance of designing APIs that are not just readable but also optimized for how code evolves and changes over time.
An interview about Gnocchi, a time series database for metrics, covering its creation, architecture, and design trade-offs.