Projects
Games, web apps, and electronics I’ve built end to end.

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

EEE Lunar Rover
A WiFi-controlled rover that drives across a mock lunar surface, hunts down artificial rocks, and reads their signals to work out what type each one is.
- Awarded Best First Year Project 2026 at Imperial College London
- I designed, tested, and debugged the infrared and magnetic circuits, and soldered three of the four sensor boards
- Built a separate analogue circuit for each of the four sensors, then combined them onto one PCB
- Chose Ackermann steering over differential drive so the rover wouldn't drift when its motors weren't perfectly matched
- Controlled and monitored live from a browser over WiFi

Operational Amplifier in LTSpice
What’s actually inside an op-amp? I spent a few months teaching myself, then built one from scratch out of individual transistors in LTSpice to find out.
- Learned and built every stage myself: differential pair, current mirrors, and a Darlington output stage
- Tested it by stepping the feedback resistor through four values and checking the gain against theory
- Measured gain matched the predicted Rf/Rin ratio almost exactly, even at ×1000

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

Digital Alarm Clock
A 24hr digital alarm clock I designed and built from scratch for a real client brief: a custom-etched PCB, crystal-accurate timekeeping, and a 3D-printed case.
- Crystal-accurate 24hr timekeeping, using a 32kHz oscillator and EEPROM storage
- Etched and soldered the PCB by hand, with its own dedicated voltage regulator
- 3D-printed PLA case with laser-cut acrylic faces (190×90×90mm, 500g)
- Designed end-to-end for a real client brief and tested against every spec point
Electronic Reaction Time Game
A reaction-time game built around LED chasers, with a custom PCB and a 3D-printed triangular enclosure I designed myself.
- LED chaser sequence: light travels along the strip and you react to stop it on target
- Custom PCB built around the CD4514BE demultiplexer
- Housed in a 3D-printed triangular enclosure I designed in CAD