Personal details

Peter H. - Remote

Peter H.

Timezone: London (UTC+1)

Summary

I enjoy building solutions to problems, using new and also established technology that is the right fit for the job. I am diligent but also pragmatic. I have worked at small to medium-sized companies as a principal developer, development manager, architect and CTO.

I am excited about learning new things and am keen to learn from others, whether technical or in other fields. I enjoy working with a range of different people and have been told that I am excellent at explaining technical solutions to non-technical stakeholders. I like to think of the end-user and business benefit of technical decisions.

Programming is very rewarding for me as it is logical, but also very creative, and I care about design and form as much as tidy code. I am inspired by the clean design of companies such as Apple, but also the usability and innovation of Google and Amazon.

When not coding I can be found listening to the Clash or to podcasts about retro gaming - it is my ambition to have my own vintage arcade one day!

Work Experience

CTO, tech lead and solutions architect
Ruuby | Feb 2016 - Sep 2019
Node.js
React
Scrum
Leadership
Mentoring
React Native
I hired a team and architected the solution for the full tech offering including mobile apps, websites and backend as well as corporate IT and productivity software. I was also actively involved in the application development, creating and contributing to the codebase of all projects, and created the continuous integration and automated deployment pipelines as well as define work processes and methodology.
Principal Developer and Development Manager
Net-a-Porter | Dec 2010 - Jan 2016
Node.js
Perl
Linux
PostgreSQL
Amazon EC2
Amazon S3
Apache Solr
Apache HTTP Server
I worked first as Development Manager, then as Principal Engineer for the Product Management team. The team's responsibility was product information management (PIM) and product lifecycle management. The systems built and maintained by the team were used internally by the buying and product editorial teams as well as by the front end teams. I led the team as development manager in the internationalisation project where our product catalogue had to be translated into three new languages (including Chinese) as well as the technical challenge of publishing it to new data-centres on the other side of the world. After a company restructure, I was Principal Engineer, where I architected and built, alongside the team, a solution to provide our product imagery to the front end where it could be resized on-the-fly. This had to be done while maintaining the high quality imagery our luxuy brand required.

Personal Projects

2019
Node.js
Elasticsearch
TypeScript
React
GraphQL
AWS DynamoDB
AWS Lambda
I recently re-built this site using client-side and cloud-based technologies. It was previously written in Perl and MySQL on a co-located server. I used React, AWS Cognito and Apollo GraphQL on the front end and Node.JS, AWS Lambda, API Gateway, DynamoDB, Elasticsearch and Apollo GraphQL on the back end. The site was designed by a contractor I hired who did the UI in Figma for desktop and mobile, and I used atomic design and styled-components to create the react components for the site. These were tested using Jest and catalogued using Storybook. I then brought them together using GraphQL hooks and a local resolver for local state. User authentication and authorisation were handled using AWS Cognito. The data store was DynamoDB, with an Elasticsearch layer on top to provide filtering and textual search. The API was presented as a single GraphQL endpoint, using schema stitching to combine the custom resolvers and an off-the-shelf GraphQL CMS solution for the product catalogue. All front-end and back-end code was written in Typescript, and linted with tight rules to avoid use of untyped code.