"Example Driven Development" using Glamorous and Pharo Smalltalk:
https://medium.com/feenk/an-example-of-example-driven-development-4dea0d995920
Tests returning values and composing is a really interesting model. It establishes structure and shows which test failure is the most 'fundamental'.
My favourite programming model is single machine, single thread. It's so much easier to reason about when you have fewer failure possibilities.
Normally I don't like segfaults: they usually mean something low in the stack is broken and it'll be a pain to debug.
Writing assembly, segfaults are a good thing! They're a well-defined error state, whilst there are a whole range of messy failure states that are worse.