software, simply


Book notes: Wiring the Winning Organization Mon, 27 Nov 2023
Book notes: Code that fits in your head: Heuristics for Software Engineering Wed, 8 Nov 2023
Book notes: Wrong fit, Right fit: Why How We Work Matters More Than Ever Wed, 25 Oct 2023
Book notes: Never split the difference Sat, 16 Sept 2023
Book notes: Inspired: How to Create Tech Products Customers Love Thu, 11 May 2023
The Taxman notification: an IT horror story Thu, 27 Apr 2023
Book notes: High Output Management Wed, 12 Apr 2023
Client-side good practices when building third party API integrations Wed, 29 Mar 2023
Notes on book notes Wed, 15 Mar 2023
Book notes: Building Microservices - Second edition Tue, 24 Jan 2023


Book notes: Investments Unlimited, a novel about devops, security, audit compliance, and thriving in the Digital Age Wed, 31 Aug 2022
Book notes: Remote Team Interactions Workbook: Using Team Topologies Patterns for Remote Working Wed, 20 Jul 2022
Book notes: An Elegant Puzzle: Systems of Engineering Management Wed, 6 Jul 2022
Application configuration good practices Wed, 29 Jun 2022
Schrödinger's functions: not the pure functions your are looking for Wed, 1 Jun 2022
Book notes: Design It!: From Programmer to Software Architect Wed, 4 May 2022
Are you asking too much from your team/tech lead? Wed, 20 Apr 2022
Book notes: Software Architecture: The Hard Parts Wed, 30 Mar 2022
But life had other plans ... Wed, 23 Mar 2022
CTO last day: reflections, mistakes, and some learnings Wed, 9 Mar 2022
Book notes: Staff Engineering: Leadership beyond the management track Wed, 23 Feb 2022
Book notes: Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith Wed, 9 Feb 2022
The self-inflicted denial-of-service (DDoS) attack Wed, 2 Feb 2022
Book notes: Turn the Ship Around! Wed, 12 Jan 2022


My personal path to Senior developer ... and beyond! Wed, 15 Dec 2021
Book notes: Sooner, safer, happier: Antipatterns and patterns for business agility. Wed, 1 Dec 2021
Book notes: Fundamentals of Software Architecture Wed, 17 Nov 2021
Implementing DORA key software delivery metrics Wed, 10 Nov 2021
Book notes: Grokking Simplicity Wed, 15 Sept 2021
Book notes: The Subtle Art of Not Giving a F*ck Wed, 8 Sept 2021
Book notes: Designing Data-Intensive Applications Wed, 1 Sept 2021
Book notes: Zen & the Art of Motorcycle Maintenance Wed, 4 Aug 2021
Book notes: Thinking in Systems. Wed, 21 Jul 2021
First ever resilience test Wed, 14 Jul 2021
CTO day 7: Lucky Lotto, chaos engineering but for teams Wed, 30 Jun 2021
Book notes: Shape Up: Stop Running in Circles and Ship Work that Matters. Wed, 16 Jun 2021
CTO day 6: Building bridges with a "Week of little things" Thu, 10 Jun 2021
Book notes: Unlearn: Let Go of Past Success to Achieve Extraordinary Results Wed, 2 Jun 2021
CTO day 5: Building bridges with "Adopt a developer" Wed, 26 May 2021
Book notes: 97 Things Every Engineering Manager Should Know Wed, 24 Mar 2021
Book notes: Value Stream Mapping Wed, 10 Mar 2021
The feeling of Trunk-Based Development Wed, 3 Mar 2021
Book notes: A Philosophy of Software Design Wed, 24 Feb 2021
CTO day 4: Team building with "I dare you" challenge Wed, 17 Feb 2021
Book notes: Project to Product Wed, 10 Feb 2021
Prometheus in a Clojure stack: Duct, Jetty, Compojure/Reitit and Hugsql Wed, 3 Feb 2021
Book notes: Team Topologies Wed, 20 Jan 2021
Continuous improvement with Toyota Kata Wed, 6 Jan 2021
Book notes: Level Up Agile with Toyota Kata Wed, 6 Jan 2021


