Small programs I build to keep my skills sharp and explore areas I don't get to touch in my day job: algorithms, games, systems programming and AI tooling.
![]() Flappy · Lua + LÖVE Flappy Bird clone with parallax scrolling, a state machine and pause |
![]() Pong · Lua + LÖVE Classic Pong against an AI paddle that is deliberately imperfect |
![]() Tiny WFC · Python Wave Function Collapse terrain generation from a tile set |
![]() Tiny Maze · Go Procedural mazes via recursive backtracking, exported as PNG |
![]() Tiny Tree Fractal · JavaScript + p5.js Interactive recursive fractal tree with angle sliders |
Tiny Shell · C A minimal Unix shell with I/O redirection, pipes and background jobs Tiny Coding Agent · Go Chat with Claude in your terminal, with tools to read, list and edit files WhoPray · LLM CLI Assigns meeting roles (conducting, prayers, thoughts) fairly, without repeats |
| Project | Stack | What it explores |
|---|---|---|
| Flappy | Lua · LÖVE | Game loop, sprite scrolling, procedural pipe gaps, state machines |
| Pong | Lua · LÖVE | Collision and bounce angles, a simple AI opponent, retro rendering |
| Tiny Coding Agent | Go | Tool use with the Anthropic API: a small agent loop with file access |
| Tiny Maze | Go | Recursive backtracking, fully connected and solvable mazes |
| Tiny Shell | C | fork/exec, pipes, redirection, background processes |
| Tiny Tree Fractal | JavaScript · p5 | Recursion and interactive generative art |
| Tiny WFC | Python | Wave Function Collapse, both overlapping and tiled models |
| WhoPray | CLI · LLM | Constraint-aware assignment with an LLM in the loop |
Each folder is self-contained and has its own README with run instructions. The LÖVE games run with
love <folder> (LÖVE 11).
Looking for Snake? It lives in its own repo: tiny-snake.




