Projects

Projects at Flexpulse

The biggest projects I've undertaken were for Flexpulse, a Dutch IT company for which I worked in my gap year and during university. The company offers a comprehensive administration software package for driving schools, including pupil and employee management, accountancy, invoice tools and personal calendars. The main software is written in PHP, JavaScript and HTML. I've also developed several tools in Python to aid testing, development and support customers.
At work
Because I'm a sucker for statistics, here are some cool quantative numbers about my time at Flexpulse:

2600

Person hours

1450

Commits

176K

Code additions

125K

Code deletions

(Last updated: 31 August 2020)

Projects at the University of Edinburgh

Bash, C

100%

Software security

Exploited several software vulnerabilities using GDB and shellcode.

Course: Computer Security

Python

98%

Part-of-speech tagging

Implemented a Hidden Markov Model and the Viterbi algorithm to perform part-of-speech tagging.

Course: Foundations of Natural Language Processing

Bash, Python

100%

Cryptography

Utilised asymmetric encryption, email spoofing and password cracking techniques and mounted a MitM attack.

Course: Computer Security

Python

94%

Corpora analysis and language identification

Built a character-level language model and performed analysis on several corpora using NLTK.

Course: Foundations of Natural Language Processing

Java

100%

Location-based strategy game

Specified, designed, implemented and evaluated a large-scale software system involving an autonomous drone competing with a human player.

Course: Informatics Large Practical

Python

81%

Learning models

Explored various learning models such as K-means clustering, PCA, and logistic, linear, KNN and decision tree regressors.

Course: Applied Machine Learning

MATLAB

95%

Clustering and classification

Implemented clustering and classification algorithms and analysed them using data visualisation.

Course: Machine Learning

PDDL

94%

Planning with PDDL

Used the Planning Domain Definition Language to model, implement and extend the domain of a robotic waiter.

Course: Reasoning and Agents

Haskell

99%

Search and optimisation

Implemented several search and optimisation algorithms in the functional programming language Haskell.

Course: Reasoning and Agents

Java

97%

String matching

Performed analysis on several string matching algorithms and used Java to implement them.

Course: Algorithms and Data Structures

Python

99%

Natural language query system

Developed a natural language query system.

Course: Processing Formal and Natural Languages

C

99%

Cache simulator

Designed and developed a cache simulator.

Course: Computer Systems

Java

Group project

91%

Auction house system

Specified, designed and developed a simplified computer system for managing auctions at an auction house.

Course: Software Engineering

Java, Haskell

99%

Formal language processing pipeline

Implemented the stages of the language processing pipeline for a subset of the Haskell programming language.

Course: Processing Formal and Natural Languages

C, MIPS

100%

Spell and punctuation checker

Implemented a spell and punctuation checker in C and MIPS Assembly Language.

Course: Computer Systems

MATLAB

95%

Differentiation, integration and root finding

Implemented and evaluated several numerical methods of approximating derivatives, integrals and roots.

Course: Computing and Numerics

MATLAB

97%

Substitution and interpolation

Implemented and evaluated interpolation methods and forward and backward substitution algorithms.

Course: Computing and Numerics

Python

100%

Clustering and categorization

Examined and analysed data using clustering and categorization algorithms.

Course: Cognitive Science

Python

100%

Neural networks

Examined and analysed data using perceptrons and neural networks.

Course: Cognitive Science

VBA

94%

Data analysis

Performed extensive data analysis to determine the fractal dimension of compressed aluminium foil.

Course: Programming and Data Analysis

Python

100%

Scientific programming

Programmed several practical physics applications such as calculating the path and energy of projectiles under drag and damped harmoic oscillators.

Course: Programming and Data Analysis