Jake StockwinStudying MMath in Mathematics and Statistics, University of Oxford
Programming Skills
Website Portfolio
Other Experience
About
I am a highly organised, self-motivated fourth year student reading Mathematics and Statistics at the
University of Oxford. I particularly enjoy Applied Mathematics, especially statistics and probability, and am
also very interested in computing and programming.
I am currently seeking job opportunities/graduate schemes which will utilise the skills I have learnt, preferably looking at modelling or big data analysis.
For my 4th year dissertation, I am investigating a continuous version of the k-armed bandit problem and applying Upper Confidence Bounds (UCB) to Gaussian Processes. This requires computational simulation, for which I am using Python 3. I am using array operations from numpy to speed up my code, scipy to do some functional optimisation, and pyplot to create figures for my write up. The simulation often requires hundreds of runs, with up to one million iterations in each run, meaning it can be quite slow. I am therefore constantly profiling my code to try to improve the speed.
Php
I used PHP for the OxIMUN 2015 website. Although there was no real backend to this site, there were functions which got data from text files and displayed it which was sufficient for this use case as it was me updating the site. Moving forward, I wrote an initial version of the Students4Students websites in PHP, and wrote my own backend for this which stored blog posts, authenticated users logging in, and stored uploaded files. Since then I've switched to using KeystoneJS to handle the backend for me. I also helped write the backend for a film night voting website in PHP, interacting with a SQL database and utilising the relational functionailty of SQL like inner joins.
Nodejs
My experience with NodeJS is mainly built on top of KeystoneJS applications. I have written a number of websites in node, and have also looked into ReactJS, although none of my live sites currently use it. My main exposure to ReactJS has come from developing KeystoneJS, specifically when fixing bugs in the AdminUI, which is a React application. Keystone also uses MongoDB as a database, so I have had exposure to managing mongoDB databases.
Nightwatchjs
NightwatchJS is an end to end testing framework, which I have used extensively while getting tests running for KeystoneJS. For Keystone, I have released my own NPM Package (with the help of some other Keystone devs) which is used to test Keystone itself, but importantly can be used by any developer who has used Keystone to easily interact with the admin UI whilst running tests. We've essentially written a Keystone-specific API around NightwatchJS, allowing the user to call functions like "deleteItem", rather than having to set these up themselves.
Keystonejs
KeystoneJS is a Content Management System for NodeJS. I have exerience developing with Keystone, as I have used it for the majority of my recent websites. I am also a top 10 contributer (@jstockwin) and a member of KeystoneJS on GitHub. Alongside fixing the occasional bug where I can, my main focus has been keeping their testing and continuous integration running. This has involved writing end to end tests for the admin UI in NightwatchJS, and configuring Travis CI correctly.
Hosting
I currently host all my live sites myself (with the exception of this one, which is on Github Pages). I have 7 servers ("droplets") with hosting company Digital Ocean. These are all linked together to give a redundant hosting system (2 load balancers, 2 app servers, and 3 mongodb servers). I also have a application running to deploy updated sites. We test all of our sites, and when Travis CI passes on a build it tells our deployment server to update the site. The deployment server then updates one application at a time, copies the new files, runs an npm install, and then restarts the site. All the hosting configuration and data security measures were set up by myself and a friend.
CanDoMaths promotes that it is no longer acceptable to say that only certain types of people learn mathematics. This site provides ideas and links to resources to support teachers and parents to inspire children to be successful. It is written in NodeJS with KeystoneJS as a backend content management system.
Client:
CanDoMaths
Date:
Oct 2016
Service:
Web Development
From the Client:
We started working on CanDoMaths.org with Jake Stockwin with only an initial vision of what we wanted the web-site to achieve. Jake quickly realised that the design was going to be an interactive process and he pro actively made suggestions to support our ideas. He was totally committed to the project with a very quick turn around from ideas to engineered site. He continues to respond to changes as we extend the design further. Jake is an excellent partner to work with and I have no hesitation in recommending him.
A simple academic website for one of my tutors at Oxford. Robin wanted a website to display his research projects, and also
his teaching experience. It is written in NodeJS with KeystoneJS as a back-end content management system, which allows Robin to log in and update all the information on his site.
Client:
Robin Thompson
Date:
Feb 2016
Service:
Web Development
From the Client:
Working with Jake was a great experience. Not only did he design me a new website, but he also patiently explained everything that he was doing so that I can now manage the website myself. I highly recommend working with Jake, not only for the professional looking website that will result, but also as a great person to work with along the way!
Film Night
This is a site which runs voting for a weekly film night. Users may nominate films at any time, and then each week there
is a voting period, in which users rank five films which have been randomly chosen from this list.
The site is no longer live. It was written in PHP, and used SQL as a database.
Oxford International Model United Nations (OxIMUN), is a world-renowned conference held annually in Oxford.
People from all around the world travel to attend, and in 2015 we hosted over 700 'Delegates', and 60 'Chairs'.
I was elected as IT officer for the 2015 conference, and the biggest role in this is the maintenance
of the website. I made some big changes to the website during that time, mainly to make it more responsive
on mobile devices.
After a year, the next IT officer took over from me, so the live site is no longer maintained by me, although it is still mostly the same.
Client:
Oxford International Model United Nations
Date:
Jan 2015 - Dec 2015
Service:
Web Development
From the Client:
I was recommended Jake by a mutual friend on my team. As soon as he joined, he overhauled the website to make it far more interactive and intuitive. In his position as IT officer, he not only worked professionally and diligently to ensure the sleekness and responsiveness of the website, but he also created a time-saving registration application which guaranteed the swift registration of our delegates. Fantastic to work with and a true star; I could not have asked for a better IT officer.
Stephen Osuobeni, Secretary-General of OxIMUN 2015
MyTutorWeb is an online one-to-one tutoring service. Tutorials take place in an interactive, online classroom;
both student and tutor have access to an whiteboard equipped with lots of tools, and can also see and hear each other.
I have been tutoring with MyTutorWeb since May 2014, and after 3 months was upgraded to a Premium tutor based on good reviews.
Students4Students is an emerging new charity that aims to provide one-to-one tutoring in primary schools, in an effort to
increase the literacy levels of students when they leave primary school. As their IT officer, I have designed their website.
Initially, I built the website from scratch using Jekyll, and the website was hosted on github pages.
After short time of using the jekyll website, the committee decided they would like a log-in area for tutors only.
I then re-wrote the website in php, set up SSL hosting with a SQL database on the server to handle users logging in.
Since then, the site has had another revamp, and is now written in NodeJS, using KeystoneJS as a content management system for the backend.
Client:
Students4Students
Date:
Apr 2015
Service:
Web Development
From the Client:
Jake has been a fantastic help accommodating our needs. He has built a functioning website that forms the basis of how we share information; without this website I am sure we wouldn't have grown as fast!
University
As a Mathematics student, I have been exposed to many areas of maths throughout my degree.
The ones that have interested me most have been Probability, Statistics and also Numerical Analysis.
I have done a reasonable amount of work using MATLAB, and also a small amount using Sage, both of
which I have really enjoyed.
In my third year, I transferred to the Mathematics and Statistics course. This has introduced me
to more applied methods, including lots of model fitting and analysis in R.