"Blog" is an old-fashioned word nowadays, but I like it nonetheless. This blog is indeed old-fashioned. You won't find any hero banners here, or calls to subscribe to a mailing list. And like old-fashioned blogs, it has a lot of articles. I wrote them all myself. Perhaps you might read them.
If you'd like to know when the next article is out, I suggest subscribing via the Atom feed using your favourite feed reader.
Ideas for free
Thursday, 6 February 2025 at 09:00 CET
Symbols, rituals, focus
Friday, 3 January 2025 at 11:00 CET
Ideas for free
Tuesday, 24 December 2024 at 12:00 CET
Ideas for free
Monday, 23 December 2024 at 17:00 CET
Ideas for free
Friday, 20 December 2024 at 16:00 CET
Dieting is personal
Friday, 6 December 2024 at 10:30 CET
So I rewrote my blog
Friday, 18 October 2024 at 23:30 CEST
A new look
Monday, 14 October 2024 at 23:55 CEST
Web Mindset
Thursday, 9 March 2023 at 19:00 CET
Pointless work
Thursday, 2 February 2023 at 09:30 CET
I shall finish more than I start
Saturday, 24 December 2022 at 12:00 CET
I'm not fucking about, I'm internalising
Wednesday, 9 November 2022 at 10:00 CET
Twitter's doomed. What's next?
Thursday, 3 November 2022 at 10:00 CET
Maybe, just maybe, there are other ways
Wednesday, 5 October 2022 at 12:00 CEST
#OneEstimate
Thursday, 22 September 2022 at 09:00 CEST
Lessons from a failed startup
Camaraderie is helpful, but no substitute for working together - Thursday, 4 August 2022 at 18:00 CEST
Lessons from a failed startup
Roles can be fluid, but they must be defined - Thursday, 28 July 2022 at 18:00 CEST
Lessons from a failed startup
If you don’t know how to do it, that’s your biggest problem - Thursday, 21 July 2022 at 18:00 CEST
Lessons from a failed startup
Until you have traction, money is a trap - Thursday, 14 July 2022 at 18:00 CEST
Lessons from a failed startup
Agile methods are tools to try more ideas in less time - Thursday, 7 July 2022 at 18:00 CEST
Lessons from a failed startup
Do less, and do it better - Thursday, 30 June 2022 at 18:00 CEST
Throwaway development environments with Nix
Tuesday, 28 June 2022 at 10:00 CEST
Lessons from a failed startup
Code is a liability; ship without coding, if possible - Thursday, 23 June 2022 at 18:00 CEST
Lessons from a failed startup
Unless someone cares, don't waste your time - Thursday, 16 June 2022 at 18:00 CEST
Lessons from a failed startup
Explore the terrain first - Thursday, 9 June 2022 at 18:00 CEST
Lessons from a failed startup
Go to therapy with your co-founders - Thursday, 2 June 2022 at 18:00 CEST
Lessons from a failed startup
Trust your gut, understand your heart, and open your mind - Thursday, 26 May 2022 at 18:00 CEST
Lessons from a failed startup
Your corporate values transcend your product vision - Thursday, 19 May 2022 at 18:00 CEST
Lessons from a failed startup
"Do research" is not a corporate strategy - Thursday, 12 May 2022 at 18:00 CEST
How to drive fast
Tuesday, 10 May 2022 at 18:00 CEST
Lessons from a failed startup
If the company goals change, the company should probably change too - Thursday, 5 May 2022 at 18:00 CEST
Lessons from a failed startup
Focus on the problem, not the solution - Thursday, 28 April 2022 at 18:00 CEST
Lessons from a failed startup
Introduction - Thursday, 28 April 2022 at 18:00 CEST
A little announcement
Thursday, 7 April 2022 at 18:00 CEST
Transparent memoisation in Haskell with MemoTries
Friday, 7 January 2022 at 17:30 CET
Laziness in Haskell
Thursday, 6 January 2022 at 18:00 CET
Meeting structure
Friday, 17 September 2021 at 09:00 CET
What kind of meetings are you having?
Monday, 13 September 2021 at 09:00 CET
Overcoming writer's block
Monday, 6 September 2021 at 18:00 CET
I miss unconferences
Thursday, 26 August 2021 at 18:00 CEST
Test-driven development in three easy steps
Monday, 16 August 2021 at 21:00 CEST
Truly great CI/CD
Wednesday, 11 August 2021 at 19:00 CEST
I contain multitudes
Thursday, 5 August 2021 at 18:30 CEST
What to refactor
Monday, 2 August 2021 at 18:00 CEST
One Weird Trick To Improve Development Culture
Thursday, 27 May 2021 at 20:30 CEST
You Could Have Invented Booleans
Thursday, 20 May 2021 at 18:00 CEST
Running Agda with Nix
Thursday, 6 May 2021 at 18:00 CEST
All Problems Are Hard
Saturday, 1 May 2021 at 16:30 CEST
Thirty-two
Thursday, 4 February 2021 at 20:00 CET
talks
Smoke: Rewriting a Ruby project in Haskell for fun and type safety
Thursday, 30 July 2020
Untriggered traps in zsh
Thursday, 9 July 2020 at 18:00 CEST
Smoke v2.1 is out!
Tuesday, 1 October 2019 at 17:00 BST
What to expect in an Interview Technical Test
Wednesday, 12 June 2019 at 17:00 BST
Mean Time To Recovery, as a lifestyle
Tuesday, 28 May 2019 at 17:00 BST
Teaching a Machine to Code, at NewCrafts Paris 2019
Tuesday, 21 May 2019 at 17:00 BST
Running Swift without Xcode
Monday, 28 January 2019 at 17:00 GMT
talks
Plz, respect ur data
Saturday, 24 November 2018
Plz, Respect Ur Data
Friday, 23 November 2018 at 17:00 GMT
Functional Reactive Serverless Architecture
Tuesday, 17 July 2018 at 20:00 BST
Chet Hendrickson, on the craft of software development
Monday, 25 June 2018 at 17:00 BST
Teaching a Machine to Code, at Joy of Coding 2018
Tuesday, 12 June 2018 at 17:00 BST
The Five Stages Of Agile Transformation
Tuesday, 15 May 2018 at 17:00 BST
Going Static
Monday, 30 April 2018 at 17:00 BST
A Continuous Flow Of Coffee
Wednesday, 31 January 2018 at 08:00 GMT
Amdahl's Corollary, For Teams
Wednesday, 24 January 2018 at 08:00 GMT
The Decentralised Web is the Client-Driven Web
Wednesday, 17 January 2018 at 08:00 GMT
Twenty-Nine
Wednesday, 10 January 2018 at 08:00 GMT
City Planning
Wednesday, 3 January 2018 at 08:00 GMT
They
Wednesday, 27 December 2017 at 08:00 GMT
I Promise I'll Call You Back
Wednesday, 20 December 2017 at 08:00 GMT
Public Speaking Is Hard
Friday, 15 December 2017 at 08:00 GMT
You Don't Need To Rebase
Wednesday, 6 December 2017 at 08:00 GMT
No Computers
Wednesday, 22 November 2017 at 08:00 GMT
Facilitating Better Code Reviews
Friday, 3 November 2017 at 08:00 GMT
Teach Me BDD
Wednesday, 18 October 2017 at 08:00 BST
WebOps Workshop
Wednesday, 11 October 2017 at 08:00 BST
More like Hask-Hell LOL
Wednesday, 31 May 2017 at 08:30 BST
Player Characters
Monday, 8 May 2017 at 08:30 BST
Docker, Part Seventeen: Continuous Deployment
Tuesday, 25 October 2016 at 08:00 BST
Lean, Reactive Event-Sourcing
Friday, 14 October 2016 at 08:00 BST
#SoCraTesUK, Buzzfeed Edition
Tuesday, 7 June 2016 at 08:00 BST
Docker, Part Sixteen: Logging
Tuesday, 31 May 2016 at 08:00 BST
Isolating Gems With RVM
Thursday, 12 May 2016 at 08:00 BST
Too Much Work In Progress
Tuesday, 10 May 2016 at 08:00 BST
Ninja Pairing
Monday, 18 April 2016 at 08:00 BST
Three Months
Friday, 1 April 2016 at 08:00 BST
Docker, Part Fifteen: Securing Your Containers
Thursday, 31 March 2016 at 08:00 BST
Docker, Part Fourteen: Behave Like A Process
Wednesday, 30 March 2016 at 08:00 BST
Docker, Part Thirteen: The Twelve-Factor App
Tuesday, 29 March 2016 at 08:00 BST
Language-Agnostic Test Cases
Thursday, 24 March 2016 at 08:00 GMT
The Three Laws of Project Management
Wednesday, 23 March 2016 at 08:00 GMT
Making a calculator with bash and sed
Tuesday, 22 March 2016 at 08:00 GMT
Toggling browser elements without JavaScript
Monday, 21 March 2016 at 08:00 GMT
Cleanliness
Friday, 18 March 2016 at 08:00 GMT
Docker, Part Twelve: Cleaning House
Thursday, 17 March 2016 at 08:00 GMT
Docker, Part Eleven: The Guts Of Docker Compose
Wednesday, 16 March 2016 at 08:00 GMT
Docker, Part Ten: Docker Compose
Tuesday, 15 March 2016 at 08:00 GMT
Docker, Part Nine: Scripted Deployment
Monday, 14 March 2016 at 08:01 GMT
Building Is The Job Of The Compiler
Friday, 11 March 2016 at 08:00 GMT
Why Maven?
Thursday, 10 March 2016 at 08:00 GMT
Finatra and Maven
Wednesday, 9 March 2016 at 08:00 GMT
Unless You Have A $PAGER
Tuesday, 8 March 2016 at 08:00 GMT
Docker, Part Eight and a Half: docker volume
Monday, 7 March 2016 at 08:00 GMT
Docker, Part Eight: Turn Up The Volume
Friday, 4 March 2016 at 08:00 GMT
Docker, Part Seven: Start Talking
Thursday, 3 March 2016 at 08:00 GMT
Interlude: The Tiniest Web Service
Wednesday, 2 March 2016 at 08:00 GMT