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.
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.
— 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"
— 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)
— 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)
— 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)
— 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)
— 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)
— Can graphs be libertarian? Authoritarian? Annotations for the introductory portion of the 1977 book A Pattern Language. (9 min read)
— 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)
— 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)
— 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)
— Annotations for Greiner's 1972 paper "Evolution and Revolution as Organizations Grow", about the structural composition of organizations at different sizes and requirements.
— The PDF copy of my day-to-day resume. (1 min read)
— What *is* the advantage of rolling with advantage? Exploring dice roll combinations and probability convolutions. (8 min read)
— 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: 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)
— 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)
— 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)
— Articles for the data and engineering consulting practice Chaotic Good Computing, as well as personal notes by Spencer Elkington.
— 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.
— A beginner-friendly resume template in Typst — 100% less LaTeX, 100% more opinions. (38 min read)
— $70/mo/seat? Just using live AWS may be cheaper. An evaluation of LocalStack as a testbed for Account Factory Terraform. (5 min read)
— Why do we do what we do? "Egoboo." Exploring economic models of OSS contributions beyond altruism and ego.
— 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?
— 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)
— The only market crashing is the market for sanitized language. Stay human. Embrace typos. (7 min read)
— 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)
— 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)
— Set up continuous integration to auto-update your resume everywhere. Overleaf, GitHub, and LaTeX automation for the perpetually disorganized. (6 min read)
— The obligatory "Hello!" post to suss out what this site will be. Python examples as unnecessary as the post itself. (1 min read)
— People problems are the hardest engineering problems. A consult on thinking out-of-the-box to explain morale problems in small companies.