Updated January 2022
Enthusiastic and friendly senior software engineer with backend-lean and 6 years experience. Enjoys making data useful, code review, type safety, neat APIs and keeping skills current, opinionated on code quality.
|Web Technologies||Typescript, React, Redux, Vue, HTML/JSX, Tailwind, CSS, SASS|
|Testing||Jest, React Testing Library, Storybook, supertest|
|Database||PostgreSQL, Prisma, Firebase, Supabase, Knex/Bookshelf (ORM), Sqitch, MySQL, MongoDB, Mongoose|
|Tools||Git/Github, Docker/Compose, CircleCI/Github Actions, Webpack, Yarn/NPM, Datadog, VSCode, Linear, Slack|
|OS||MacOS, Windows, WSL, Linux (CentOS/Ubuntu), Android|
|Processes||Agile Scrum, pair programming, team workshops, internal tech support|
CLI tool with ~250k+ downloads/month on npm to find unused code in typescript projects. Added a small feature to allow specfifying a pattern to exclude files from counting toward code use, for instance
.test.ts - so that functions that were tested but not used anywhere else in the codebase could still be identified and removed.
A CLI tool written in typescript to get crypto asset prices.
Software Engineer, Auth0 (Part of Okta)
Bristol, UK [Remote] (January 2023 - Present)
- Working on the Organizations feature of the Auth0 Customer Identity and Access Management (CIAM) product.
Bristol, UK (January 2021 - December 2022)
Company’s second developer hire a few months after it began, leading on backend.
Undertook project to move from document database (Firebase) to a relational database (Postgres & Prisma).
Standardised an approach to building APIs with authentication, validation and returning consistent types.
Wrote most of our Slack chat bot integration using the Slack/Bolt package. Improved the speed of message flow responses by over 10x. Worked on getting the app published on the slack store.
Worked with CTO & founders to build out the dev team, interviewing applicants and assessing technical tasks.
Writing documentation for new developers, non-technical staff and customers. Mentoring junior developers.
SRE - set up datadog logging and made time to fix bugs that came up. Reduced production API errors by nearly 50x.
Stack & Tools include: Node, Typescript, Postgres, Prisma, Supabase, Express, Slack API, React, Tailwind, Next, Vercel, GCP, Docker, Git/GitHub + actions, Jest, Firebase, MacOS, VSCode, Slack
Bristol, UK (January 2019 - September 2020)
Being a subject matter expert on databases, helping colleagues writing efficient queries, building a team wiki of over 100 useful queries to interrogate our data, being a go to source for ad hoc data requests outside of the team, delivering workshops on SQL and postgres.
Took joint responsibility for the full lifecycle of delivering a major new feature: ready-made message snippets for our vendors to include in messages to customers. After discussing requirements with the team which requested the feature, we designed several paper prototypes, and then built an MVP under a feature flag. After positive feedback from a subset of vendors, we released the feature and analytics shows that upsage has been high and considerable time has been saved.
Working with marketing team to integrate our platform into the Hubspot customer communication platform, triggering emails via their API, syncing customer details from our platform to thiers, back-populating historic data
Contributing to setting goals (OKRs), sprint planning, retrospectives, reviews and backlog refinement as part of a diverse agile scrum team. Using Github Issues and PRs in Zenhub to manage stories in the sprint. Thoughtfully reviewing colleague's PRs.
Ensuring that I continue to learn by pair programming on complex or unfamiliar tasks, spending time understanding feedback on my PRs, attending community events like BristolJS, working on side projects, completing video and online courses, team workshops and reading several programming subreddits.
Stack & Tools include: Node, TypeScript, React, Postgres, Bookshelf, Knex, Sqitch, Git/GitHub, Jest, CircleCI, Windows/WSL, AWS, Terraform, Docker
Bristol, UK (3 years 6 months, July 2015 - December 2018)
Writing modular and reusable code, generalising where practical to contribute to libraries used by the whole team.
Data management - determining optimal structure for simple and efficient data usage, building and sharing queries internally to interrogate complex data and test and improve data quality. Node scripts for internal data processing.
DevOps - acting as a second to the CTO on infrastructure issues. SSL Certificates, database and server performance and error log monitoring, troubleshooting issues with Rackspace, automating admin tasks with shell scripts, cron jobs and git hooks.
Communication - Working with multinational corporations and smaller agencies from requirements gathering and planning large projects, through to user acceptance testing and responding to feedback and changing requirements. Internal knowledge sharing through team talks, writing documentation, wiki articles and pair programming.
Employment History Continuted...
Bristol, UK (1 year 3 months, May 2014 - July 2015)
Managed tuition fee income budget worth £250m/3yrs. Built complex queries in Access (SQL) and reports in Excel. Detailed reconciliation of actuals against budget. Owned budgeting process and contributed key improvements which lead to the final budget being more accurate and timely than had previously been achieved.
Data interrogation, internal and external reporting: produced data for key institutional processes such as exam boards, press enquiries and Government statistical analysis.
York, UK (1 year 4 months, June 2012 - May 2014)
Reconciliation of student loan book of £60m with Government finance agencies. Writing queries to identify issues and scripts in student database system to automate processing of student status changes.
Developing data quality reports in SAP Business Objects (SQL) to improve reporting accuracy. Preparation of student demographics and population data for Government statutory reporting requirements.
York, UK (1 year 2 months, Jan 2011 - June 2012)
York, UK (1 year 6 months, June 2010 - December 2011)
- Managed a team of six, responsible for distance learning courses at three colleges with 4000 learners (£1m revenue)
- Wrote work prioritisation scripts in Excel/VBA which saw profitability improve dramatically
- Improved reporting to provide more appropriate MI and ensure compliance with regulatory requirements
2010 BSc Economics and Finance, University of York, UK
- Travel Photography - 35ish countries in the last few years
- Running - half marathon pb 1:41
- Bass guitar