Very interested in new web technologies. Active in the local Bristol tech meetup community. Strong academic background. Looking for work in central Bristol.
- Front-end: React, Redux, Sass, CSS modules, Webpack, Babel, jQuery and some React Native
- Other tools: Git, Vim, tmux and many other Unix command line tools
Christ's College, Cambridge (2008 - 2011)
- B.A. Computer Science (2:1)
Strode College (2006 - 2008)
- Maths (A)
- Further Maths (A)
- Physics (A)
- Chemistry (A)
- Biology (A)
Software Engineer at Momentum Financial Technology (March 2015 - August 2017)
I joined as the only engineer on a project to redesign a consumer finance website. I worked closely with the designers in an agile cross-functional team.
- I created a new static site (built with Metalsmith/Gulp/Handlebars) and set up a cloud-based CMS (Prismic)
- It included several small financial tools/calculators built with React
I created a life-insurance quote comparison tool using a third party API.
- It included a complex form, results view, lightweight proxy backend and basic Intercom integration
- Built with React, Redux and Sass
- I implemented my own version of Redux and later gave a talk on Redux at BristolJS
I created an "investment options tool" for helping first-time investors decide what to do.
- I later gave a lightning talk on the project at BristolJS, watch the video here!
- It visualised the decision tree as a literal graph on the page and could zoom in/out and pan around as the user progressed
- Built with React, Redux, SVG and some basic maths for zooming/panning
- I learned a lot about high-performance animation techniques
I switched to a larger team of developers helping to build a single-page Redux app. It was made to help financial advisers share information with their clients (Moneyhub Connect).
- My team did significant work developing new UI components
- I introduced two big new technologies into the project: CSS modules (to replace Sass) and React Storybook (a tool for developing components in isolation)
- We also worked to integrate the search feature of a third party financial adviser database, I communicated with their team (over Slack) to figure out requirements
The company went through a restructure and I temporarily moved back to the original team.
- Migrated an old site to a new domain (yourwealth.co.uk to momentum.co.uk, neither are still online)
- Helped hire two new developers
I moved back to the other side of the business to work on the consumer app Moneyhub. It was another large single-page React/Flux app.
- We started off with a 5-day Design Sprint to try to figure out how to get new users engaged with the app
- We implemented a major new feature: an animated homescreen with "nudges" to give insights about the user's data
- I worked with many back-end microservices (with Docker, Node.js, Express, Postgres and Mongo)
- I implemented a lightweight server for email verification and password resets (with Express and Nunjucks)
- Experience with functional programming (using Ramda)
- Experience with TDD (using Mocha)
- Experience writing UI tests (with the PioneerJS framework and Cucumber syntax)
The app was previously bundled with Cordova but an effort had already been made to migrate to a lightweight React Native wrapper. The iOS build worked but the Android one did not. The project was based on a very old React Native bootstrap project and needed significant work.
- I got it working and released it to the Google Play Store
- Implemented a system for building the Android app in multiple different white-labelled versions (with Gradle)
- Integrated the AppsFlyer SDK (an analytics platform) and added server-side event tracking
I went with five other people from the company to take part in the 2-day Pensions Dashboard Techsprint event in London (run by the HM Treasury).
- We worked for two days to create a new prototype for the upcoming pensions dashboard
- We had also previously held an internal 3-day Design Sprint based around visualising pension data (I created some interactive graphs inspired by Bret Victor's Ladder of Abstraction)
I also took an interest in our Git repositories while working at the company.
- I created a project that gathered all of the package.json files from all of our repos (using BitBucket's API) and could tell you which projects depended on which other ones
Meetups and conferences
I have attended, helped out and given talks at a lot of local Bristol tech meetups over the last few years:
- In April 2016, I gave a lightening talk at BristolJS demonstrating my zoomable investment tool (video)
- In July 2016, I gave a full talk at BristolJS on Redux (slides)
- From August 2016 to August 2017, I ran the CodeHub Hack Night meetups every two weeks
- I also helped organise two Git workshops
- I've been to a lot of other meetups in Bristol including Bristech, Bristol Web Perf and more
- I went to the Simpleweb Future of Chat hack day (and won a prize for my Slack-based Git chatbot)
I've been to these conferences:
- Personal blog documenting some of my past projects
- 46 posts/36,000 words
- Simple static website built with Metalsmith, Nunjucks and Sass, hosted on Netlify (previously GitHub Pages/Cloudflare)
- Plugin for the static site generator Metalsmith
- Checks internal links for references to files that do not exist
- Has received 6 pull requests and 14 stars on GitHub
- I have been using Vim inside the terminal for a very long time
- I use Bash, Git, Vim, tmux, ag and fzf a lot
- The repo represents 450+ commits worth of config and hacks
- I also type with the programmer Dvorak keyboard layout
- A visualisation of all the weeks in a human lifetime, originally based on an idea from this Wait But Why blog post
- I have used it as a playground for trying out new rendering methods, in the past it has been rendered with React, Nunjucks and a zoomable/pannable canvas
- Website for the Professor P series of children's books
- Includes games and activities for children and details about the books and events
- Built with AngularJS, jQuery, CoffeeScript, DocPad, Browserify, Markdown, Bootstrap and Sass
- I later split the wordsearch game into a separate repo and helped somebody integrate it into their language learning site
- Command line program for organising a personal diary
- Three year side project written in Bash and re-written in Python
- Built a working poker-bot with a complex AI search algorithm
- Third year dissertation project, written in Java
Edubase web scraper (2011)
- Simple web scraper written in Java using regular expressions
- It downloaded school contact information, saving a lot of time for a small publishing company
University group project: molecule recognition (2010)
- We created an Android app that could take a photo of a diagram of a molecule and tell you what it was (e.g. water or caffeine)
- I did most of the Android development for the project