RSSAmplifier

Blog

Ryan Madden

Recent content on Ryan Madden

ryanmadden.netRSS feed ↗42 posts

Latest posts

Bazel's time has come

With regard to builds, a cohort of companies using agents are leaping across the Bazel ROI boundary. The way that software companies tend to grow and evolve is that they start out with a few people mostly using ecosystem-default tools for everything, including their build system. New projects are small so all their builds are pretty quick so the build system is not much of a concern. There is no…

We got Claude Code playing Factorio

Previously: Faketorio: an agent testbed and Towards beating Factorio autonomously A few weeks ago, my friend Sam and I hooked Claude Code up to Factorio and let it try to beat the game. This is how we did it and what happened. Setting it up To play Factorio, we needed to give Claude Code an interface for the game, some way to read the game state and take actions. We looked at a couple of options:

Towards beating Factorio autonomously

I’ve recently become enchanted with the idea of beating Factorio autonomously. Besides tool-assisted speedruns (which script the entire game on a known map layout) there has not yet been much progress in autonomous play for Factorio. The leading agent-based system has successfully produced moderate-complexity items, but only in a ‘lab-play’ environment which removes many constraints of the full…

Faketorio: an agent testbed

Faketorio ( GitHub ) is a toy agent sandbox that I built this weekend with Codex. As the name suggests, it is based on the very early stages of Factorio . The world is constrained to a 50x50 grid with water, iron, stone, and coal and the game supports burner drills, burner inserters, transport belts, stone furnaces, and stone chests. The game is written in vanilla TypeScript and runs in the…

Software engineering and AI questions

