I’m a passionate designer and developer with years of experience working on teams to ship compelling products.
I hold degrees in both design and engineering and I have years of practical experience directing, designing, and developing for the web and the physical world.
Helperific: A platform that takes the friction out of finding and giving near time help.
The sabbatical was a chance for me to continue developing Helperific into an extremely scalable web app, picking up knowledge with new technology and practices along the way.
Design: I created mockups in Sketch, using Marvel for clickable prototypes.
Backend: I built a GraphQL backend Node.js app using the Micro Apollo library and deployed it on AWS Lambda via Apex Up.
Frontend: I built a single page app with Angular along with the Apollo client for GraphQL interactions. All Typescript types for the frontend GraphQL queries are generated programmatically by introspecting the GraphQL backend.
Package managment & Testing: The frontend and backend are setup in a mono repo using Yarn workspaces, unit and integration tests written with Jasmine, Karma and Supertest.
Infrastructure: The app is deployed to AWS with Docker and Kubernetes via Terraform via a CI / CD workflow provided by Bitbucket pipelines.
ParkNow is a multi national company that provides pay-by-phone solutions to local government and private companies.
Angular 2 with NGRX: ParkNow had a large front end development team of 8 developers. I helped refocus the technical direction of the app we were building, making the case with management for NGRX which is particularly well suited to large complex REST applications.
Mentoring, Testing and Pair Programming: I pair programmed with multiple developers on the team and helped them better appreciate TDD, which works particularly well with NGRX (Redux). I also introduced Wallaby JS, a test runner. I mentored junior developer on how and where to break down the app into smaller more manageable chunks.
Reactive forms: As a team we decided to use Angular reactive forms. I coded a base validation solution to be used by the whole team, including helper functions and display directives. I also implemented the first custom form components using control value accessors.
Technical input: I helped the backend team work out a solution for a complex permission and menu system that needed to work accross microservices.
Benefex is the business behind RewardHub, the award-winning global employee benefits platform. RewardHub enables over 200 of the world’s largest employers to run, manage, and engage their employees in reward and benefit programmes.
Angular 1 Modernisation: I helped modernise an existing Angular 1 codebase, that still needed to support IE8. While adding features, I architected a move from the older ‘$scope’ MVC style to a component based style (using directives as components) and transitioned to Typescript in anticipation of an eventual move to Angular 2.
NPM & Webpack: Benefex had multiple sub-sites running Angular 1 and shared code was being copy/pasted to the different sub-sites. With my direction we upgraded the sites to use Webpack and moved from Bower to NPM.
Private NPM repository: I helped set-up a private NPM repository, which allowed us to start packaging up common Angular code into versioned modules and a Webpack DLL which we were able to share across sub-sites via a CDN.
Open Source: I helped create the first open source project at Benefex: an inactivity-countdown-timer that includes unit tests that can be run with Karma via Sauce Labs (which I introduced) to check cross browser compatibility.
Angular 2: The team and I wrote our first test Angular 2 app in May 2016 while competing in Angular Attack we started our first production Angular 2 app in September. This app included a search function allowed us to take full advantage RxJS.
NGRX: Shortly after working on the search feature it became clear that our app would be big enough and complex enough that it would benefit from NGRX (the Redux implementation for Angular 2).
Mentoring: Throughout my time at Benefex I practiced pair programming to up-skill the junior and mid-Level developers on our new component based architecture, Redux, and unit testing.
Testing: I introduced Wallaby JS as a test runner Angular 2, making it much easier to gain feedback as we practiced TDD and allowing us to achieve 100% test coverage in newer modules.
I built and deployed a web based prototype of a financial simulation targeted at C-Level executives. The game had previously been run via spreadsheets with paper forms. The project goal was to create a slick interface, replacing the paper forms with a digital experience that included validation and would allow for the easy extraction of data for complex modeling.
Design: Using an off the shelf design theme that was easy to implement in Angular (Google Material Design), I iterated on an interface based off of the old paper game over a two week period. I used Sketch and InVision to design and collect feedback during the process.
Backend: Coded the backend REST server in Node using the Strongloop Loopback framework which is built upon Express JS. Tested the server with Mocha, Chai and Supertest. Deployed with IBM Bluemix.
Frontend: I built the app with Angular 1.4, using a Gulp build system deployed to a static file on an IBM Bluemix instance.
GoFar: GoFar sells a physical in-car device which provides clever real-time driver feedback to let you save 20% on fuel, play games, reduce emissions, and cut travel time.
Design: I was broadly responsible for product design. I conducted some initial ethnographic research, user interviews, surveys, and a co-design session. I reated iOS mockups and prototypes with Illustrator, Sketch, and InVision and conducted early user trials to shape the direction of the app.
Business development: Worked with the rest of the team to be as lean as possible while we build our product. Lots of time spent working on business model canvases, feature prioritization based on our ethnographic research.
Development: I coded a backend REST server in Node.js using the Strongloop Loopback framework which is built upon Express JS. I tested the server with Mocha, Chai, and Supertest. I set up staging and production servers using AWS including systems to log and analyze server statistics. I secured our communication over SSL with an NGINX reverse proxy. I designed and coded an Angular front end admin interface (with Gulp and ES6) which was deployed to Amazon S3 on CloudFront. I also provided mentoring to the the interns and junior developers on the team.
Financial Services: An online mobile and web home loan application with challenging UI/UX requirements .
Frontend Development: I created a prototype app with Ember JS and then rewrote it as a production app using Angular JS (the institution later decided to standardise on Angular;I had suggested an Angular initially). I up-skilled some developers on the team, making sure they were across the frameworks and techniques and mentoring them when needed. The app was well tested with Protractor and automated integration tests were run against multiple browser versions in the cloud.
Study Socket: An online application that facilitates peer assisted study.
Design: I led the design of the beta application, marketing website and iPhone prototypes. I directed the logo and brand identity creation and produced a small animated marketing video.
Business development: Using lean startup principles as a co-founder, I was involved in defining the product and pricing as well as customer development and market validation.
Studiosity: A platform that connects students to tutors for live, real-time help online, on-demand, in the browser.
SkillsBuilder: A web app that lets teachers assign homework and tests to cohorts of students and to track their results over time.
Design: I led co-creation sessions with stakeholders, created wireframes and HTML prototypes, and developed/ tested cross-browser stylesheets for the production app. I organised usability testing sessions with real students and teachers; one ethnographic research session I conducted led to a new feature that was wildly popular with teachers.
Development: As part of the development team, I paired with other team members to implement the functionality in my designs.
BCS Innovations is a company that specialises in the development and service of various electronic and software products. The company’s expertise spans areas including telecommunications, security, instrumentation, and medical devices.
Mechanical and Industrial Design: I designed a vacuum formed casing for an innovative medical device. I organised and assembled small production runs of printed circuit boards including performing verification and validation. I also designed various graphics and components for scientific equipment.
Founder - Helperific
Bachelor of Engineering (Mechanical and Mechatronic)
with Honours (First Class)
Bachelor of Design (Industrial)