Posts
A Short List of Software Postmortems
Good engineers learn from success and failure alike.
Adventures in Vibe Coding
Ann unenthusiastic review of AI agents in software development
Anagnorisis
C. Wright Mills's sociological imagination shows that the ability to truly understand our own lives isn't limited to the stage or the page
Reading Recommendations for Game Designers
I’m a hobbyist game developer, and originally enrolled at Rochester Institute of Technology for Game Development. While I’m not currently in the games industry, I’m deeply invested in it as an arti...
I Finally Get Rust
Why doesn't every language do things this way?

League of Losers: Predicting Winners and Losers in League of Legends
Predicting winners and losers in League of Legends games with Python, sklearn, and tensorflow
GitHub Repositories Worth Knowing
There's a lot of high quality open source code out there, if you know where to look.

Machine Learning Papers I've Been Reading
At time of writing, machine learning is probably the fastest moving field on Earth. Because it’s so difficult to keep up with it, I’ve compiled this broad sampling of articles from various domains ...

Lessons From My First Data Science Project
The first serious data science project I did was a class project to predict COVID mortality. We got a data set from Kaggle (originally sourced from the Mexican Ministry of Health) and, like every o...

The A-B-C's of the abc Conjecture
In 1994, the mathematics was turned on its head by Andrew Wiles’s proof of Fermat’s last theorem, a deceptively simply math problem asking if there are any integer (that is, positive whole number) ...
The Worst Project I Ever Finished
Looking back on PaperScraper, my first and longest software engineering project
The Greedy Fallacy
There is a concept in computer programming called a greedy algorithm: an algorithm that accomplishes a task by solving a problem in several stages, and at each stage making the most optimal, or “gr...

Greedy Algorithms
There is a concept in computer programming called a greedy algorithm: an algorithm that accomplishes a task by solving a problem in several stages, and at each stage making the most optimal, or “gr...
A Survey of Intermediate Python Features
I’ve been writing Python continuously since about 2015. In that time, I’ve stumbled on a lot of language features that confused me at first or that I wish I had learned about earlier; now that seve...

Meditating on The City & The City
None are still like the dead are still. — The City & The City (p.1) Introduction (Spoiler-Free) I don’t think I’ve read anything quite like The City & The City by China Miéville. The ...

What Game Designers Can Learn from Morrowind
What one of the greatest games ever made can teach game designers two decades later
Human Signal, Artificial Noise
“How could an AI system seize control? There is a major misconception (driven by Hollywood and the media) that this requires robots. After all, how else would AI be able to act in the physical w...
Reading Recommendations for Software Developers
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. — Antoine de Saint-Exupéry There’s an endless ocean of articles, blog posts, books,...
A Roadmap to Self-Study Programming
Step 1: Getting Started There are many conflicting arguments on the best way to learn how to program; as best I can tell, there are at least three major schools of thought about which language to ...
A Roadmap to Self-Study Math
Preface …Mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true. — Bertrand Russell Math is an incredibly rewarding...
Backlog
I have a bottomless pit where all the media I plan to consume gets dumped, and this page is a glimpse of the top of the pile. If you recommend me something, hopefully it’ll (eventually) find its wa...