Julian wanted a small collection of links for Christmas that he could browse through instead of searching through our shared Slack channel. So it turned into a Sunday blog project 🤓
These three videos (and the associated linked material) are content with a long "shelf life" and will still be relevant ten years from now, so no need to rush. What's a bit funny is that even though they are about completely different things, there’s a common thread running through all of them, touching on many of the same themes. Good design is universal, I suppose :)
Functional Core, Imperative Shell
A Hacker News favorite
Epically impressive Gary Bernhard is the man behind the classics "Wat" and "The Birth and Death of Javascript," the only programming stand-up shows I can think of about Javascript 😃.
In this screencast, he introduces and demonstrates how one can practically implement a concept that is functional in nature in a world full of state, by using an object-oriented language (a bastard he calls Faux OO 😄)

It’s basically one of many architectures closely related to Uncle Bob's "Clean Architecture" (blog & book), like Ports and Adapters/Hexagonal Architecture, etc., but for me it’s much easier to understand and translate into code, since he actually shows the code for a Twitter client in the screencast, and manages to implement FP in highly stateful domains like screen drawing. Monads in practice, without the academic hat.
Other resources
- A good intro article by Kenneth Lange
- My "Clean Architecture" list with GitHub repos showing principles from Clean and similar architectures in practice.
- Funksjonell Kjerne, Imperativt Skall - Magnar Sveen in Norwegian at Javazone 2025
Millisecond Full Stack Acceptance Tests
Aslak Hellesøy is the man behind Cucumber, a framework for more user-story-centered testing that I definitely misunderstood the point of at first. Like almost everyone else, it seems, but this talk opened my eyes to what he was really trying to do.
A very inspiring talk that shows the flexibility of what can be achieved through layering and clear interfaces in code.
As one commenter wrote
To put simply - if you decoupled your business logic from UI and DB you can just write unit tests against it and get high confidence about your business logic.
That’s the recurring theme here – through layering one can relatively frictionlessly achieve super-fast test suites without tons of mocks and heavy setups.
🚀 TDD, Where Did It All Go Wrong
I reviewed this video in-depth in 2025: "Rethinking TDD"
Ian Cooper addresses all the misunderstandings that have distorted Kent Beck’s message in the TDD book from 2002 in the years since it was published. Both Clean and Ports & Adapters show up along the way, so everything connects :-)