— 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.
— 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.
— 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.
— 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.
— 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.
— 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.
— 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.
— 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.
— 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.
— 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.
— "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.
— 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.
— Stop reprocessing your entire dataset every time new data arrives.
A practical guide to Spark Structured Streaming with code examples and cost logic.
— 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.
— 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.