NOTE: This site is under development. There is plenty left to write!
Welcome! #
This is a place where I dump my personal thoughts on “standards for software engineering”. These are not universal, but just a repository of available standards, why you might want to use them, as well as overviews to help tie it together.
Project Lifecycle #
Walkthroughs for individual phases of a software project. Links to all of the relevant standards and explains why we need them.
Standards #
Read these for specific recommendations. These will always link to the “why”. Not all of these are applicable to all software projects.
Principles #
These are short statements to help you avoid pitfalls and identify opportunities. Explanations and examples will be provided over time.
System Archetypes #
These are types of systems (and libraries!) commonly seen in the wild. Note that these will be skewed toward megacorporations and ML, since the majority of my work experience is focused on these.
Design Patterns #
These are patterns that are not specific to a certain use case, but serve as fundamental ways to structure software.
You may find that my design patterns are not as minimal as the commonly known ones. This is because I have specific preferences on how we should (or should not) combine them. You’ll see a strong preference for strong isolation wherever possible.