HJ
Harry Jubb
Full-Stack Software Engineer
Experience
Cresset
Head of Web Development | Aug 2022 - Current
- Led a department of 10+ developers, DevOps engineers, and SREs, including hiring, training, mentoring, and line management.
- Drove the development and delivery of cloud-based services, including support for protein molecule modeling and cloud-hosted molecular databases, in hands-on and leadership capacities.
- Implemented and evangelised engineering best practices, including ensuring thorough test coverage and documentation, development automation through CI/CD pipelines, containerization, cloud-native development, GitOps, and infrastructure-as-code.
- Developed automated and codified standards for web development project structure using Ansible and pre-commit, reducing project bootstrapping time to minutes and ensuring a consistent developer experience across projects with linting, security assessment, and testing supported out-of-the-box.
- Developed a governance framework and toolkit for REST APIs by creating reusable OpenAPI components and Spectral linting rulesets, to ensure consistency of interfaces for internal and external customers, effective and automated documentation, and automated mitigation of multiple OWASP top 10 API vulnerabilities, resulting in passing penetration testing for one service with only one medium severity vulnerability on the first run.
- Fostered an engineering culture based on values of craftsmanship, delivery, and emotional intelligence.
- Contributed to achieving Cresset's SOC 2 compliance, including ensuring engineering compliance with attestations, and membership of the risk committee to identify and mitigate engineering and other risks.
- Informed company strategy and direction through membership of and contributions to the Torx Leadership Team and company-wide Strategy Group, ensuring that company growth supported effective delivery for customers.
- Software showcase: Flare Homology Modeling (cresset-group.com/software/desktop/flare/flare-homology-modeling). A cloud-based API utilising Open Source software for homology modeling (predicting the 3D structure of protein molecules). My role was driving the design and development of the API, and leading a team of two to implement the service as a serverless asynchronous task running service. Delivering homology modeling as a cloud service avoided a large local install and specific OS dependency for end users. DevOps: AWS (Lambda, ECS, API Gateway, ElastiCache), Terraform Backend: Python, Docker, Redis (Elasticache).
Senior Full-Stack Software Developer | Aug 2020 - Jul 2022
- Continued to drive the development and maintenance of Torx Design (see role below), a web-based workflow solution for medicinal chemistry, delivering key features directly and through mentoring junior developers.
- Led the development of Torx Analyze, which added data analysis capabilities to the Torx platform, increasing license revenue per customer.
- Independently developed and delivered the Torx Flare Extension, a Python/Qt extension to Cresset's Flare desktop application, enabling fluid collaboration between computational chemists and experimental scientists. The Flare extension increased the combined value proposition and upsell capacity of both Torx and Flare.
- Developed a TypeScript library
to enable customers to embed internal tools into Torx Design and exchange molecular data with Torx via the
MessageChannel
API, increasing Torx's stickiness as a platform by enabling customers to use their existing tools within the Torx ecosystem. github.com/torx-software/txda-webframe-helper. - Managed and mentored a team of three junior developers, including hiring, training, and line management.
- Researched and developed guidance for effective code review, working towards reducing code review time by days by encouraging smaller, more focused pull requests.
- Software showcase: Torx (www.cresset-group.com/torx). Torx is a workflow solution for small-molecule drug discovery, empowering medicinal chemists to optimise the design, make, test, and analyze cycle in drug discovery workflows. DevOps: AWS (EC2, ECS, S3, Lambda, PrivateLink), Terraform Backend: Python, Django, GraphQL, PostgreSQL, Redis, Docker, Celery, FastAPI, Nginx, RDKit (Cheminformatics toolkit). Frontend: VueJS, Bootstrap.
Full-Stack Software Developer | Oct 2018 - Jul 2020
- Built the production version of Torx Design, a web-based tool for medicinal chemists to design small-molecule drug candidates, as part of a team of four.
- Built a significant portion of internal and externally facing GraphQL API endpoints, receiving positive feedback from customer developers on API documentation and ease-of-use.
- Developed VueJS components for 3D protein/molecule structure viewing, data analysis dashboards (Plotly, aggrid), and molecular property visualization.
- Created a Python plugin architecture for integrating with third party and customer services, including chemistry-aware database searching, molecular property analysis, and workflow transition logic.
- Co-developed a distributed service for long-running drug design computations using Celery for horizontal scaling.
- Co-developed database and frontend architecture for real-time analysis of thousands of molecular datapoints in-browser.
- Implemented real-time collaborative 3D molecule viewing and editing features using NGL and websockets (Django Channels), including bond rotations, docking, and minimisation, delivering desktop-class 3D functionality to the web, a market-leading feature.
- Established modern development practices: Git workflows, CI/CD, Storybook testing, code quality checks, and Docker containerization.
- Developed the first iteration of infrastructure as code for Torx Design, using Terraform, reducing deployment time from hours to minutes and reducing the error rate of deployments.
- Software showcase: Torx (www.cresset-group.com/torx). See role above.
Wellcome Sanger Institute
Staff Scientist / Postdoctoral Researcher | Feb 2016 - Sep 2018
- Wrote Python and shell-based computational pipelines to process biological data, including data integration with databases of hundreds of thousands of protein sequences and structures, via flat-files, and external REST API sources. Created and administered MongoDB databases to store these data.
- Conducted data analysis and visualization using Python, Jupyter Notebooks, and R, to deliver scientific insights.
- Started fortnightly "technical corner" sessions, encouraging presentations, exploration, and evaluation of new technologies and frameworks including full-stack web (NodeJS, ExpressJS, Angular, React), computational pipeline approaches (Python doit, Nextflow), and development methodologies and architectures (e.g., microservice architecture, serverless) within the team.
- Led a team of developers and scientists in building a Neo4J graph database and GraphQL-driven analysis and visualization solution for identifying drug repurposing opportunities for the 2018 BioData Hackathon.
- Presented internal and external seminars and poster presentations, including poster presentations at international conferences and oral presentations to audiences of over 100 people.
- Software showcase: COSMIC-3D (https://cancer.sanger.ac.uk/cosmic3d). A key deliverable in this role was a web-based tool to analyse and visualise cancer mutation data. COSMIC-3D is a full-stack web application that allows users to search for genes and proteins and visualise and analyse mutation data in 2D and 3D. Key features: Mutation 2D-to-3D mapping pipeline, 3D protein structure visualisation, 3D mutation heatmaps, 2D sequence mutation frequency visualisation, mutation impact analysis. Backend: Python (data pipeline), NodeJS (web server), MongoDB Frontend: Angular 2+ SPA, Bootstrap, React (embeddable widget for 3rd party use), NGL (3D protein visualisation).
University of Cambridge & UCB Pharma
PhD: Structural Bioinformatics | Oct 2011 - Dec 2015
- Thesis title: "Understanding and modulating interactions at protein-protein interfaces". Supervised by Professor Sir Tom Blundell, Dr Will Pitt, Dr Terry Baker, Dr Jiye Shi, Dr Alastair Lawson.
- Developed computational pipelines to process biological data using Python and Shell scripting
- Used, created and administered SQL (MySQL, PostgreSQL) and NoSQL (MongoDB) databases of biological data
- Conducted data analysis and visualisation using Python, Jupyter Notebooks, and R
- Presented internal and external seminars and poster presentations, including a poster presentation at an international conference and an oral presentation to ~80 people including senior executives at UCB Pharma
- Software showcase: Arpeggio (biosig.lab.uq.edu.au/arpeggioweb). A program and webserver for calculating interatomic interactions in protein structures. Building on previous work in the Blundell laboratory on intermolecular interaction determination, Arpeggio is written in Python using Open Source bio and chem-informatic dependencies. Key features: Comprehensive CLI, web interface, inter and intra-molecular interaction support across a range of entities. CLI: Python, BioPython, OpenBabel. Backend: Python,Flask, Python RQ (asynchronous job management), Docker. Frontend: Bootstrap, jQuery. github.com/harryjubb/arpeggio
Education
University of Cambridge
PhD: Structural Bioinformatics | 2011 - 2015
BA (Hons) Natural Sciences: Biochemistry | 2.i | 2008 - 2011
Skills
[ ✦ Key Interest, ⊙ Reaquainting ]- Multi-project experience: ✦ Python, ✦ Django, ✦ FastAPI, ✦ Docker, ✦ Terraform, ✦ OpenAPI, ✦⊙ TypeScript, ✦⊙ React, ⊙ JavaScript, GraphQL, Nginx, Traefik, VueJS, PostgreSQL, AWS, DigitalOcean
- Familiar or previous role experience: ✦ MongoDB, ✦ SQLite, Oracle, HPC, PyDoIt (computational workflows), Angular, Pandas, NumPy, SciPy, Jupyter, Redis, OpenStack
- Beginner-to-intermediate: ✦ Rust, ✦ Kubernetes, Nextflow, Pulumi
Projects
- IoT Beehive Monitoring: A full-stack web app and IoT software for AV and sensor monitoring of beehives. Key features: Live audio/video streaming, temperature, humidity, pressure, and gas sensor data logging, live sensor data visualisation with Grafana, automated provisioning of hive software with Ansible, remote monitoring and management with Remote.it. Backend: DigitalOcean, Docker [Compose], Python, Django, GraphQL, PostgreSQL, Nginx, RTMP, Let's Encrypt, InfluxDB (time series database), Grafana. Frontend: React, TypeScript, MaterialUI, React Router, Netlify. IoT: Raspberry Pi 4+ with camera module, Docker, Docker Compose, Python, Ansible, Remote.it. apiary.centaurea.land github.com/harryjubb/bee_iot
-
Board Game Tournament Leaderboard:
A full-stack web app for tracking the results of board game tournaments.
Key features: Codes to access events, responsive design, win/loss tracking, game metadata synced from
BoardGameGeek, Discord notifications, live websocket updates, custom ranking algorithm based on game
complexity.
Backend: DigitalOcean, Cloudflare, Docker [Compose], Python, Django, WebSockets (Django Channels), Python
Requests,
Discord API, GraphQL, PostgreSQL, Nginx, Let's Encrypt.
Frontend: React, TypeScript, MaterialUI, React Router, Netlify.
Example event code:
TEST
. tournament.harryjubb.dev. github.com/harryjubb/bg-tournament-backend github.com/harryjubb/bg-tournament-frontend