Ben Congdon

  1. 2025 in Review

    Previously: 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017 A surprisingly persistent personality quirk I have is that I care a lot about the changeover of the new year. I quite like consuming yearly predictions, year-in-reviews, and so on, and use the calendar transition as a time for reflection. Work…

    Published

  2. On Not Running While Injured

    A few days ago I tumbled down some stairs and managed to bruise both of my knees. I’ve taken a break from running since then to prevent injuring myself further. It’s made me reflect on an injury earlier this summer where I aggravated my knee through overtraining to the point of not being able to run…

    Published

  3. Software Engineering in 2026

    Over the holidays, I’ve been thinking about what the impacts of 2025’s progress in AI coding tools will mean for how software gets designed, built, and operated in 2026. The primary impact of LLM tooling, so far, is that the marginal cost (both in terms of time and dollars) of producing high quality…

    Published

  4. Watches

    I’ve been thinking a lot about watches over the past few months – like a lot about watches. If I look at my Chrome browser tabs, most of them are watch related. The immediate reason for this is that I have a few friends who got into fancy mechanical watches a few years ago, and their influence has slowly…

    Published

  5. Notes from Early Flight Training

    I’m about half a dozen flights into training for a Private Pilot’s License and wanted to write some notes while I’m still firmly in the “beginner mindset”. Flight training has tons and tons of mnemonics. Wikipedia has 2 separate articles for these (1, 2), and this is nothing near an exhaustive list.…

    Published

  6. On (and Contra) Chalmers on LLM Interlocutors

    David Chalmers recently wrote a thought-provoking paper on the nature of conversational LLM entities, titled “What We Talk to When We Talk to Language Models”. It introduces some useful conceptual handles around the problem of LLM ontology, but I think it largely sidesteps the interesting problems of…

    Published

  7. My Favorite Books of 2023-2025

    Previous book lists: 2022, 2021, 2020, 2019, 2018. Additionally, my Reading List has a full log of the books I read. I regrettably skipped my yearly book reviews for 2023 and 2024, so for 2025 I’m including everything I’ve read in the past 3 years. This is an easier task than it should be, as in 2024…

    Published

  8. A Time of Wonders

    Today is Christmas Eve, which puts us in that liminal few weeks of the holiday season that serve as useful time for reflection. Work slows down, we pass through the darkest days of the year, friends and family visit for the holidays, and the calendars turn over to the new year. This year, I’ve been feeling…

    Published

  9. RAII Guards and Newtypes in Rust

    I’ve been having a bunch of fun in Rust recently. I’ve finally gotten past the point of fighting with the borrow checker and now am solidly in the plateau of productivity with the language.1 One of the first things that struck me about Rust was how confident I felt that if I wrote something sane-looking…

    Published

  10. Letters Are Still an Option

    I sometimes wish I’d grown up in the era of written letters, or that email and long-form written correspondences were more fashionable than they currently are. There is something quite enjoyable about sitting down and intentionally writing to someone, for hours even. The times that I’ve sat down to write…

    Published

  11. An Inconvenient Truth

    Salvatore Sanfilippo, aka antirez, the creator of Redis, posted a piece on his reflections on AI for the end of 2025. He ends with the statement: The fundamental challenge in AI for the next 20 years is avoiding extinction. I’ve been hesitant to say this publicly, but I broadly agree with this statement…

    Published

  12. The South Flow SeaTac Arrival Corridor

    From Gas Works Park, you can watch jets descend to SeaTac in a steady stream, one every minute or two. I’ve lived in various neighborhoods in Seattle, all under this corridor – SLU, Eastlake, Fremont. I didn’t think much of this fact until fairly recently, when I started taking flight lessons and becoming…

    Published

  13. My Favorite Music of 2025

    2025 was a really good year for music for me. My music collection system is pretty basic: every year, I cut a new playlist and add songs that I’m currently resonating with. The playlist gets progressively longer until the end of the year, after which I reset and start with a blank slate in January. I…

    Published

  14. Collecting Shibboleths

    Judge a man by his questions rather than by his answers. – Voltaire I am an introvert by nature, but I come alive for a good conversation. I was reflecting on this after a recent international flight, where I was sitting next to a friendly man who turned out to be a late-career civil engineer. I have…

    Published

  15. Book Review: I Am a Strange Loop

    In the end, we self-perceiving, self-inventing, locked-in mirages are little miracles of self-reference. … Our very nature is such as to prevent us from fully understanding its very nature. – Douglas R. Hofstadter Most people know of Douglas Hofstadter for his masterpiece Gödel, Escher, Bach (“GEB”)…

    Published

  16. What Are You Trying to Say?

    From Dwarkesh Patel: Unreasonably effective writing advice: “What are you trying to say here? Okay, just write that.” Writing effectively is notoriously hard. Even once you get past writers block and are actually writing words on the page, organizing those words coherently is challenging. One virtue…

    Published

  17. Day 15 of Daily Writing

    This is post 15 of my unannounced, self-imposed month of daily writing. I’ve been making soft promises to myself and others to write more for… years. I was inspired by a few of the folks who wrote daily last month for Inkhaven, and so decided to do my own super unofficial version of that. It’s been fun…

    Published

  18. Book Review: The Demon in the Machine

    The thing that separates life from non-life is information. - Paul Davies I’ve probably learned about the thought experiment of Maxwell’s demon at least half a dozen times – in multiple physics courses, in multiple books. Until I read Paul Davies’ The Demon in the Machine, I don’t think I realized that…

    Published

  19. Chorus is Good Software

    I’ve been using Chorus for the past 6-7 months. Within the first couple days of using it, I was telling everyone I talk with about AI stuff to try it out. Melty Labs, the company behind Chorus, subsequently built Conductor. It appears this Conductor now their primary focus, and as such they’ve decided…

    Published

  20. The Coming Need for Formal Specification

    In late 2022, I had a conversation with a senior engineer on the coming problem of “what to do when AI is writing most of the code”. His opinion, which I found striking at the time, was that engineers would transition from writing mostly “implementation” code, to mostly writing tests and specifications…

    Published

  21. Zip Files as (Simple) Key-Value Stores

    I recently encountered a fun performance problem. Consider the following: You need to distribute a key-value dataset with string keys and opaque value blobs in the 100B - 1MB range. There are on the order of 10k keys to distribute. Critically, you are in a constrained memory environment where you do…

    Published

  22. What I Look For in AI-Assisted PRs

    I review a lot of PRs these days. As the job of a PR author becomes easier with AI, the job of a PR reviewer gets harder.1 AI can “assist” with code review, but I’m less optimistic about AI code review than AI code generation. Sure, Claude/Codex can be quite helpful as a first pass, but code review still…

    Published

  23. SWIM: Outsourced Heartbeats

    How does a distributed system reliably determine when one of its members has failed? This is a tricky problem: you need to deal with unreliably networks, the fact that nodes can crash at arbitrary times, and you need to do so in a way that can scale to thousands of noes. This is the role of a failure…

    Published

  24. The Decline of the Software Drafter?

    1. It’s hard not to think about the direction the software engineering field is going in. I don’t think you, dear reader, need to be reminded of this, but just to set up some timeline tentpoles: In mid 2024, Github Copilot was something of a pleasant convenience for coding. This was the “fancy autocomplete…

    Published

  25. Embodied Cognition and the "Tokenverse"

    1. One of the common criticisms of modern AI systems is that they aren’t sufficiently embodied. The idea being there’s some inherent quality of being an agent embedded inside a body in the physical world which cannot be attained by a token-predicting LLM, regardless of how intelligent an agent becomes…

    Published

  26. Book Review: Antimemetics

    Source 1. Slippery Ideas Nadia Asparouhova’s Antimemetics is, itself, antimemetic.1 I devoured this book in a few sittings on the bus to work, but if I had to describe it, I really only have a few conceptual handles that I could grasp onto: Memes are ideas that spread easily. Antimemes are ideas that…

    Published

  27. TIL: SQLite's 'WITHOUT ROWID'

    By default, SQLite tables have a special rowid column that uniquely identifies each row. This rowid exists even if you have a user-specified PRIMARY KEY on the table. How this rowid column behaves is influenced by your PRIMARY KEY type. Integer Primary Keys: If you have an integer primary key, then the…

    Published

  28. Race Report: Seattle Marathon 2025

    Last Sunday, I ran the 2025 Seattle Marathon. This was my third marathon, and I got a PR! I’m splitting this race report into two broad sections: about the course, and about my experience/training/etc. The Course & Event Candidly, I’ve avoided running the Seattle Marathon in the past because I’d heard…

    Published

  29. Technical Escape Velocity

    1. When I was learning to program, I remember a specific phase transition in that process of skill acquisition – a distinct “before” and “after”, similar to how when learning to read there’s the “before” of ignorance, the “after” of effortlessly reading, and surprisingly little memory of the intermediate…

    Published

  30. Why Magnetos

    I’ve recently started on the journey to get a private pilot’s license. One thing I’ve enjoyed about the process so far is the extent to which you’re encouraged to understand how most of the systems work at a fairly deep level. Contrast this to driving a car, where you can mostly get away with “turn key…

    Published

  31. Schedule Recurring Calls With Your Far-Away Friends

    I enjoy conversations, particularly with people I care about. I also have a social circle which is rather geographically dispersed. This, of course, presents the problem of “how do I stay in touch with people?” Facebook et al. haven’t solved this problem in a satisfactory way for me. Discord / private…

    Published

  32. Fifty Bits of Career Advice

    As my team’s summer interns finished up their rotations this week, I had my usual end-of-internship “AMA” 1:1s. It’s something I enjoy doing, but I realized I was covering a lot of the same topics I’ve discussed with other previous interns and early-career engineers over the years. So I thought it’d…

    Published

  33. The Agency Gap

    There’s a line in Ben Kuhn’s essay, “Impact, agency, and taste”, that’s been rattling around in my head lately. He describes impact as the practice of “making success inevitable”. That phrase captures something important about how to approach work. Kuhn draws a distinction between two ways of approaching…

    Published

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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