2024 Book notes: The HP Way Fri, 16 Aug 2024 Book notes: Tidy First? Wed, 7 Aug 2024 Book notes: Unbundling the Enterprise Wed, 31 Jul 2024 Book notes: Who Does What By How Much? Tue, 9 Jul 2024 "do" for a small speed up of your REPL feedback Wed, 12 Jun 2024 Book notes: The Ascetic Programmer Wed, 29 May 2024 Book notes: Flow Engineering Wed, 1 May 2024 Book notes: Continuous Discovery Habits Wed, 28 Feb 2024 Book notes: The Staff Engineer's Path: A Guide for Individual Contributors Navigating Growth and Change Wed, 24 Jan 2024 Book notes: Deming's Journey to Profound Knowledge: How Deming Helped Win a War, Altered the Face of Industry, and Holds the Key to Our Future Thu, 4 Jan 2024
2023 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 Sep 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
2022 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
2021 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 Sep 2021 Book notes: The Subtle Art of Not Giving a F*ck Wed, 8 Sep 2021 Book notes: Designing Data-Intensive Applications Wed, 1 Sep 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
2020 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 Sep 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
2019 Apache Http Client and Asynchronous HTTP client timeouts explained in pictures Wed, 11 Dec 2019 Book notes: Becoming a Technical Leader Wed, 27 Nov 2019 Java with a Clojure mindset Wed, 6 Mar 2019 Architecture decisions: the belligerent contrarian and the rule of three Wed, 27 Feb 2019 Other reasons for TDD: Baby steps, ROI, Evil Manager Syndrome and Watching the watchmen Mon, 18 Feb 2019 Kodsnack podcast: The immediate feedback loop Thu, 10 Jan 2019
2018 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
2017 How to Docker Compose a developer environment: an open source example Mon, 25 Sep 2017 Swagger Search: Finding an endpoint in your microservice primordial soup Mon, 18 Sep 2017 Why to Docker Compose a calm environment Fri, 1 Sep 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
2016 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