One of my many hopes from maintaining this site is to improve my own writing, hopefully developing a distinct voice over time in this era of AI-generated, slop content.

Readers beware — the further back you go, the cringier it’ll get.

Graph View

Recent Posts

  • The Theory of Stupidity (and the graph inside you)

    — Our lives are all dominated by a little graph in our hearts — and sometimes, that graph gets wacky. A review of Dietrich Bonhoeffer's "Theory of Stupidity", part of his larger ~1943-1945 work "Letters and Papers from Prison." (11 min read)

  • Design of a mucin-selective protease for targeted degradation of cancer-associated mucins

    — The rubber hits the road on ColabFold! I hope that's rubber I'm smelling — although it may be the computer. A replication attempt of a protein fold figure in K. Pedram et al (2023). (7 min read)

  • An Annotated Guide to Hobbyist Protein Folding

    — Amaze (or bore) your friends and family by picking up on a hot new hobby that's all the rage — protein folding! An annotated starter to the 2021 paper "ColabFold - Making protein folding accessible to all" (8 min read)

  • Agentic Programming as Theory Building

    — Do humans have a role in software development anymore? Absolutely — but we need to rethink what it means to program. An modern review of Peter Naur's 1985 essay "Programming as Theory Building" (33 min read)

  • APL: Pattern 4; Agricultural Valleys

    — Urban development has the high ground over agricultural and ecological preservation — and it should! *A Pattern Language* annotations on Pattern 4: Agricultural Valleys (2 min read)

Show 29 more posts
  • APL: Pattern 5; Lace of Country Streets

    — How dense is too dense? How sparse is too sparse? Annotations for A Pattern Language's proposals for the density of metro-adjacent country streets for agriculture, recreation, and preservation. (3 min read)

  • APL: Pattern 1; Independent Regions

    — Home isn't where the heart is — it's a single node on a very, very large graph. Annotations for the "Independent Regions" pattern of *A Pattern Language*. (10 min read)

  • APL: Pattern 2; The Distribution of Towns

    — How close is too close? How far is too far? *A Pattern Language* annotations related to the statistical, economic, and ecologic concerns in balancing how dense human habitats ought to be. (5 min read)

  • APL: Pattern 3; City Country Fingers

    — City, with natural stripes — or nature, with city stripes? Annotations for A Pattern Language, and tracking public opinion of where Americans want to live over the past 50 years. (4 min read)

  • APL: Pattern 0; Introduction

    — Can graphs be libertarian? Authoritarian? Annotations for the introductory portion of the 1977 book A Pattern Language. (9 min read)

  • Privacy Policy

    — When it comes to collecting data, there's a fine line between making a good site and making an invasive product. To make this site more useful, I want to collect enough data to improve, but never enough to undermine anybody's privacy. (3 min read)

  • Ants in the Neighborhood

    — Is Jane Street run by soccer-loving ants? Inconclusive. We *can* conclude that they're fans of Markov Chains, though — an invaluable tool for understanding complex data structures. (1 min read)

  • A Pattern Language, and a Beautiful Day in the Neighborhood

    — The beginning of a topological review of the 1977 urban design and architecture reference book A Pattern Language, and a journey to understand Earth's greatest graph: the Earth, itself. (12 min read)

  • Evolution and Revolution as Organizations Grow

    — Annotations for Greiner's 1972 paper "Evolution and Revolution as Organizations Grow", about the structural composition of organizations at different sizes and requirements. (12 min read)

  • Work Resume

    — The PDF copy of my day-to-day resume. (1 min read)

  • The Advantages of Advantage: Intro to Probability Convolutions

    — What *is* the advantage of rolling with advantage? Exploring dice roll combinations and probability convolutions. (8 min read)

  • Quartz Widgets: Graphs, Galore!

    — I killed 4 of my blogs trying to implement MDX support. Will this one be next? Using MDX with Quartz to create interactive graphs, diagrams, and demos — clear as day. (9 min read)

  • LLMs; or, How to Run Your Own Hostage Negotiation

    — LLMs: Are we doomed to die, or born to garden? I'd like to make the case that AI is less like Terminator, and more like tomatoes. (8 min read)

  • Intro to Event Storming

    — Notes from learning Event Storming for domain-driven design. Thoughts on phases, color-coded chaos, and how to transition from fast pitches to full products. (6 min read)

  • AI Policy

    — I may not have any control about how AI affects me, but I can at least make a policy for how I use it. (3 min read)

  • Chaotic Good Computing

    — Articles for the data and engineering consulting practice Chaotic Good Computing, as well as personal notes by Spencer Elkington.

  • LLMs: A Primer Presentation for Our Newest, Scariest Tool

    — An engineer-focused primer on the mechanisms that drive Large Language Models. Basics on how we got here, how they work, and how to use them without feeling an apocalyptic dread. (1 min read)

  • Typst Resume Template

    — A beginner-friendly resume template in Typst — 100% less LaTeX, 100% more opinions. (38 min read)

  • Terraform LocalStack Testing

    — $70/mo/seat? Just using live AWS may be cheaper. An evaluation of LocalStack as a testbed for Account Factory Terraform. (5 min read)

  • The Simple Economics of Open Source

    — Why do we do what we do? "Egoboo." Exploring economic models of OSS contributions beyond altruism and ego. (8 min read)

  • College Admissions and the Stability of Marriage

    — A dive into the hottest algorithm of the 1960s: Gale-Shapley matchmaking. Who knew that the mysteries of the heart could be solved with a matrix? (5 min read)

  • Before You Slabtop Your Laptop: A Brief Warning

    — PSA: Check if your laptop needs an LCD for POST before removing the screen. Learned this the hard way after 5 hours and a fried motherboard. Learn from my dumb mistakes. (2 min read)

  • GPTinglish: Unnatural Language Processing

    — The only market crashing is the market for sanitized language. Stay human. Embrace typos. (7 min read)

  • Don't Double Down: Structured Streaming to Wrangle Data

    — Stop reprocessing your entire dataset every time new data arrives. A practical guide to Spark Structured Streaming with code examples and cost logic. (9 min read)

  • The Unbearable Weight of ROBLOX Celebrity

    — Being famous online in 2009 is the highest high I'll ever reach. A love letter to the coolest dork I know, hatemail for client-side exploits, and a limitless supply of Monopoly dollars. (11 min read)

  • Say Goodbye to Untitled (5) — GitHub Actions for Resumes

    — Set up continuous integration to auto-update your resume everywhere. Overleaf, GitHub, and LaTeX automation for the perpetually disorganized. (6 min read)

  • Hello, Blog! (Posts by a dummy, for other dummies)

    — The obligatory "Hello!" post to suss out what this site will be. Python examples as unnecessary as the post itself. (1 min read)

  • Utah Office Consult

    — People problems are the hardest engineering problems. A consult on thinking out-of-the-box to explain morale problems in small companies. (2 min read)