Python

Circuit Builder
A desktop circuit editor and simulator I built myself: sketch a schematic, wire it up, and watch it actually work in DC, transient, and frequency response.
- Wrote my own nodal analysis solver for DC, transient, and AC, with no NumPy or SciPy
- Live Simulate mode shows the voltage at every terminal, updating as you edit the circuit
- Frequency response and Bode plots, with the sweep range guessed from the circuit's own values
- Full undo/redo, wire splitting and tapping, and a plain-JSON save format

websiteproject
A personal Django site with a few small apps (accounts, file storage, a to-do list with email reminders, and more), self-hosted on a Raspberry Pi at home.
- Five small apps: accounts, file storage, to-do, random tools, server diagnostics
- File uploads can now be edited and deleted, with validation on what's accepted
- To-do list emails you reminders on a schedule, via a custom management command
- Hosted it myself on a Raspberry Pi, with my own port forwarding and DNS

Billiard Club
A full 2D pool game built from scratch in Python, complete with its own physics engine, an AI opponent, and a full menu system.
- Full 8-ball rules: turn tracking, fouls, potting, win detection
- Wrote my own physics engine for ball-to-ball and ball-to-wall collisions
- Bank-shot aim assist that projects the cue ball's path off the rails
- A basic AI opponent, plus Player vs Player and Sandbox modes

Pygame Games
A small collection of games built in Pygame while I was learning Python and game dev: a brick-breaker and a from-scratch Tetris.
- Ballz: an aim-and-fire brick-breaker with combo scoring and coin pickups
- Tetris: full piece rotation and row-clearing, built entirely from scratch
- Each one was a way to practise a different concept: sprite groups, collisions, grid logic