Blog archive — Christopher Meiklejohn
Posts grouped by topic. ← Home
Newest
Most recent blog posts.
- 01 Apr 2026 Software Engineering Is Becoming Civil Engineering
- 30 Mar 2026 Multi-Agent Systems Have a Distributed Systems Problem
- 29 Mar 2026 The Show Is Happening Right Now and Nothing Works
- 27 Mar 2026 Memory Isn't Learning
- 23 Mar 2026 Finding Safe Food on the Road
- 22 Mar 2026 Teaching Claude to QA a Mobile App
- 20 Mar 2026 What Building With Claude Actually Looks Like
- 08 Mar 2026 Why I'm Building Zabriskie
- 08 Mar 2026 Claude Tested Everything Except the One Thing That Mattered
- 01 Mar 2026 Ten Years of Lasp
- 17 Feb 2026 I Built a Social App in a Week with Claude Code
- 09 Sep 2023 Filibuster 2.0: Byzantine Fault Injection with Hardcoded Fault Values
- 08 Sep 2023 Filibuster 2.0: Coaching UI
- 07 Sep 2023 Filibuster 2.0: Byzantine Fault Injection with Arbitrary Faults
- 06 Sep 2023 Filibuster 2.0: Computing API coverage of a Microservice Application
- 05 Sep 2023 Filibuster 2.0: Microservice Linter, Multiple Invocations to the Same RPC Method
- 04 Sep 2023 Filibuster 2.0: Microservice Linter, Requests become part of a Response
- 03 Sep 2023 Filibuster 2.0: Microservice Linter, Redundant RPCs
- 02 Sep 2023 Filibuster 2.0: Improved UI
- 02 Sep 2023 Filibuster 2.0: Healthcheck your Functional Test Suite with API Coverage
- 01 Sep 2023 Filibuster 2.0: Redis Fault Injection
- 31 Aug 2023 Filibuster 2.0: Introducing the new version of Filibuster
- 30 Aug 2023 Filibuster 2.0: Developer Tooling as a Childhood Dream
- 27 Aug 2023 Reflecting on 10 years of Blogging, Research, and a (very) long Ph.D.
- 27 Aug 2023 Nested RPCs with Filibuster's UX
Zabriskie / AI
Building Zabriskie, writing about AI tools, workflows, and building with large language models.
- 01 Apr 2026 Software Engineering Is Becoming Civil Engineering
- 30 Mar 2026 Multi-Agent Systems Have a Distributed Systems Problem
- 29 Mar 2026 The Show Is Happening Right Now and Nothing Works
- 27 Mar 2026 Memory Isn't Learning
- 23 Mar 2026 Finding Safe Food on the Road
- 22 Mar 2026 Teaching Claude to QA a Mobile App
- 20 Mar 2026 What Building With Claude Actually Looks Like
- 08 Mar 2026 Why I'm Building Zabriskie
- 08 Mar 2026 Claude Tested Everything Except the One Thing That Mattered
- 17 Feb 2026 I Built a Social App in a Week with Claude Code
Short Posts, Thoughts, Reflections
Reflections I've had on building research software, industrial software development, in the context of my Ph.D. research.
- 27 Aug 2023 Nested RPCs with Filibuster's UX
- 27 Aug 2023 Testing Applications Resilience in the Presence of Service Tiers
- 23 Aug 2023 Testing Applications for Resilience Bugs vs Testing Applications for Resilience
- 13 Aug 2023 Revisiting: Chaos Engineering or Software Testing?
- 12 Aug 2023 Building Tech-Transferrable Research Software
- 10 Aug 2023 Chaos Engineering or Software Testing?
Filibuster 2.0 Features
Short posts about new features in Filibuster 2.0, the next major release of Filibuster.
- 09 Sep 2023 Filibuster 2.0: Byzantine Fault Injection with Hardcoded Fault Values
- 08 Sep 2023 Filibuster 2.0: Coaching UI
- 07 Sep 2023 Filibuster 2.0: Byzantine Fault Injection with Arbitrary Faults
- 06 Sep 2023 Filibuster 2.0: Computing API coverage of a Microservice Application
- 05 Sep 2023 Filibuster 2.0: Microservice Linter, Multiple Invocations to the Same RPC Method
- 04 Sep 2023 Filibuster 2.0: Microservice Linter, Requests become part of a Response
- 03 Sep 2023 Filibuster 2.0: Microservice Linter, Redundant RPCs
- 02 Sep 2023 Filibuster 2.0: Improved UI
- 02 Sep 2023 Filibuster 2.0: Healthcheck your Functional Test Suite with API Coverage
- 01 Sep 2023 Filibuster 2.0: Redis Fault Injection
- 31 Aug 2023 Filibuster 2.0: Introducing the new version of Filibuster
- 30 Aug 2023 Filibuster 2.0: Developer Tooling as a Childhood Dream
DoorDash Engineering
Articles I've written for the DoorDash Engineering blog.
Service-level Fault Injection Testing
Articles I've written about Service-level Fault Injection Testing and Filibuster.
- 27 Aug 2023 Reflecting on 10 years of Blogging, Research, and a (very) long Ph.D.
- 02 Jun 2022 Extending Filibuster to Test Redis
- 19 Mar 2022 Understanding why Resilience Faults in Microservice Applications Occur
- 17 Mar 2022 What is Chaos Engineering?
- 14 Oct 2021 Dynamic Reduction: Optimizing Service-level Fault Injection Testing With Service Encapsulation
- 08 Oct 2021 Finding Resilience Issues with Filibuster: A Tutorial
- 06 Oct 2021 What is Service-level Fault Injection Testing?
- 02 Oct 2021 Researching Microservice Resilience: Lack of Corpora
Food
Articles I've written about food allergies, intolerances, recipes and general food horror.
- 09 Mar 2021 Food: A Bittersweet Affair
Teaching
Articles I've written about teaching.
Macrometa
Articles I've written for the Macrometa blog.
- 16 Aug 2019 Implementing Coordination Free Convergence of Data for Edge Computing
- 13 Aug 2019 Motivating CRDTs for the Edge
Stateful Serverless
Building stateful serverless solutions.
Partisan
Building the next generation of high-performance, fault-tolerant distributed runtimes.
Programming Models and Languages for Distributed Computing
Work in progress seminar curriculum on distributed computing and programming languages.
- 15 Dec 2018 High performance, exactly-once, failure oblivious distributed programming with AMBROSIA
- 16 Nov 2018 Guesstimate: A Programming Model for Collaborative Distributed Systems
- 15 Nov 2018 A CAPable Distributed Programming Model
- 14 Nov 2018 Inconsistent, Performance-bound, Approximate (IPA)
- 08 Aug 2016 ARGUS
- 31 Jul 2016 Programming Language in the Sky (PLITS)
- 12 Apr 2016 Remote Procedure Call
- 06 Mar 2016 Hermes
- 06 Mar 2016 Emerald
- 04 Mar 2016 Promises
SyncFree / Lasp
Research related to the SyncFree project on large-scale synchronization-free computation.
- 08 Mar 2019 Applied Monotonicity: A Brief History of CRDTs in Riak
- 04 Mar 2016 Lasp and the Google Summer of Code 2016
- 01 Nov 2015 Thesis Proposal, Draft
- 27 Oct 2015 A Certain Tendency Of The Database Community
- 17 Oct 2015 Programming Models, Part 6: Leaderboard
- 27 Feb 2015 Seminars on Lasp in March, 2015
- 18 Feb 2015 Highly Distributed Computations Without Synchronization
- 10 Jan 2015 Programming Models, Part 5: Ad Counter, Part 2
- 21 Dec 2014 Programming Models, Part 4: One Week in Louvain-la-Neuve
- 16 Nov 2014 Programming Models, Part 3: Ad Counter, Part 1
- 01 Oct 2014 Programming Models, Part 2: QuickChecking Derflow
- 28 Sep 2014 Programming Models, Part 1: Try Derflow!
Reading Lists
Reading lists on computer science related topics.
- 22 Jul 2014 Readings in conflict-free replicated data types
- 04 Jan 2014 Readings in linear logic
- 12 Jul 2013 Readings in distributed systems
Verified Vector Clocks
Work towards creating a verified vector clock library in Coq, exported to Erlang for use in Riak.
General
Various blog posts.
- 29 Aug 2019 Mixed-Cluster Versioning: A Story of Capabilities, Erlang and Riak
- 14 Jul 2018 Anatomy of a Glutening
- 19 Apr 2018 Celiac Disease: Debugging Your Own Research Life With Blameful Postmortems
- 01 Jan 2016 2015: A Year in Review
- 03 Sep 2015 Meiklejohn's Razor
- 01 Aug 2015 Moving On, Part 2: Ph.D.
- 28 Jun 2015 Moving On
- 03 May 2015 Orleans, Distributed Virtual Actors for Programming and Scalability Comparison
- 01 Jan 2015 2014: A Year in Review
- 10 Nov 2013 Announcing Proceedings: Distributed Reading Groups
- 31 Oct 2013 Bloom at Wicked Good Ruby 2013
- 15 Oct 2013 Erlang/OTP R16B02 on SmartOS
- 06 Oct 2013 From Ruby To Erlang: An Experience Report
- 11 Jul 2013 LambdaJam 2013: Webmachine Tutorial
- 06 Jul 2013 Guest on the Food Fight show podcast
- 28 Jun 2013 Riak PG: Pruning terminated processes
- 26 Jun 2013 Modified Flume HDFS sink for one to one files
- 24 Jun 2013 Introducing Riak PG: Distributed process groups for Erlang
- 20 Jun 2013 Distributed data structures with Coq: PN-Counters
- 18 Jun 2013 Flume-ng configuration with an HDFS sink
- 13 Jun 2013 Functional reactive programming in JavaScript
- 11 Jun 2013 Distributed data structures with Coq
- 05 Jun 2013 Erlang gproc Failure Semantics
- 03 Jun 2013 Erlang pg2 Failure Semantics