For front-end code I have recently been using Vue.js and React, and I have spent a number of years working with AngularJS. For back-end code I often use Node.js with the Express, Koa or Serverless frameworks. I have experience using Amazon Web Services and Google Cloud Platform, as well as working with Docker containers and provisioning bare-metal servers. I am also familiar with a variety of databases and file storage technologies.
At Control I worked as a full stack developer on a web application which aggregated data from multiple payment providers and displayed revenue analytics to the user. I was part of a team of approximately ten people, and we followed agile development methodologies based around a two week release cycle, with group sprint planning and review sessions and daily scrum meetings. Shortly after joining I took over the role of lead front-end developer, which involved maintaining and developing features for the Vue.js website, taking part in feature discussions and UI/UX reviews, and mentoring and reviewing the code of other team members. I also spent much of my time working on the server API, helping the back-end developers to transition from an object oriented JSON API using MySQL and CouchDB to a functional REST API using PostgreSQL and Citus.
I created a website that integrated with the Strava API, which allowed users and clubs to set running and cycling goals. The primary aim of developing this website was to learn new frameworks and technologies, such as React, GraphQL and Serverless. I also wanted to spend some time improving my knowledge of the AWS ecosystem.
I was hired by a university research group to create a new AngularJS user interface for the Graasp platform (graasp.eu). I also had to modify the website so that it could be used by Doctors Without Borders Geneva. I quickly transitioned into a full stack role, becoming the lead developer and taking on further responsibilities, including updating and optimising the SpeakUp web app (speakup.info). Alongside the development work I would mentor students and interns, review the code of team members, and provide time estimates for development work. There were also a number of Linux and Mac system administration tasks, including migrating the services to new rack servers.
My first experience of working in a startup was at Amplifier Agency, where I worked with a team of developers to create the Shareable Apps platform (shareableapps.com). My role was to automate the creation of jQuery Mobile web apps using data provided by the authoring platform. We also created a number of bespoke web apps for clients.
While working with the Juggler Design agency (juggler.com.au), I created many websites for small businesses. Most of these were built using WordPress as the back-end. The majority of the work involved creating new themes based on Photoshop templates provided by the graphic designer.
The website (cremeanglaise.fr) was created using WordPress, and the theme is a heavily modified version of the Twenty Twelve theme. A large number of customisations were added as theme functions, and a few standard plugins were also used.
At The Safe Shop (now safe.co.uk) I worked in a small team, as the front-end developer, on a custom-built PHP website. During my time there we redeveloped the whole front-end. Using mock-ups provided by the designer I produced a responsive design that integrated with the PHP back-end. I often used Photoshop for editing promotional banners and retouching product images.
At university I completed a Bachelor of Science degree in Media Production and Technology with first-class honours. The course covered a variety of subjects including web development, graphic design, video editing, video production, and audio production. I would regularly use Adobe Creative Suite applications to complete assignments, along with a variety of other industry specific software. I wrote my dissertation on CSS design and cross-browser compatibility, which involved designing a website and then using a range of browser specific hacks to make it appear identical in 20+ browsers (including IE5!).