Resolving technical debts in software architecture
What's the single most critical action for resolving technical debt? This talk connects cognitive science to software architecture to reveal the answer.
#1about 6 minutes
How technical debt slows down feature development over time
Unmanaged technical debt leads to complex, tangled codebases, visualized as a "big ball of mud," which drastically reduces development velocity.
#2about 5 minutes
Quantifying code quality with the modularity maturity index
The Modularity Maturity Index (MMI) is a metric derived from tools like SonarQube to objectively measure the structural health and modularity of a software system.
#3about 4 minutes
Applying cognitive science principles to software design
Good software architecture aligns with how the human brain processes information through chunking, which translates directly to creating modular systems with high cohesion and loose coupling.
#4about 5 minutes
Leveraging design patterns and schemas for consistency
Using established design patterns consistently acts as a schema for developers, making the system easier to understand, navigate, and maintain.
#5about 3 minutes
Visualizing and enforcing architectural layering rules
Architecture review tools can visualize technical and domain layers, helping teams identify and fix violations like upward dependencies from the application layer to the UI.
#6about 2 minutes
Identifying and eliminating harmful cyclic dependencies
Cyclic dependencies between classes or modules create tangled structures that grow over time and must be refactored early to maintain system health.
Related jobs
Jobs that call for the skills explored in this talk.
The Web We Broke (And Why AI Agents Are Paying the Price) - AgentCon BerlinThis is the accompanying post to the talk Chris Heilmann gave at AgentCon in Berlin on 19/05/2026, you can also see the slides and listen to it in this screencast:
Thirty years of developer shortcuts, bloated JavaScript, and inaccessible HTML have l...
The real reason we document our codeThe world of software development moves fast. Technology is constantly changing, as are the tools we use with it, and even the role of a programmer is itself constantly in flux. However, some aspects of software engineering are so foundational that w...