Starting out as a fun side-project idea, mostly to learn React Native, my Thirty Plants app has grown into a Cross Platform Web and Mobile App with more than 2000 active users.
The project has been a great playground for me to learn as well as establish some very effective coding practices.
-
From the start I was keen on the prospect of creating a “cross platform component library”, from which I could re-use React code across Mobile and Web. Beginning with simple elements like Buttons and Icons, and extending now all the way through to full pages as well as complex components such as Modals and Drawers, I am very pleased with what I have achieved in this part of the project.
-
Turborepo! I had worked on a few codebases previously using a Monorepo setup, but never taken ownership of that part of the project. However now it feels like second nature and something I would be very confident in setting up and managing for groups of other developers. The DX upgrade from using these tools is so great when you set things up well.
The project has also been powerful experience in taking full responsibility of deployment as well as new updates / releases. Now that the App has many users I have had to establish good practices around publishing new code, as well as gaining usage feedback and error reporting.
- React Native
- Expo
- NextJS
- Turborepo
- tRPC
- AWS
- Terraform
- Clerk
- MySQL
Having been initially hired for a 3 month contract, I ended up staying with Bractlet for 3.5 years - gaining significant experience onboarding and mentoring new team members. I helped the team to establish many new best practices and patterns as we took on several substantial migrations including a move from Flow.js to Typescript, and a restructuring of the frontend to support deploy previews and staging environments.
I led the team through several complex frontend features as well as the creation of a new design system and React component library. I also took ownership of Backend tasks, such as the creation of a new system for normalising and syncing real-world utility data with Energy Star, as well as DevOps tasks, working with Docker & GHA to reduce our CI/CD costs by more than 50%.
- React
- Typescript
- Vite
- Postgres
- Github Actions
- Docker
- GCP
After self-teaching the basics of web development and taking on some small freelance projects, I started my first long-term role at Midas in Manchester, a highly respected Music Hardware company. My responsibilities were primarily to manage the frontend for our main client facing web app (React), and developing several internal tools (using Electron). As our main web app grew gradually into a large codebase, I gained valuable experience around how to write scalable and maintainable code. Seeing problems manifest themselves in real-time and learning from mistakes. I became very proficient using Redux during this role, writing my first NPM package (freducer) which we used to reduce our Redux boilerplate by around 96%.
- React
- Electron
- Typescript
- MongoDB
- AWS
- Angular
- ThreeJS
During my final year, I took on 2 research projects involving writing simulations of different phenomena. First, working with the environmental science department, I used NASA data to calculate the best locations for Concentrating Solar Power (CSP) plants, based on various light and weather conditions.
A also collaborated with the linguistics department to create a simulation of language-change over time in large populations.
- C++
- Matlab