Projects

whatdidi - command line history search tool

View project on GitHub

A command-line utility that helps you find commands you've previously run. Searches your shell history (both persistent and current session) and retrieves matching commands based on a search term.

Features / Example Usage

Search for the last command you ran:

whatdidi curl
> curl -s https://sh.rustup.rs | bat

Search for the last n commands you ran:

whatdidi mvn 3
> mvn clean compile
> mvn test
> mvn clean compile exec:java "-Dexec.mainClass=simulator.ui.UserCLI"

Supports compound commands (e.g. search for git push specifically):

whatdidi "git push" 2
> git push
> git push -u origin main:refactoring

Supports commands prefixed with sudo:

whatdidi rm 2
> rm foo.txt
> sudo rm bar.txt

Multi-threaded game simulation in Java

View project on GitHub

Multi-threaded card game simulation in Java, with custom cyclic barrier implementation for thread synchronisation.

Full suite of unit tests using the JUnit framework, including a testing report available on the GitHub repo.

Fundamentals of Machine Learning

View project on GitHub

Built a Python-based logistic regression classifier using scikit-learn to classify handwritten digits. Implemented advanced data cleaning, feature selection, and hyperparameter tuning to optimize results.

Implemented dimensionality reduction using techniques such as PCA, t-SNE and UMAP. Discussed the nuances of these techniques for both data visualisation and preprocessing tasks.

t-SNE visualisation of digit clusters

Web Player vs AI Battleships game

View project on GitHub

Web-based battleships game. Users place their ships interactively, and battle an AI.
During gameplay, side-by-side boards track both the user's square and the enemy's.

The project was built in Python using the Flask framework.

Custom lift simulator

View project on GitHub

Built a custom lift simulator in Python. Features a GUI and customisable parameters such as lift capacity, number of floors.

The project uses the tkinter library for the GUI.

Electrical Engineering Group Design Project

View report on GitHub

Built a remote-controlled rover capable of detecting infrared signals, measuring frequency, detecting radio signals, and sensing magnetic field polarity.

Designed and implemented a filtering and amplification circuit for infrared signal detection through a phototransistor.

Simulated the design in LT Spice and prototyped the circuit on a breadboard.

Developed and implemented Arduino code to digitally interface with the infrared detection circuit.