A software engineer with broad foundations across full-stack development, distributed systems,
computer vision, low-level/
I'm a recent First-Class Computer Science graduate (with a minor in mathematics) who works across software engineering, quantitative modelling, systems programming, networking, data-heavy tooling and embedded development. My projects range from modern React web app development to embedded firmware. I'm most effective on technically demanding work where architecture, algorithms and implementation quality all matter.
Outside of programming, I like watching cricket, playing badminton, reading, cooking, baking and tinkering with my home network and IoT automations. I also enjoy brewing and experimenting with coffee.
Translated a tool widely used by molecular biologists (SDM-Assist) from an ageing AS3 codebase into a modern, scalable web app (React, TypeScript and Redux based). Designed with a bespoke architecture which allowed my project to run as a Jupyter-lab extension.
Highly concurrent, scalable keyword intelligence tool with a vectorised multi-lingual NLP pipeline to provide high-quality data-driven insights over multiple international marketplaces.
A multi-user fault-tolerant auction system with passive replicas synchronised using a RAFT-like consensus algorithm. Secured with encryption, a custom challenge-response framework and time-limited access tokens.
A series of tools for the nRF52 microcontroller in C using bare-metal programming. Including bit-banged serial, bare metal driver/firmware development for an OLED display and a custom I2C implementation. Also used on-device peripherals such as Timers, I2C, TWI, PWM, GPIOTE/Interrupts and external components such as OLED displays, RGB lights and an LSM303 Accelerometer (on devboard).
Processed real-world datasets for cleaning before visualising and statistically testing assumptions using Hypothesis Testing. I presented my results to a panel of peers.
A pathfinding system designed using a Genetic Algorithm which I developed from first principles in MATLAB. Featured modular implementations of multiple selection and crossover methods. Used adaptive mutation rates and immigration strategies to ensure a near-optimal but fast result.
A multi-input DRS system to track balls in 3D space, predict their future path and plot outcomes in 3D. Used a Kalman Filter (built from first principles in NumPy), Nearest Neighbour Data Association and various statistical methods to effectively track the ball to within ±3.5cm (half of a ball's width).
Developed comprehensive quantitative risk models for network security using Monte Carlo simulations and stochastic probability distributions. Then used Bayesian inference and linear programming to assess the effectiveness of security controls and optimise their deployment according to finite constraints.
A robust, clean-slate FAT16 filesystem reader in C, engineered to read and parse raw disk images directly. The program can interpret on-disk data structures (including the Boot Sector and BIOS Parameter Block (BPB) for volume configuration), load and follow cluster chains via the File Allocation Table (FAT) and parse the directory structure to extract file metadata and content.
Designed a pipeline to ingest raw data on football teams, players and managers in order to load them into a 3NF/BCNF database I had designed.
A full-stack web-based home library management system which used PHP, MySQL and phpMyAdmin to store, verify and validate information on books in a user's home library. Featured a responsive, web-based, user-friendly GUI developed in HTML, JavaScript and CSS.
Developed a suite of pre-processing & feature extraction/detection tools including: piece-wise linear transforms, histogram specification and image sharpening alongside a Harris Corner Detector and Histogram of Oriented Gradients. All were developed in MATLAB from first principles with a particular focus on efficiency and computation time which led to me leveraging a lot of vectorised matrix operations.
A PowerPoint-like desktop presentation manager specifically designed for Computer Science teachers with drag-and-drop components (including syntax-highlighted code boxes, rich text boxes, images, shapes and more). Built in Java Swing as part of a 5-person Agile team with bi-weekly standups, feature-branching and merge-based collaboration workflows.
A functional MIPS emulator programmed in C using a provided framework. Broke down MIPS instructions into opcodes and operands in order to perform the relevant operations. Project supported a subset of the instruction set (including both I-type and R-type instructions). Simulated the Fetch-Decode-Execute cycle of a CPU using a virtual memory register system.
An interactive music writer/player built in MIPS assembly that takes in user input, renders graphics (using bitmap memory mapping) and plays notes (using syscalls)
Designed, simulated and debugged virtualised network environments. Configured OSPF area segmentation, RIP redistribution and custom IPv4/IPv6 dual-stack addressing.
Created UDP & ICMP implementations of Ping and Traceroute using raw socket programming. Also, developed a HTTP Proxy & Web Server with persistent caching for faster content delivery.
A fast, responsive personal portfolio built with Astro and Tailwind CSS to showcase my projects and house information about me.
A recursive descent syntax analyser based on a provided context-free grammar which could validate source code, identify syntactically correct programs and generate detailed error messages for invalid programs. My analyser could handle complex structures like nested loops, conditional statements and procedure calls.
An empirical usability study to evaluate system UX using HCI principles. Developed interactive test environments to collect quantitative user data and system usability scores
Want to chat? I'm always happy to hear from people wether it's about roles, projects, ideas or something else entirely!
Or shoot me a message below: