Graph View

Recent Posts

  • 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)

  • 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)

Show 37 more posts
  • 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.

  • Quick Fix: Tone Down Obsidian List/Header Padding

    — 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)

  • 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)

  • Dice Roll Distribution Widget

    — Discover the probability distributions of different dice roll combinations (1 min read)

  • Widget System Reference

    — Lite reference documentation of the Quartz MDX widget system (2 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)

  • 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)

  • Kickoff: Season of Systems

    — 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)

  • Review: Season of Rhythm

    — 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)

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

  • Typst Resume Template

    — A beginner-friendly resume template in Typst — 100% less LaTeX, 100% more opinions. (38 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)

  • Caveat Lector: Reader Beware

    — 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)

  • Quantitative Analysis of Markets & Organizations

    — 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)

  • Breaking Ground on Digital Gardening

    — 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)

  • Kickoff: Season of Rhythm

    — "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)

  • In Review: The (bad) 2017 Robloxaville Remaster

    — 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)

  • 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)

  • Littlefield Simulator: The Art of Laziness

    — 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)

  • 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)

  • Entries to SOME 1

    — Stable matching, optimal stopping, and Bachelor analysis - visualized with some care. (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.

  • College Admissions and the Stability of Marriage

    — 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)

  • Reading the Room with Beethoven

    — A HackTheU 2019 project for real-time live captioning using remote microphones. (2 min read)

  • What *are* Supply Chains, Anyway?

    — 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)

  • Scratch Piano Application

    — An educational waveform visualizer written in everybody's favorite programming language: Scratch. (1 min read)

  • Quicksort: Every CS Student's Favorite Algorithm, Scratched Up

    — Implementing QuickSort in Scratch. Its only real-world accomplishment? Wearing out my mouse's scroll bar. (1 min read)