Welcome To
My Software Portfolio

I am Sean, a hobbyist software engineer and musician studying MEng Computer And Electronic Systems at the University of Strathclyde. As a highly motivated and aspirational individual, I relish in the challenge and satisfaction that is had through building inventive and practical software solutions to solve the problems I encounter and to explore the things that inspire me.

This portfolio showcases a selection of the projects that I am most proud of, chronicling my growth as a software engineer where I have honed and expanded my skills in the areas of desktop, web and game development.

Projects

Click the project cards to learn more...

Desktop Apps

Music Analyser


An application designed to provide a technical analysis of the musical elements present in an audio track. Through the use of audio processing and DSP, key harmonic features of the music - the notes, chords and key signature - are extracted in real-time and displayed intuitively to the user.

  • C#
  • .NET
  • WinForms
  • DSP
  • NAudio

Maps Area Capture Tool


A simple tool to help plan out large area captures in Google Maps. Select the area you want to capture and the tool will determine the individual captures that should be made at a desired quality level.

  • C#
  • .NET
  • WinForms
  • Geolocation
  • Maps

Web Apps

FourierSketch


FourierSketch is a web app that uses the principles of Fourier analysis to construct an interactive sketch of any image. Users upload an image which gets processed to extract edges and construct a sketch.

  • React
  • JavaScript
  • p5.js
  • Bootstrap
  • Firebase

AutoDJ


A dynamic web app that allows groups of users to join custom music sessions, where any user in the group can add songs to a queue and vote for which songs should play next. This web app is perfect for parties and social occasions (both online and in-person) as it allows all users in a session to participate and add their favourite songs to the queue.

  • Javascript
  • C#
  • ASP.NET
  • SignalR
  • Bootstrap
  • Azure

Game Development & Modding

Improved Radio (Cyberpunk 2077 Mod)


Allows full control over the in-game radio. Features include disabling individual songs on each radio station, skipping the current song and creating custom playlists of songs from any station that can be shuffled and saved.

  • Lua
  • REDEngine API
  • CyberEngineTweaks API

Tesla


A 3D platformer video game where the player must traverse a level by shooting monsters using items scattered around the map.

  • C#
  • Unity
  • Chronos Time Control
  • Blender

Music Analyser


"As a keen musician, I have a strong fascination with uncovering the musical theory and technicalities that are behind my favourite songs. Music Analyser lets me explore this fascination, while also satisfying my passion for all things maths and signal processing related."


Started: Jun 2019Last Updated: Jan 2022 (Version 0.8.3)


Music Analyser is an application designed to provide a technical analysis of the musical elements present in an audio track. Through the use of audio processing and DSP, key harmonic features of the music - the notes, chords and key signature - are extracted in real-time and displayed intuitively to the user. An ongoing research and development project, Music Analyser was designed with modularity in mind. Through the script chain system, a high level of customisability is provided in the various DSP and pitch detection techniques employed, making it is a rich and expansive tool to satisfy the curiosity of musicians and music enthusiasts alike.

Features:

  • Analyse any MP3 or WAV audio file for musical features in real-time with playback.
  • Musical analysis comprises note detection and chord/key signature prediction.
  • A modular and fully customisable DSP pipeline for performing musical analysis.
  • Optimised analysis presets using various DSP algorithms (FFT, Harmonic Product Spectrum (HPS), Constant-Q Transform (CQT)).
  • Control the tempo and pitch of audio playback (and analysis) independently.
  • Ability to record audio from a capture device to subsequently playback and analyse.
  • A draggable peak filter to highlight any frequency in the audio playback.
  • A spectrogram viewer to present an overview of the analysed track over time.
Biggest Achievement: The design and implementation of a modular DSP pipeline in the form of the Script Chain and Script API. This allows DSP functions to be compiled into external script files which can be injected into the app when needed and customised at runtime via script-defined Settings. Thus, the system allows near limitless possibilties in the way analysis is produced.
Skills Developed:
  • Integrating external libraries
  • UI/UX design
  • Asynchronous programming
  • Algorithm design and optimisation
  • API design
  • Digital signal processing
Technologies Used:
  • C#
  • .NET
  • WinForms
  • DSP
  • NAudio


Languages & Technologies

With 8+ years experience coding in languages such as C# and Java, and 2+ years experience with web development and web technologies, I consider myself a very well versed and capable software engineer.

Desktop Technologies

Proficient with
  • C#
  • Java
  • Python
  • Visual Studio
  • .NET
  • Git
Have experience with
  • C
  • C++
  • Theano
  • TensorFlow

Web Technologies

Proficient with
  • Javascript
  • React
  • ASP.NET
  • Bootstrap
Have experience with
  • Angular
  • Django
  • PHP
  • MySQL
  • Azure
  • Firebase

Personal Accomplishments

5+

Open Source Projects

25+

Github Stars

2000+

Downloads