







A collection of principles and patterns that shape software systems, teams, and decisions.
Conway's Law | Laws of Software Engineering
Organizations design systems that mirror their own communication structure.

Home | Laws of UX
Laws of UX is a collection of best practices that designers can consider when building user interfaces.

Principles for crafting software
My principles for deciding what to work on and how to build it.

The Next Two Years of Software Engineering
Exploring five critical questions shaping software engineering through 2026, with contrasting scenarios for each. These lenses help prepare for the evolving ...

What We Know We Don't Know: Empirical Software Engineering
Empirical Software Engineering is the study of what actually works in programming. Instead of trusting our instincts we collect data, run studies, and peer-review our results. This talk is all about how we empirically find the facts in software and some of the challenges we face, with a particular focus on software defects and productivity. Talk doesn’t seem to be online yet; in the meantime, you can see a recording of an older version of the talk here.
Theory and Memory: Two Forces Shaping Software Team Knowledge
How insights from cognitive science and social psychology explain why software knowledge is so hard to preserve

Developer Ecosystems for Software Safety
How to design and implement information systems so they are safe and secure is a complex topic. Both high-level design principles and implementation guidance for software safety and security are well established and broadly accepted. For example, Jerome Saltzer and Michael Schroeder’s seminal overview of principles of secure design was published almost 50 years ago,10 and various community and governmental bodies have published comprehensive best practices about how to avoid common software weaknesses—for example, Common Weakness Enumeration (CWE)a and Open Worldwide Application Security Project (OWASP) Cheat Sheet Series.b

You can't design software you don't work on
Only the engineers who work on a large software system can meaningfully participate in the design process. That’s because you cannot do good software design without an intimate understanding of the concrete details of the system. In other words, generic software design advice is typically useless for most practical software design problems.

Tailoring Legal Protection for Computer Software
Peter S. Menell, Tailoring Legal Protection for Computer Software, Stanford Law Review, Vol. 39, No. 6 (Jul., 1987), pp. 1329-1372
How teams build – Linear
AI usage patterns in software teams: who is adopting AI, how it reshapes where teams spend their time, and how much more they ship.

The Economics of Software Teams: Why Most Engineering Organizations Are Flying Blind
A breakdown of what software development teams actually cost, what they need to generate to be financially viable, and why most organizations have no visibility into either number.

How coding agents work - Agentic Engineering Patterns
How coding agents work - Agentic Engineering Patterns
Governing Digital Legal Systems: Insights on Artificial Intelligence and Rules as Code · MIT Computational Law Report
This article explores how AI and 'rules as code' are turning law into automated systems. It highlights the need for governance focused on transparency, explainability, and risk management to ensure these digital legal frameworks stay reliable and fair.




Legislation as Code | Version: 2

Governing Digital Legal Systems: Insights on Artificial Intelligence and Rules as Code · MIT Computational Law Report
Hamish Fraser