Projects
And dominating my friend's "Weddy-48" leaderboard
I explored some reinforcement learning methodologies for 2048—yes, the 12-year-old tile sliding game. Mostly as a learning exercise, but also to crush the top scores on my friend’s custom, “uncommonly smooth” beer-themed 2048 implementation.
No fluff (unless the recipe calls for it)
I’m tired of online recipes with the author’s life story and tons of popup ads. So I built a minimal web app to extract just the ingredients and instructions.
Tuning the search implementation for optimal performance
Let’s (finally) make some broad changes to the tool library’s search configuration. We’ll add some components and tune some parameters, then choose the combination that yields the best results.
How good are the latest and greatest LLM agents?
I built a simple Streamlit web app for a DIY electrolyte mix recipe. Embracing the “vibe coding” lifestyle, I decided to let a GitHub Copilot agent do most of the work for me. Here’s how it went. (Spoiler: pretty good but far from perfect)
I couldn't pass up an opportunity for some Streamlit swag!
Streamlit is hosting a hackathon to show off their new connections functionality. I built a simple app implementing semantic search to explore public datasets in the city of Chicago’s Socrata open data platform.
Messing around with Kalman filters to fix noisy Strava activities
I use Strava to track my runs, and sometimes I’m annoyed with how noisy the GPS tracks are. I recently learned about Kalman filtering, a methodology for smoothing noisy data. Let’s see if it can solve my Strava problem. Plus, a small Flask app that integrates with the Strava API.
And using it to prove that I’m a terrible poker player
Elo is a rating system for two-player games, such as chess. I developed a Python implementation of a generalized Elo system that works for multiplayer games. Then I built a web app to track the Elo ratings of my friend group’s poker games. At the risk of personal embarrassment, I’m publishing the results.