ISSIE Drawing Library • High Level Programming
- Used F# and the Elmish MVU framework to develop a replacement for the Draw2D JavaScript library to be used in ISSIE.
- The drawing library is responsible for drawing electronic schematics in ISSIE.
- Acted as Team Lead for the project, reviewing Pull Requests and ensuring we met deadlines and deliverables.
- Find the source code here.
- Completed as part of the ELEC96019 - High Level Programming (functional programming) course in 2021.
Music Synthesiser • Embedded Systems
- Developed firmware loaded onto an Arduino for a keyboard music synthesiser.
- Core functions include using multi-threaded programming to detect simultaneous
keypresses, play the correct frequency, display a user interface, and communicate as an IoT device.
- Advanced features include playing different timbres, changing octaves, and
implementing polyphony (being able to play multiple notes simultaneously).
- Source code available on request.
- Completed as part of the ELEC96018 - Embedded Systems course in 2021.
CPsmaRt • Embedded Systems
- Designed a IoT-capable CPR training device using a Raspberry Pi, load cell, magnetometer, and accelerometer.
- Used Python to communicate with hardware, and displayed the data using a
Flask webpage.
- Source code available on request.
- Completed as part of the ELEC96018 - Embedded Systems course in 2021.
Program Optimisation • Advanced Computer Architecture
- Optimised performance of a C++ implementation of Gaussian Belief Propagation.
- Assessed performance and investigated bottlenecks using Intel VTune Profiler.
- Used multi-threading, improved memory management and cached iterators to improve
execution time by 33%.
- Completed as part of the COMP60001 - Advanced Computer Architecture course in 2020.
Microarchitectural Optimisation • Advanced Computer Architecture
- Used the SimpleScalar processor microarchitecture simulator to investigate the effects of microarchitecture changes on the energy consumption of a processor running the Smith-Waterman algorithm.
- Optimised the processor’s microarchitectural features to minimise energy consumption, achieving a reduction of 45%.
- Completed as part of the COMP60001 - Advanced Computer Architecture course in 2020.
A Pigment of Your Imagination • Oxford Hack 2019
- Created an Android app in Kotlin and Java that turns photos into blank
colouring stencils.
- Implemented edge detection algorithm and scanline fill algorithms to find shape
outlines and fill colours within these lines.
- Finalist for Most Stylish Hack.
Composed • IC Hack 2020
- Designed and implemented a program to convert monophonic audio files into sheet
music by analysing their frequency components.
- Used a Fast Fourier Transform algorithm to convert audio from time domain to
frequency domain.
C to MIPS Compiler • EIE2 Language Processors
- Wrote a compiler in C++ to generate MIPS assembly from a subset of
pre-processed C90 code.
- Wrote a transpiler to translate a subset of C into equivalent Python.
- Used Flex and Yacc to implement lexing and parsing functionality.
MIPS CPU Simulator • EIE2 Computer Architecture
- Developed a CPU simulator in C++ to executed MIPS-1 big-endian binaries, and
created a testbench to verify the correctness of the simulator.
- Referenced the MIPS ISA specification to ensure parity between emulated
instructions and real hardware.