This site is a dedicated digital garden of writing related to my personal life and work, as well as work I do through Chaotic Good Computing, a separate practice I operate for consulting and projects related to economics and software engineering.
This site is a dedicated digital garden of writing related to my personal life and work, as well as work I do through Chaotic Good Computing, a separate practice I operate for consulting and projects related to economics and software engineering.
— 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.
— Annoyed by Obsidian Live Preview over-padding headers and aggressively indenting? Some snippets to help keep your notes from jumping around, so you can focus on actually writing them. (3 min read)
— 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)
— Discover the probability distributions of different dice roll combinations (1 min read)
— Lite reference documentation of the Quartz MDX widget system (1 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)
— I'm learning to live with the systems that stole my beloved em-dash. A season dedicated to negotiating how to live with the agentic models that have turned my career upside-down. (8 min read)
— Looking back at my year-long attempt to build up long-lasting habits. A retrospective on routines, remote work transitions, and learning the art of slow-and-steady. (7 min read)
— Articles for the data and engineering consulting practice Chaotic Good Computing, as well as personal notes by Spencer Elkington. (1 min read)
— 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?
— Classifying opinions as "strong" or "weak" to stop wasting hours in fruitless engineering debates. How consensus can beat being "right", and an open letter for the tactically apathetic. (7 min read)
— 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)
— Building a Raycast plugin to schedule website blocks — because checking news "just one more time" destroys flow. Automate SelfControl and self control: take your laptop back. (4 min read)
— I'm embracing being wrong on the internet in an effort to learn in public. A disclaimer on digital gardening, dead pixels, and the fear of terminal online-ness. (3 min read)
— My life devolves into sleep-eat-procrastinate cycles without structure—I call this "The Goblin." Productivity tools, hating on hustle culture, and a new definition for horticulture. (2 min read)
— TODO. (1 min read)
— My time at the University of Utah was longer than I'd planned, cut shorter than expected by COVID-19. I was very lucky to have mentorship to push me across the finish line. (1 min read)
— Why I stopped hoarding 60%-done drafts and started publishing messy thoughts instead. Embracing digital gardening, from-chaos-to-cultivated, and a healthy dose of imperfection. (3 min read)
— "Fight or flight" is a rough way to treat white-collar life. My Season of Rhythm is dedicated to transitioning from constant sprints to slow-and-steady. (3 min read)
— I've learned so much in my career — so why do I finish fewer projects than I used to? Over-engineering: it's easier to be bad at something on accident than on purpose. (2 min read)
— How over-engineering killed a 3-month remaster of an old ROBLOX game. Looking back at the depth of Dunning-Kruger, and how good code doesn't make a good game. (2 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)
— Efficiency: spending six hours building a web scraper to avoid five minutes of daily work. Automating a business simulation because checking in is for chumps. (8 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)
— Stable matching, optimal stopping, and Bachelor analysis - visualized with some care. (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.
— My college presentation on the Gale-Shapley paper, recorded on an iPad, like a true professional. Non-market environments, matchmaking lattices, and gratitude for good professors. (1 min read)
— A HackTheU 2019 project for real-time live captioning using remote microphones. (2 min read)
— A first foray into network visualization: messy graphs, abject terror. Early data viz experiments searching for supply loops. Bad graphs; interesting questions. (2 min read)
— An educational waveform visualizer written in everybody's favorite programming language: Scratch. (1 min read)
— Implementing QuickSort in Scratch. Its only real-world accomplishment? Wearing out my mouse's scroll bar. (1 min read)