- How you can handle The Diamond with CMake
CMake requires old-school include-guards and prefix at scale
- Software Architecture: How You Make Them Care
Software architects must code, talk business, and tell stories.
- 3 Ideas How to Communicate Your Architecture
Write decision records, write a newsletter, and explain at concrete examples.
- Influence (review)
Humans rely on mental shortcuts and that is exploited.
- Made to Stick (review)
Sticky ideas are simple, unexpected, concrete, credentialed, emotional, and a story.
- The Three Owners of an Interface
An interface is owned above, below, or at the same layer.
- The Culture Code (review)
Grow an effective team through building safety, sharing vulnerability, and establishing purpose.
- The Heart of Change (review)
Change initiatives succeed in stages building on each other.
- Turn the Ship Around! (review)
The best book about empowerment. Turns a submarine from worst to best.
- Use decision records already!
To develop more systematically, decision records are a great first step.
- OKRs are about change
Objectives and Key Results is better understood by Change principles
- Switch (review)
How to change things when change is hard
- Pondering Amazon's Manyrepo Build System
Amazon's build system provides valuable insights for manyrepo environments.
- Notes with TiddlyWiki
Describing my note taking system inspired by Zettelkasten
- Peopleware (review)
Leaders of software developer teams should care more about sociology.
- Crossing the Chasm (review)
The book describes the dangerous transition from early adopters to an early majority market
- Wardley Maps (review)
A book which presents a map visualization for business strategy
- One Letter Programming Languages
If you are looking for a free name, there is none.
- Accidentally Turing-Complete
A list of things that were not supposed to be Turing-complete, but are.
- No real numbers
Interactive article about the pitfalls of integer and floating point arithmetic.
- How to do hermetic builds
Bazel does surprisingly little and it could be easily ported
- Pondering a Monorepo Version Control System
How a VCS designed for monorepos would look like and why I don't build it.
- TLA+ is easier than I thought
Did a small exercise with TLA+, an easy model checker.
- Mindstorms (review)
A book about a revolution of education which sadly never happened.
- Sacrifice of Scar
Short Lion King fanfic
- Definitions of Software Architecture
Software architecture documents the shared understanding of a software system.
- Thinking in Systems (review)
A shallow introduction to Systems Thinking.
- Should version control and build systems merge?
At scale version control and build system seem to merge but there is no unified tool available yet.
- Companies are AI
Depending on the definition of intelligence, companies are intelligent beings.
- What is ASPICE?
The automotive industry knows how to develop software as demonstrated by ASPICE.
- C++ State Machines
Avoid input parameters so state machines transitions are decoupled from transition effects.
- TipiWiki (2003)
More than 15 years ago I published a little wiki software.
- The New Economics (review)
A book about system thinking, statistics, learning, and psychology.
- Deriving Story Points
Story points are a useful technique to improve prediction but they have limits because the lack in statistics.
- The Spartan Web
Defining a label for websites I like to visit and would like to see more of.
The "Waterfall" methodology was a historic accident and they knew it.
- Dependency Abstraction
A design pattern which generalizes Dependency Inversion and can also be applied on an architectural level.
- Model View Controller isn't
Maybe the most misunderstood design pattern.
- How to implement strings
There are many alternatives to C strings. Here we explore the design space.
- Advice for a Junior Software Developer
Random wise words like "Never assume anybody is stupid".
- The Cost of Agile
Agile improves time to market at the cost of process efficiency
- My Raspberry Pi RF ID music player
My electronics for the kids music player are complete and working.
- Using an M302 RF ID Reader with Linux
How to get a cheap RF ID reader running with Ubuntu and Python
- My Linux History
I'm now using a Linux desktop for twenty years
- Lambda interpreter in the way of GOD
Good Object-oriented Design (GOD) says to avoid instanceof. Here is how to implement pattern matching another way.
- Abstracting is NOT about Names
You can abstract without giving names: The Design by Introspection technique
- Precise Abstractions
Precise abstractions apply to exactly the right types and D allows to check for that.
Bitcoin is a revolutionary technology. It might also be replaced quite soon.
- 6 Wildly Different Presentation Styles
A list of various presentations styles with and without slides
- Forget about Leaky Abstractions
If an abstraction is not perfect for you, it is incomplete or unsuitable
- How to generate Lua boilerplate with D
Lua bindings require lots of pushes and pops, but with D they are magically implicit
- Cognitive Dissonance as a Method
How populism turns people into xenophobic fascists
- Slide design for graphically-challenged people
Black on white, left align, one font for text, one font for code, fullscreen images.
- Federation is the Future for an Open Web
P2P technology is doomed on mobile. For a democratic web, we need to work on federation.
- Great Teams require Psychological Safety
Create great teams in 5 steps. Google collected lots of data about productivity in teams and these are the results.
- Memory Consistency Models for Programming Languages
The general memory consistency model is "Sequential Consistency for data race free programs". The rest is details.
- Hacker Titles for Business Cards
pointer arithmetician, languagician, object orienter, ...