I'm a software engineer who dabbles in fiction writing.
A two-player asynchronous Wordle duel. One player picks a secret 5-letter word; the other plays Wordle against it and scores based on how many guesses it takes. Then the roles swap — back and forth indefinitely, with a running scoreboard. All game state is end-to-end encrypted; the key lives only in the share URL.
An interactive web toy for cats. Animated critters (fish, ants, fireflies, laser dots…) wander across a full-screen tablet display. When the cat taps one, it reacts with animations and sounds. A human controls the experience from their phone by scanning a QR code — no app install required.
A browser-based multiplayer implementation of the Love Letter card game, with historical figures (Casanova, Tesla, Kafka, Cleopatra…) as characters. 2–4 players join via QR code; all game logic runs in the browser and syncs through Firebase in real time. No accounts required.
Imagine you're a time traveler who ends up in a random place and time in history — what does a local say when you ask "What year is it?" Pick a spot on an interactive map and choose a date; the app shows you the calendar system and local year that would have been in use there and then.
Real-time location sharing for a group of friends. Share a room link or QR code; everyone who joins sees each other as directional arrows on their screen. No accounts, no app install — just a mobile browser. Location data is encrypted; the key lives only in the room URL.
This is a simple web page that can be used as a separator/container for other web pages. It has been recently rewritten and now supports custom icons.
I use it with FireFox and Tree Style Tab to organize my browsing, but you can use it in any other browser that supports nested/vertical tabs, or even just as a random page where you can customize the title, the icons, and the body.
Quotable is a web and Android app that shows random quotes.
The Android version can pop-up regular notifications, so you can get random quotes throughout the day.
The Android version is not yet on the Google Play store, so you'll need to sideload it.
This is an OSS CLI for automating folder/file creation.
This is a web app that allows you to specify a duration (eg. "5:32"), then Hawk will find a song in your Spotify library with that length, and with one click you can start playing this song through Spotify.
This is my first real foray into using a game engine, so I'm experimenting with Godot and making a simple 2D space shooter.
Try the work-in-progress game here.
Go app that uses https://find.stonebrewing.com/ API to notify me when Arrogant Bastard is shipped to stores around me. Pushover is used to deliver messages to my phone. This was a proof-of-concept implementation to figure out how to provide regular notifications without running a server.
This is a similar notification implementation to "Find Stone Beer", but this app uses Australian National University Quantum Numbers API to pick a random Wikipedia article and send it to me every morning. If a particular theory of the multiverse is correct, then every day 256 versions of me will receive a different article, and will thus lead to a slightly different day. Mostly, though, this was just something to do for fun.
Task Heap is a Flutter task-organizing web app. The basic concept here is to have a heap of tasks, then skipping big or complex tasks until you find a task that feels "doable". Eventually, all tasks will get done, as you complete the tasks in the order that works for you.
Dao is a TypeScript version of the game Dao.
Play it here.