Education

Heriot Watt University

Mathematics Undergraduate

I built a strong foundation in mathematics and picked up a bit of physics from my undergraduate studies. Linear algebra, Abstract Algebra, Analysis, Combinatorics, Number Theory, Variational Mechanics, Fluid Dynamics.

University of Cambridge

Master of Advanced Study

I focused primarily on number theory during this course. I took courses on Combinatorial and Analytic Number Theory, Finite Simple Groups and Category Theory. I wrote my masters thesis on Brun's work in Sieve Theory.

CodeClan

Professional Software Development

This is a 4 month intense(!) course on full stack software development. We learned everything from frontend to backend, software development methodologies and test driven development. We built our own projects over the weekends and also did complex group projects that lasted a week each. It's been a fantastic experience.

Projects

Clan of Code

Adventure Game

This was our mid-course group project that we made in less than a week! We built an entire game in the browser using a mongodb backend we built with nodejs/express to hold the story, monsters and items in. The rest of the game is implemented in javascript with Vue.js. It was fantastic fun working with Keith, Ollie and Jack on this!

Friendo

Social media mobile app

This was our final group project that we made in one week! We jumped straight into using a technology that we had never used before: React-Native. It was challenging but we managed to build an excellent prototype mobile app as a team. We built a backend that supported account creation and the app was able to place profiles on the map and users are able to chat with other users through it. It was awesome working with Jack, Craig, Rumen and Nourhan on this.

my-space-portal

I created this to consolidate my learning about making use of public JSON APIs. This page pulls information from various online APIs that provide information about space. I also use the browsers LocalStorage to save which tabs the user wants to keep open.

Countries of the World

This was lab that we did as part of our course. I really liked having the ability to present all the information from the countries API so I continued to work on it adding a SVG map that I found on wikimedia and using javascript to light up the selected country.

SpaceX Launches API

As a challenge I was given a design for a webpage and then implemented it as a single page react/typescript web application that fetches and parses live data from the SpaceX public API!

Continuous Personal Development

Astronomy with an online Telescope

Open University

This course was fascinating. I learned to make requests from the COAST telescope to study and measure variable stars. The data from all students is collated in order to build a long term graph which is used to calculate attributes of the star.

An introduction to exoplanets

Open University

I took this course right after the online telescope course because it gave me so much momentum and excitement to study more astronomy. This course started by teaching us about our own solar system and then extrapolating that to what may occur at other stars. It taught us the methods and calculations involved in the recent discovery of exoplanets, in particular hot jupiters.

Discovering Computer Networks

Open University

This is a CISCO style networking course. We used packet-tracer to build simulated models of common computer networks and to practice configuring the routers, switches and other devices involved. I learned about subnet masks and the OSI layers from this course.

Learning from Major Cyber Incidents

Open University

I became interested in how we can protect our cyber infrastructure after witnessing the WannaCry system cause a lot of chaos globally. This course covered that as well as the stuxnet worm which damaged nuclear equipment in another country.

Introduction to Galois Theory

Coursera

This was a very difficult course but the mathematics is an importanting building block in other things I plan to learn, so taking this online course helped me ensure that I was learning it rigorously.

Introduction to Complex Analysis

Coursera

This was a short but very useful complex analysis course. It covered the basic theory of holomorphic functions, contour integrals and it also went into the mathematics of Mandelbrot and Julia fractals a bit.

(6.001) Structure and Interpretation of Computer Programs

MIT OpenCourseWare

This course helped me get a strong understanding of the algorithmic aspects of programming. Lots of practice with recursion as well as a deeper look into the internal workings of programming language interpreters and compilers.

(6.002) Circuits and Electronics

MIT OpenCourseWare

This course gave me a much more solid grounding of electronic circuits. Learning Kirchoff's Law was one of the most illuminating moments for me. It enabled me to build my own electronics projects.

(Dan Boneh) Cryptography I

Coursera

I am currently this taking this cryptography course. This is a great introduction to the primitives involved in secure digital communication and the formalization of their security properties. There is also practical programming projects like breaking multiply-used one-time-pads which are challenging but a lot of fun.

Interests

Juggling

I have the 5 ball cascade solid and am able to do a few different siteswaps. I also love club juggling and passing clubs between multiple people.

Weightlifting and Yoga

I have found weightlifting and yoga extremely beneficial to my body and mind, both of these kinds of exercise are great!

The Go Boardgame

I've been playing Go on and off for many years, I'm around 11-kyu. I learned to play online KGS, OGS etc and I occasionally meet at the local Go club.

Mindfulness

I practice mindfulness meditation following Thich Nhat Hanh.

Electronics

I like tinkering with electronics. My most advanced project was a gameboy cart and save dumper. I have also experimented a bit with microcontrollers, for example bridging a old apple macintosh ADB keyboard across to USB.

Speed Cubing

In the last few months I taught myself to solve the rubiks cube and megaminx, and have become very keen on practicing speed solving. My average time for a 3x3 solve in around 55 seconds at the moment.