CTO day 3: Meeting "The Business" Wed, 16 Dec 2020
CTO day 2: downsizing the team Wed, 2 Dec 2020
Course notes: Time Management for Technical Leaders Wed, 25 Nov 2020
CTO day 1: first steps and hiring framework Wed, 11 Nov 2020
Where TDD falls short, find yourself a good REPL Wed, 16 Sept 2020
Book notes: Good Strategy, Bad Strategy Mon, 31 Aug 2020
Book notes: Elements of Clojure Wed, 12 Aug 2020
Book notes: The Manager's Path Wed, 22 Jul 2020
Book notes: The Pragmatic Programmer, 20th Anniversary Edition Wed, 8 Jul 2020
Book notes: Implementing Lean Software Development Wed, 24 Jun 2020
You dont believe in clean code Wed, 10 Jun 2020
In case of doubt, ask for clarification Wed, 15 Apr 2020
Book notes: No-Nonsense Leadership Wed, 1 Apr 2020
Virtual backgrounds for remote Software Developers Mon, 16 Mar 2020
Book notes: The Lean Mindset Wed, 4 Mar 2020
Authorization service handover talk Wed, 19 Feb 2020
Book notes: The Unicorn Project Wed, 5 Feb 2020
Expectations for GOTO Oslo conference Wed, 29 Jan 2020
Book notes: Accelerate, building and scaling high performing technology organizations Wed, 22 Jan 2020
Software development and LEGO blocks Wed, 15 Jan 2020
Should I introduce an API Gateway in my workplace? Wed, 8 Jan 2020


RocksDB range queries in KafkaStream: dealing with big results Mon, 17 Dec 2018
If I ever write a book ... Mon, 17 Dec 2018
REPL driven development: immediate feedback for you backend code Mon, 26 Nov 2018
How to do a Java/JVM heap dump in Kubernetes Tue, 20 Nov 2018
How to convince your company to use Clojure Tue, 16 Oct 2018
In KafkaStreams, when to choose between a KTable or a KStream? Mon, 8 Oct 2018
Kubernetes explained in pictures: StatefulSets, Persistent Volumes and Headless Services Sun, 22 Jul 2018
Kubernetes explained: the theme park analogy: auto scaling, taints and affinities Mon, 16 Jul 2018
Kubernetes explained in pictures: the theme park analogy Mon, 9 Jul 2018
Habits of efficient developers - WeAreDevelopers 2018 Wed, 4 Jul 2018
A more efficient developer: Go and have a rest Mon, 2 Jul 2018
Per user rate limiting with OpenID connect and Istio in Kubernetes Thu, 31 May 2018
Habits of efficient developers - slides Thu, 17 May 2018
Did you read my email? Mon, 30 Apr 2018
Kafka, GDPR and Event Sourcing - Implementation details Wed, 11 Apr 2018
Kafka, GDPR and Event Sourcing Wed, 11 Apr 2018
Kafka, distributed coordination and the actor model Mon, 9 Apr 2018
Production data never lies Tue, 20 Mar 2018
Easing open source contributions with Docker Tue, 13 Feb 2018


How to Docker Compose a developer environment: an open source example Mon, 25 Sept 2017
Swagger Search: Finding an endpoint in your microservice primordial soup Mon, 18 Sept 2017
Why to Docker Compose a calm environment Fri, 1 Sept 2017
Applying stability patterns: a case study - Devoxx PL 2017 Thu, 3 Aug 2017
A more efficient developer: write programs for yourself Thu, 3 Aug 2017
A more efficient developer: master your IDE Wed, 2 Aug 2017
A more efficient developer: disable notifications Tue, 1 Aug 2017
Error budget: Google's solution for innovating at a sustainable pace Sun, 16 Jul 2017
Atoms, delays and side effects: a resource management idiom for Clojure Wed, 21 Jun 2017
Delay: Clojure's forgotten concurrency primitive Mon, 12 Jun 2017
Testing or Monitoring? MTBF or MTTR? Make your choice! Mon, 5 Jun 2017
Clojure's most important lesson Wed, 24 May 2017
Automating resilience testing with Docker and Property Based Testing - Devoxx UK 2017 Sat, 20 May 2017
Joins on stateful stream processing using Kafka Streams' KTables and GlobalKTables Sun, 7 May 2017
Documenting your architecture: Wireshark, PlantUML and a REPL to glue them all. Thu, 6 Apr 2017
Kerberos explained in pictures Sun, 26 Mar 2017
Proof of concept using KafkaStreams and KTables - implementation notes, gotchas and Docker Compose example Fri, 6 Jan 2017
Proof of concept using KafkaStreams and KTables Thu, 5 Jan 2017


Why Java? Why Clojure? Wed, 14 Dec 2016
Automating resilience testing with Clojure and Docker - EuroClojure 2016 video Sat, 26 Nov 2016
The boy who cried wolf, an IT tale Mon, 21 Nov 2016
Automating resilience testing with Clojure and Docker - EuroClojure 2016 slides Mon, 14 Nov 2016
Good tests, Bad tests Sun, 6 Nov 2016
REPL Driven Development - Voxxed Days Belgrade 2016 video Sat, 22 Oct 2016
The broken promise of static typing Sun, 19 Jun 2016
The tragedy of 100% code coverage Wed, 18 May 2016
Logging levels: the wrong abstraction. Tue, 5 Apr 2016
Lines of code actually matters. Thu, 17 Mar 2016