The one ring problem: abstraction and our quest for power (2018)

Types are a basic tool of software design (2018)

The one ring problem: abstraction and our quest for power (2018)

Backpressure in Queues

You should break the Law of Demeter

On 'function coloring' (2018)

Why variance matters

Data, objects, and how we're railroaded into poor design

Backpressure (2019)

Design duality and the expression problem (2018)

Fuzzing vs. Property Testing

Testing at the boundaries

Programmer as wizard, programmer as engineer (2018)

What does it mean to design software well?

Why an interface with only one implementation?

Whereas types can be pervasive

Designing abstractions with properties in mind

Decontructing the "Unix philosophy"

How did we end up with containers?

The one ring problem: abstraction and our quest for power

What can we learn from how compilers are designed?

System boundaries: the focus of design

Programmer as wizard, programmer as engineer

Design duality and the expression problem

What would an object-oriented language without inheritance look like?