I want to take a minute, amidst the Claude Opus 4.6 and GPT-5.3-Codex hysteria , to capture some of the currently-open questions about AI progress and its impact on software engineering. There’s uncertainty at lots of different levels about what the future will look like, and good arguments for very different outcomes. This is partly for my reference (as these questions keep coming up it’s…

Things I Learned at Google: Writing Your Perf

This is part four of a multi-part series on lessons I learned while working as a software engineer at Google. If you’d like to start at the beginning, check out part zero . Like many companies, Google has a semi-annual performance review cycle. Also like many companies, this process begins with SWEs documenting their achievements over the last six months (or sometimes year). I’ve gone through this…

Contra Matt Shumer on AI

Disclaimer: These are my views, not my employer’s; I have no relevant non-public information. Last week, Matt Shumer published ‘Something Big Is Happening’ wherein he reviewed the recent progress in AI, forecasted future developments, and warned industry outsiders about the potential impact (especially to their careers). This post garnered a lot of attention across X , LinkedIn , and (for some…

Highlights from the Army's leadership philosophy

Most companies have little interesting to say on the subject of leadership. The guidance supplied by Corporate America in its publications, job ladders, trainings, and so forth is almost without exception inexpressive and imprecise, unlikely to provoke an interesting thought let alone excellence. What would comprehensive and specific leadership guidance for a large organization even look like? The…

Daniel Yankelovich's "The New Odds" Transcript

What follows is a transcript of Daniel Yankelovich’s speech “The New Odds”, given at the Marketing Strategy Conference of the Sales Executives Club of New York on October 15th, 1971. The speech has historical significance as the origin of the term ‘McNamara fallacy’ as well as the most popular quote about the fallacy. I acquired a copy of the original transcript ( PDF ) from the UCSD…

The memetic spectrum and you

The actual definition of a ‘meme’ is an idea that is optimized to spread from person to person. Most people are familiar with internet memes which are exactly this: images, videos, and behaviors that are replicated, remixed, and shared as a result of their humor or other qualities. Some people know that the term ‘meme’ was coined by Richard Dawkins. An antimeme is the opposite of a meme: it is an…

How to build closed-source software

Teams building closed-source software benefit from working in a high-coordination, high-obligation environment. They can plan, delegate, and execute tasks efficiently by relying on the structure and continuity provided by their organization. What software engineering practices will make such a team as effective as possible? And how do those practices differ from the ones used in open-source…

I found the famous McNamara fallacy quote

Daniel Yankelovich coined the term ‘ McNamara fallacy ’ on October 15, 1971 during a speech titled ‘The New Odds’ at the eleventh annual Marketing Strategy Conference of the Sales Executives Club of New York. This speech is the origin of the term ‘McNamara fallacy’ and the original source of his famous McNamara fallacy quote: Here is what happens when the McNamara discipline is applied too…

'Cattle, not pets' for code

In the 2010s, cloud computing enabled a new way of managing servers famously characterized as ‘cattle, not pets’. The ability to cheaply and efficiently provision and release compute resources created a paradigm shift: servers which were once discrete, expensive, and carefully-managed physical resources became disposable, interchangeable abstractions managed at arms-length. In 2025, LLMs seem…

On Average, Across Large Groups of People

Broad generalizations (‘people don’t like being interrupted’, ‘men are taller than women’) invite a certain type of tiresome objection where the statement is disputed based on anecdote (‘that doesn’t bother me’, ‘my best friend is six foot four’). This creates an unfortunate choice: either preempt the objection by prefacing any such statement with a longwinded disclaimer about distributions and…

Is everyone ready to code online now?

There are a lot of advantages to a ‘thin client’ developer experience where your code is edited and run on a VM somewhere in the cloud. You can scale the memory of your machine up as needed, far beyond what is feasible to pack into a MacBook Pro. Your remote file system can be made available to other developer tools to enable a myriad of convenient integrations. You can do away with the awkward…

Don't specify percentage change ambiguously

When describing a change in a percentage, always be clear whether you are referring to percentage change or percentage point change since there is usually a large difference between these two interpretations. For example, if the conversion rate of your marketing funnel was 20% last month and 21% this month, then the conversion rate has increased one percentage point (sometimes abbreviated as…

All the version control you need

“The limits of my language mean the limits of my world.” - Ludwig Wittgenstein Git is great for building open-source software – its model of version control gels wonderfully with the needs of open-source maintainers and contributors. Unfortunately, the same cannot be said for teams building closed-source software. These teams have different needs for their version control and different…

Git is for open source

Happy 20th, Git! Git works great for building open source software. No surprise, since it was originally created to develop the Linux kernel. Why is it a great fit? How does Git’s version control model align with the typical patterns of open source development? Open source projects typically operate with a hub and spoke model: a project owner or core group of maintainers manages the canonical…

We can't ship junk

I am obsessed with an answer that Steve Jobs gave in a 2007 press conference. I recommend watching the video but I’ve transcribed the exchange here: Hi, I’m Molly Wood from CNET. I have a question, actually, about market share, which is sort of what we’re getting at. There has been a suggestion that, because of pricing and design, Apple tends to appeal to kind of a smaller elite rather than…

How good should your enterprise software be?

A lot of businesses make a lot of money selling software that users hate. What the hell! That doesn’t make any sense and also I don’t like it. I like using software that makes me happy and I wish I lived in a world where that was directly and obviously incentivized. Why isn’t it? The basic explanation as I understand it is that, for enterprise software, the people who buy the software and the…

Benefits of playing chess

Chess enjoys a unique reputation as a ‘thinking person’s game’. Non-players often associate chess skill with overall intelligence, or even believe that chess practice can increase someone’s IQ. Despite this, I’m not aware of any evidence that playing chess makes people generally smarter or improves problem-solving skills in a generalized (and measurable) way. However, that’s not to say that chess…

A useful model of cognition

“A moment’s thought would have shown him. But a moment is a long time, and thought is a painful process.” - A. E. Housman Having an intuition for the way your brain thinks can help you learn more quickly, avoid cognitive biases, and understand the reasoning of others. However, building this intuition is a challenge. Because most of our ‘thought processes’ are subconscious, we have a limited…

Book Review: Paradoxes of Rationality and Cooperation

What is rational choice? Paradoxes of Rationality and Cooperation (1985) is an anthology of papers that examine this question through the lens of two classic thought experiments: the Prisoner’s Dilemma and Newcomb’s Problem. Both of these decision problems present challenges for conventional notions of rationality and raise difficult questions about the role of causality in agent reasoning. Beyond…

How to Tell Your Users You Hate Them

Look, I get it – you hate your users! You simply do not care about them, their feelings, or their experience using your product. And that’s cool! But sometimes users act like they don’t know that, like you’re going to go out of your way to help them or make their lives easier or something. So annoying! Here’s how you can get the message across and put a stop to all that.

Things I Learned at Google: Design Docs

This is part three of a multi-part series on lessons I learned while working as a software engineer at Google. If you’d like to start at the beginning, check out part zero . Part four is here Essentially, design docs describe a plan for solving a problem. Teams at Google generally require engineers to write design docs before any significant change (or set of changes) to a product or service.…

Things I Learned at Google: Code Review

This is part two of a multi-part series on lessons I learned while working as a software engineer at Google. If you’d like to start at the beginning, check out part zero . Part three is here . Code review is a cornerstone of development at Google; almost every human-authored change to the codebase is manually reviewed by at least one other person before submission. If you’re curious about the fine…

Things I Learned at Google: Programming Over Time

This is part one of a multi-part series on lessons I learned while working as a software engineer at Google. If you’d like to start at the beginning, check out part zero . Part two is here . From the preface of Software Engineering at Google : One key insight we share in this book is that software engineering can be thought of as “programming integrated over time.” What practices can we introduce…

Things I Learned at Google: Prologue

This is part zero of a multi-part series on lessons I learned while working as a software engineer at Google. If you’d like to skip the biography and get to the content, part one is here . Disclaimer Everything that follows is just my opinion, informed by a seven (and counting) year stint at Google at the beginning of my career. Any advice is specific to me and my experience – it may not…

Rules for Grief

At a difficult time in my life I discovered three rules which helped me to manage my thoughts and emotions. If you are dealing with something similar then perhaps they can be useful to you. 1. It is okay to feel how you are feeling Accept whatever emotions you are feeling in the current moment. Regardless of the time or place, there is no ‘wrong’ way to feel. This means not judging yourself for…

Antipatterns of Large Organizations

This is a brief discussion of three patterns that limit the success of large organizations: the McNamara fallacy, the Peter principle, and the Preventable Problem Paradox. In organizations larger than a few dozen people[0], instances of these concepts appear naturally as the consequence of common incentive structures. Care must be taken to guard against them when designing or leading such an…

Proximity Exists in N-Dimensional Space

This is a trivial math point but I’ve found it’s a useful tool for analysis in other areas. Most high school students are familiar with the Pythagorean theorem which (by way of a right triangle) allows you to calculate the distance between points in a two-dimensional space. Given point A with coordinates (x 1 , y 1 ) and point B with coordinates (x 2 , y 2 ), the distance between the points can be…

plz 10

Web3 In case your Twitter feed has not succumbed to the Web3 hype wave, I will quote a reasonable definition from Slate : Web3 refers to a potential new iteration of the internet that runs on public blockchains, the record-keeping technology best known for facilitating cryptocurrency transactions. The appeal of Web3 is that it is decentralized, so that instead of users accessing the internet…

plz 9

Mobile Apps I want to tell you a story about your phone and the software that runs on it. I’m not talking about the operating system — I’m talking about the programs your phone runs so that you can stream music, order food, and read the news. You can tell this story a couple ways, but my version will focus on iOS because the Android ecosystem a) has minority market share in the U.S. (despite…

plz 8

Inside Alright we really have to talk about Bo Burnham’s Inside . Well, I really have to, at least. Inside is a 90-minute… comedy special? Movie? Something? It came out on Netflix at the end of May. The premise is that Bo made the entire thing himself during the pandemic: he wrote it, shot it, and edited it inside a one-room building in his backyard. It’s like a mother in law house, a tiny studio…

plz 7

Wunderlist What happened to Wunderlist? Back in 2011, a Berlin company named 6Wunderkinder released the first version of a to-do list iOS app called Wunderlist based on their desktop application by the same name. Over the next few years the company focused mainly on the mobile version, adding features and tweaking the UI. By the end of 2014 the app had over 10 million users. Six months later, in…

plz 6

Tether About two months ago we talked all about Bitcoin . I presented some background on the currency and the way it functions, as well as some aspects of Bitcoin and the surrounding ecosystem that make me skeptical. I identified two systemic risks with Bitcoin: 1) that a double-spending attack (or ‘51% attack’) could destroy confidence in the currency and 2) that a popular exchange (e.g.…

plz 5

Substack Substack is a blogging and email newsletter platform. It allows users to host written content and distribute it to subscribers via email. It also supports paid subscriptions, from which it collects a 10% fee. Anyone can create a Substack account and set the price for their work as they see fit. The message on Substack’s ‘about’ page is direct:

plz 4

Google v. Oracle A nice thing about computer programs is that they are composable. You can write a program that does one specific task and then you can use that first program to perform the task as part of many other programs. For example, let’s say that you like to make video games. You might write a program that renders pixels on the screen based on some formatted input. Every time a new input…

plz 3

Bitcoin Alright, fine, here we go: A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending…

plz 2

A $500,000,000 checkbox Oops : A federal judge has ruled that Citibank isn’t entitled to the return of $500 million it sent to various creditors last August. Kludgey software and a poorly designed user interface contributed to the massive screwup. Citibank was acting as an agent for Revlon, which owed hundreds of millions of dollars to various creditors. On August 11, Citibank was supposed…

plz 1

What is going on here I have thought for a while that I should write more. Not about anything in particular, I just think that writing will be more important for me as time goes on and practicing occasionally (beyond the technical writing I do at my job) would be a good, minimal sort of investment to make in preparing for that future. So this is that. Also, I love reading Matt Levine’s newsletter…

Adapting Elo for Relative Player Ranking in Team-Based Games

In the early-to-mid 2010s a drinking game called Caps gained prominence at Northwestern University. This post is a result of my efforts to quantitatively identify elite Caps players as part of an iOS app called SplashTrack.