Ben Congdon
-
When Red Buttons Aren't Enough
On June 12, 2025, most of GCP went offline. This led to downstream outages in a multitude of websites and services, such as Cloudflare, Spotify, OpenAI, Anthropic, Replit, and many others. With a few days of hindsight, GCP published a quite detailed postmortem. Frankly, I’m impressed by the depth of…
Published
-
Why Developer Tools?
I had the realization a year or so ago that much of the high-impact work I’ve done in my career has been related – directly or indirectly – to building developer tooling. I did not plan this, at all, but I’m quite happy to have found impact in this niche. My first job outside of school was writing a…
Published
-
The Models Want to Reason
Since I wrote about COCONUT, Meta’s paper on reasoning in latent space, there’s been a wave in publicly accessible research into reasoning models. The most notable example, which overshadows everything else to the point of feeling like I almost don’t need to mention it as I write this in mid Feb 2025…
Published
-
How I Use AI: Early 2025
Previously: Mid 2024 The landscape of AI tooling continues to shift, even in the past half year. This is not unexpected. This post is an updated snapshot of the “state of things I use”. Tools Work Copilot Edits: This feels roughly 85% as effective as Cursor, but the ability to incorporate enterprise…
Published
-
AI Slop, Suspicion, and Writing Back
The impetus for this post was my recent realization that I’ve developed an involuntary reflex for spotting AI-generated content. The tells are subtle now, but (sadly? tellingly?) this sort of content is seemingly everywhere now once you start looking. The Rise of AI Slop One bit of hipster cred I get…
Published
-
Chain of Continuous Thoughts
Recent advances in LLMs have demonstrated increasingly powerful reasoning capabilities, primarily through eliciting chain-of-thought outputs from models. While these methods have proven effective, they rely on discrete, tokenized representations of reasoning steps. A recent research paper from Meta introduces…
Published
-
Lake Union's Lonely Trolley: SLU Streetcar Ridership
I lived in the Eastlake neighborhood of Seattle for several years. Eastlake, by its name, sits on the east side of Lake Union. As a runner, I spent many mornings running along the lake, passing by the South Lake Union Streetcar. Each time I ran past the streetcar, what consistently struck me as odd was…
Published
-
TaskWarrior
I haven’t been writing much recently (sound of crickets coming from this year’s blog archive), but this is such an OnBrand™ post that I couldn’t not write it. At work, I’ve been shifting into more of a TL role, and as such I’ve been tracking an increasingly large number of streams of information. We…
Published
-
How I Use AI: Mid-2024
I’ve been in a mode of trying lots of new AI tools for the past year or two, and feel like it’s useful to take an occasional snapshot of the “state of things I use”, as I expect this to continue to change pretty rapidly. Claude 3.5 Sonnet (via API Console or LLM): I currently find Claude 3.5 Sonnet to…
Published
-
Avoid Load-bearing Shell Scripts
I’ve recently been contemplating a recurring pattern that I’ve observed in several teams I’ve worked on – the ‘Load-Bearing Script.’ The outline of this pattern goes like this: A team member writes a portion of a system as a shell script for a quick prototype. That shell script, initially quite simple…
Published
-
Soft Boredom
I recently read Pema Chödrön’s Living Beautifully, and I was struck by the following passage: Chögyam Trungpa demonstrated the co-emergent nature of feelings in a teaching on boredom-on how we feel when nothing’s happening. Hot boredom, he said, is a restless, impatient, I-want-to-get-out of here feeling…
Published
-
Mental Models: Slack
Two of my all-time favorite articles about managing one’s energy and time relate to the notion of maintaining “Slack” in one’s life. The first, Slack, by Zvi Mowshowitz, directly describes the Slack concept that I refer to in this post. The second, Sabbath hard and go home, expands on this notion in…
Published
-
The Soul of an Old Machine
I recently got an M2 MacBook Air to replace my 2014 MacBook Pro. Apple offered to recycle my old machine (and give me a token $90 off my new laptop as a trade-in), which I gladly opted-in to. However, when it got time to actually wipe my old laptop and trade it in, I couldn’t help but get a little sentimental…
Published
-
Scala Pitfall: Parameterless Function Calls and Misplaced vals
I’ve been using Scala for the better part of a year, and it’s mostly been an enjoyable experience. Scala fits in a comfortable position in the programming latent space somewhere in between Java, Python, JavaScript, and Rust. However, Scala is definitely a a “big” language – it has lots of language features…
Published
-
On Prompt Engineering
[P]hysics simulates how events play out according to physical law. GPT simulates how texts play out according to the rules and genres of language. – Scott Alexander (Source) 1. Whence Prompt Engineering The notion of “prompt engineering” has been rattling around in my head for the last several months…
Published
-
2022 in Review
Previously: 2021, 2020, 2019, 2018, 2017 Another year come and gone. For me, 2022 had the feeling of being the first real “post-pandemic” year (despite the fact that I caught COVID in July). There clearly was a vibe shift this year, as the pandemic became less of a headline story, the war in Ukraine…
Published
-
My Favorite Books of 2022
Previous book lists: 2021, 2020, 2019, 2018. My Reading List has a full log of the books I read. Another year, another slate of books to reflect back over! I read about as many books this year as I usually do (perhaps slightly fewer), but many more of them were read as audiobooks than I usually do. Non…
Published
-
On Personal Predictions
For the last couple years, I’ve maintained a spreadsheet of personal predictions. It’s been a useful practice that I would recommend. “Personal” in this context has 2 meanings: first, that I don’t preregister or publicly publish these predictions; second, that the content of some of the predictions is…
Published
-
In Praise of Stacked PRs
“Stacked PRs” is the practice of breaking up a large change into smaller, individually reviewable PRs which can depend on each other, forming a DAG: I wrote about this in my post about git-branchless, but I think the practice itself deserves its own post. Why am I so enthusiastic about stacked PRs? They…
Published
-
So long, and thanks for all the Gophers!
In some ✨personal news✨, I’ve recently left Google. It was a great ~3 year ride, and I couldn’t have asked for a better place to begin my career. Obligatory badge-and-laptop goodbye photo Whenever I’d interview candidates for Google, a frequent question was “What’s the best part of working there?”. Invariably…
Published
-
Mental Model: Difficult Problems vs. Hard Work
In “Difficult Problems and Hard Work”, David McIver writes: An idiosyncratic distinction I find useful (though don’t reliably stick to) is that there is hard work and difficult problems, and these are not all that closely related. The distinction is roughly that something is hard work if you have to…
Published
-
You Need to be Wrong (Sometimes)
To be a well-calibrated predictor, you need to to be wrong (sometimes). “Well-calibrated” means that if you predict something occurs with X% probability, then that event actually occurs X% of the time. Since predictions are often made on one-off events, another way of expressing calibration is that X…
Published
-
Mental Model: Stages of Change
A useful mental model for reasoning about behavior change is the Transtheoretical model – sometimes also known as the “Stages of Change” model. This model describes the phases of human behavior change: Precontemplation (“not ready”) – “People are not intending to take action in the foreseeable future…
Published
-
NYC 2022 Observations
I spent a week in NYC earlier this month. Here are some unprocessed impressions I had of of the city, as of Summer 2022. (Disclaimer: Many of these are probably so obvious as to be uninteresting) Transit Google Maps’ subway directions work great in NYC. The schedules/transfers were accurate, and the…
Published
-
Tools for Making Difficult Decisions
The most difficult decisions are when one needs to choose between options that are equally good or equally bad. This is nearly tautological: if you’re choosing between a good option and a bad option, just choose the good option. Similarly, if there is a clear “lesser of two evils”, then that is the obvious…
Published
-
Manifold Markets
I’ve been playing around with Manifold Markets recently. Manifold is a fake money prediction market platform whose differentiator is that it allows anyone to create arbitrary prediction markets. Unlike other platforms1, that moderate market creation and resolution criteria, Manifold users can make whatever…
Published
-
One Weird Trick
Over the past few months, I’ve been hard at work trying to reduce the latency of workflows for one of the APIs that my team owns. Last week, I discovered a small change that had a larger impact on reducing latency than 3 months of work. Somewhat embarrassingly, that change was effectively “don’t call…
Published
-
Kindle Snippets Viewer
TL;DR: I wrote a little web app to view Kindle Highlights; you can check it out here. One of my favorite features of reading books on Kindle is that you can highlight interesting quotes as you read, and revisit those highlights later. Your Kindle highlights are saved to The Cloud™️ for books that you’ve…
Published
-
List of Lists of 2022 Predictions
Life can only be understood backwards; but it must be lived forwards. - Søren Kierkegaard ‘Tis the season for prognosticating 2022. It seems like January now brings a deluge of folks registering predictions for the upcoming year (and, even better, scoring their previous predictions!). I’m becoming more…
Published
-
2021 in Review
Previously: 2020, 2019, 2018, 2017 To expect the unexpected shows a thoroughly modern intellect. - Oscar Wilde From the record-breaking heat wave to the record-breaking cold-snap during which I’m now writing this post, 2021 in Seattle was truly a land of contrasts. More seriously, 2021 is a strange year…
Published
-
My Favorite Books of 2021
Previous book lists: 2020, 2019, 2018. My Reading List has a full log of the books I read. Fiction The Overstory (Richard Powers) The Overstory is a story about trees, the people that endeavor to protect them, and how rooted human culture is in nature (pun intended). The story is told from half a dozen…
Published
-
Branchless Git
Git is a (in)famously polarizing tool, and there are as many distinct Git workflows as there are developers that use Git. However, since Git has the most mindshare of any extant VCS tool, it’s worth finding ways to make it more comfortable to use. One Git usage pattern that I think is underused is the…
Published
-
Using Embedding to Disambiguate Types in Go
A few weeks ago, I stumbled upon a trick to use Go’s type system to disambiguate between variants of credentials on a RPC service I work with. The premise of the example is that we’re writing an RPC request handler that needs to perform two outbound RPCs – one to an external service that uses user credentials…
Published
-
Recently - October 2021
WFH, Month 19 I was pretty heads-down on work this month. I’m working on a relatively greenfield project that’s had some fun opportunities to make architectural decisions. It’s very satisfying work, but it’s the type of work that stays stuck in your head, making it hard to switch out of “work mode” at…
Published
-
Features of Excellent Code Review Tools
Last week, I onboarded onto a new code review system. In learning how to review code in this new tool, I got to thinking about best features of previous code review systems I’ve used. What follows is an opinionated (and very incomplete) list of what I think are “table stakes” for code review in 2021…
Published
-
Recently - September 2021
New Tools This month I put some time into writing a couple more Datasette-adjacent tools: (See previous Datasette posts) instapaper-to-sqlite - 📑 Export your Instapaper bookmarks to SQLite overcast-to-sqlite - 🎧 Download your Overcast listening history to sqlite Instapaper: For a while, I’ve been using…
Published
-
Preventing Link Rot in my Obsidian Vault
As I’ve written in the past, I’ve been using Obsidian to store notes, links, and other “outboard brain” type information that I want to keep track of. As my Obsidian vault grows, one thing that becomes more of a risk is the potential for link rot. Much has been written about the problem of link rot,…
Published
-
Recently - August 2021
August was a fun month for me. I’ve picked up a new habit of taking pen-and-paper notes while reading non-fiction, and it’s been pretty engaging. So far, I’ve noticed that I retain content a lot better when I take notes, though it does take substantially longer to get through books this way. I don’t…
Published
-
B-Trees: More Than I Thought I'd Want to Know
Recently, I’ve been reading through the excellent Database Internals (Alex Petrov, 2019). The first half of the book is dedicated to the implementation of database storage engines – the subsystem(s) of a DBMS that handles long-term persistence of data. A surprising amount of this section discusses the…
Published
-
DIY Air Quality Sensor
It’s shaping up to be another intense season for wildfires on the West Coast. Last year, we had about 2 weeks where the air quality was bad enough that we needed to limit our time outdoors. It’s been on my mind to stock up with supplies for wildfire season. Air filters (for reducing the amount of smoke…
Published
-
Recently - July
I skipped the June edition of these retrospective posts, but in the spirit of not breaking a habit more than once, I’m back with July! I was hoping that COVID was pretty much “over”, but with the delta variant and my work pushing back our return-to-office until mid-October… the pandemic is very much…
Published
-
2,000 Days Later
On January 1, 2016, I started a daily journaling habit. As of today, I now have 2000 daily entries – a continuous run for over 5 years1. 🎉 My “journal” started as an accidental offshoot of one of my early Quantified Self projects. The goal was to keep a log of how I was feeling each day, so I could…
Published
-
Schedule Your Emails
One of my favorite features in Gmail is the ability to schedule an email to be sent in the future. Other email clients, like Thunderbird1, have this capability as well. I think of this feature not as “scheduling an email to be sent at a specific time”, but rather as “deferring sending the email for a…
Published
-
Recently - May
COVID: May was a good month on the COVID front in Washington. Vaccines were generally available – and at least 56% of adults have gotten their first dose. Washington is on track to “reopen” completely by June 30th. All good news! Things are progressing faster and with fewer negative surprises than I…
Published
-
Building a Raft
Over the past couple weeks, I’ve been working on an implementation of the Raft distributed consensus algorithm written in Go. It’s been a great exercise in “grokking by doing”. It’s one thing to understand an algorithm, and another thing to implement a correct instance of it. The Raft Mascot I’ve been…
Published
-
Backing up my Google Takeout data
For various reasons, it’s probably a good idea to keep backups of data that is stored in The Cloud™️. I have a bunch of data in my Google account from years of usage – photos and email primarily, but also a bunch of other digital detritus that would make me sad if it went away. Google Takeout is a pretty…
Published
-
Recently - April
It finally seems like we’re nearing the end of the acute phase of the pandemic in the US. 🙂 Vaccines are now available to all adults, which is months ahead of what I was expecting earlier this year. There are still reasons to be concerned about the global state of the pandemic, but at least locally…
Published
-
Book Review: Gödel, Escher, Bach
Gödel, Escher, Bach: an Eternal Golden Braid (Douglas Hofstadter, 1979) is a book that’s been sitting on my shelf for years, never quite getting to the top of my “to read” list because of it’s intimidating length and density. On a lark, I gave the first chapter a read, and got sucked in within the first…
Published
-
Two Types of Infinity
This is the third post inspired by my current read-through of Gödel, Escher, Bach. See also “A Hand-wavy Proof for the Infinitude of Prime Numbers” and “Three Layers of Information”. One of the most interesting concepts I remember from my Introduction to Number Theory course in college was the notion…
Published
-
Recently - February 28
There’s not as much to write about this month (fortunately?). The US vaccine rollout continues to hum along – I already have a family member who’s received both doses of the vaccine, and another family member who’s scheduled for their first appointment. I still think it’ll be some time before I am able…
Published