Papers

32 articles · all categories

April 2026

Just Read the Paper

Read more papers. You can learn the latest and greatest in your field in one chill afternoon.

September 2024

The Laws of Software Evolution

Manny Lehman was one of the first to notice that software is never done. It just continues to evolve forever.

July 2024

Why SQL is Forever

Never underestimate the power of good marketing for bad products. NoSQL was fun but SQL is here to stay.

April 2024

43 years of the actor model

The actor model is now part of everyday tooling and ensures concurrency safety. Understanding the principles behind it helps you write less buggy code.

June 2023

Why taming architectural complexity is paramount

Unravel the hidden costs of architectural complexity in software engineering and learn practical strategies to tackle it. Boost productivity, reduce defects, and improve staff retention with insights from an MIT PhD thesis.

May 2023

Two types of complexity and their impact

Complicated code slows down junior devs, while complex systems impact senior devs more. Focus on managing system complexity & dependencies, not just simplifying code.

You can't fix the wrong abstraction

Unlock the secrets to combating architectural complexity in software development and learn to identify and fix the wrong abstraction. Boost productivity, reduce bugs, and retain more staff.

Eight things to know about LLMs

eightthings.pdf is the best paper I've read on what's going on in AI right now and why everyone is excited. Here's my summary.

September 2022

Notes on A Relational Model of Data for Large Shared Data Banks

In 1970 a paper came out that changed the world of business computing. It laid the ground work for modern databases.

July 2022

What makes a great software engineer?

In 2015 a group of researchers asked 59 experienced engineers at Microsoft "What makes a great software engineer?". Here's what they found.

April 2022

Code Review Practices for Refactoring Changes

Do you review refactoring pull requests differently than you do others? An empirical study of OpenStack, an open source cloud platform, says that you do and finds 6 common criteria.

November 2021

Finding unresolved promises in JavaScript

JavaScript is a fantastic server-side language because it's async. That also makes it tricky. 💩 What happens when you swallow errors? Forget to resolve promises? Or run into a number of other anti-patterns

April 2014

Week 20: Making ad-hoc polymorphism less ad hoc

Week 19: Relativity theory and time perception

March 2014

Week 18: the role of diet in periodontal disease

Week 17: What happens when you only eat meat for a year?

February 2014

Week 16: On the criteria to be used in decomposing systems into modules

Week 15: A tutorial on the expressiveness and universality of fold

January 2014

Week 14, heuristic evaluation of user interfaces

Week 13, constructing logic circuits in mammalian cells

Week 12: practical cold boot attacks that will make cryptonerds shit their pants

Week 11, Searching the Internet for evidence of time travelers

December 2013

Week 10, The myriad virtues of Wavelet Trees

Week 9: Life at low Reynold's number

Week 8: What a girl who plays rugby can teach organizational leaders

Week 7: Time, Clocks, and Ordering of Events in a Distributed System

November 2013

Week 6, A query on confirmation

Week 5: Random Structures from LEGO Bricks and Analog Monte Carlo Procedures

Week 4: Tiny insects evolve anuclear neurons

Week 3: Of lion manes and human beards