Adapting Constraints Without Losing Coherence
Healthy systems adapt constraints deliberately, tightening, relaxing, or retiring them as context changes without losing coherence.
Software Architect. Strategic Business Leader. I help make good software professionals great!
Healthy systems adapt constraints deliberately, tightening, relaxing, or retiring them as context changes without losing coherence.
Team structure, ownership boundaries, and decision rights are real design constraints that shape whether a system can remain coherent.
Constraints become useful when they take concrete form as interfaces, contracts, boundaries, and operational commitments that teams can design against.
A useful taxonomy helps architects distinguish business, financial, temporal, regulatory, operational, technical, organizational, and interface constraints before they jump to solutions.
Good constraints clarify design, protect coherence, and create a viable space for exploration without collapsing into arbitrary mandates.
Insights on persuasion, negotiation, influence and working effectively with AI.
Motivational Interviewing gives transformational leaders a practical way to build trust, fight for clarity, and empower people without slipping into command-and-control management.
I joined Techlandia for a conversation on software architecture, leadership, and building better systems.
How I migrated my personal site from a deprecated Ruby-based framework to a modern Astro stack — through conversation, not code.
How I used GitHub Copilot to completely redesign my personal site in about two hours — and what that reveals about AI-assisted development.
How do you build AI-native software that goes beyond a simple ChatGPT wrapper?
What is the role of human programmers in the age of AI, and why does code health matter more than ever?
How do you balance coupling in software design to manage complexity and build resilient systems?
What is a message bus and when do you need one?
How do you foster a culture of quality in a software team?
How do you cultivate a positive, innovative software engineering culture?
Highlighting what is often missed or overlooked
"It sounds so sweet with the sun sinking low" - James Taylor
Learn about the challenges and opportunities of location-aware applications
An organization is a collaboration system
Fulfilling a dream
Leverage the power of composition to reduce the integration burden of front-end teams
The software industry awaits its transformation to a true engineering discipline
Good abstractions put the hard work where it belongs: on the implementer, not the integrator.
Dataware platforms leverage an operational data fabric to liberate data from apps and other silos and connect it together in real-time data networks.
Platform engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations
Learn a bit about my career journey and passion for good system design
Learn how to leverage the event modeling approach to discovering requirements and designing software systems.
Find out how scientists use software as a critical component of their research.
Learn about what makes GraphQL unique and how it compares to other API design methodologies.
Managing complexity in software system design.
Humans thrive as value creators.
Learn about the challenges and opportunities of cross platform applications.
Let if flow through you
Perspectives for clarity, responsibility, and value creation.
Contain complexity before it contains you!
A good design requires adoption of and adherence to critical constraints. No great work of art, literature, architecture or industry ever came into existence without critical constraints.
The Dapr Distributed Application Runtime empowers you to leverage industry best practices and focus on your application’s logic.
Learn how to apply and good engineering practices like reversibility and automation to your Dev Ops and resource provisioning processes with Infrastructure as Code.
Technical debt affects every software system and project while managing it effectively remains an elusive goal for many software companies and teams.
Good constraints provide the freedom to fully explore a problem or solution space.
For decades the Fallacies of Distributed computing have helped software thinkers to contend with the promises and pitfalls of distributed systems.
Discover how mathematics, logic, immutability and other concepts can give you an edge when designing and running distributed systems.
My latest efforts to help you avoid the Pit of Despair!
Felienne joined me on Software Engineering Radio for a conversation about her recently published book, The Programmer's Brain.
Ride the rails!
A lack of cultural alignment leads to negative outcomes for teams and organizations. It often goes unnoticed or neglected while risks ramp up and the ramifications become more costly and challenging to remedy.
Improve your skills at discovering, defining, and distilling requirements.
Ultimately, just one fundamental metric matters when evaluating the competence of software architects: the ability to identify, assess and ultimately contain complexity.
A Software Engineering Radio episode with Michael L. Perry on his recently published book.