Senior Product EngineerNov 2019 - Oct 2020
Lead Product EngineerNov 2020 - Oct 2023
With our product's growth, we secured significant Series A funding led by Andreessen Horowitz, marking my transition to a lead engineer. I contributed to team expansion, conducting product engineer interviews and facilitating engineering onboarding. As our customer base grew, I prioritised addressing customer issues, creating a support process and assembling a dedicated team. I worked closely with customers to understand their use cases and resolved complex issues. My deep understanding of the codebase positioned me as a valuable resource in the support and engineering teams. My passion for sharing knowledge facilitated the integration of junior engineers into the team.
As the company expanded, my role naturally progressed. We restructured into multiple engineering teams, and I led a team of four engineers while remaining hands-on. I collaborated with the product manager and designer, planning and refining projects in manageable iterations. Balancing technical debt with feature delivery was a substantial part of my role. We executed challenging refactoring alongside product development and handled significant dependency upgrades. Maintaining high-quality code was paramount to prevent bugs. We transitioned most code to TypeScript, removed legacy code, and introduced testing practices while delivering high quality new features. Fostering a culture of open technical direction, I led a weekly front-end meeting, encouraging insightful discussions among engineers.
Lead Product Engineer & Line ManagerJan 2023 - Oct 2023
Subsequently, my leadership role encompassed line management. Guiding the team with empathy, I fostered strong relationships with all team members. We held regular weekly catch-ups, and I diligently relayed any issues to upper management, facilitating swift resolution and maintaining open communication. This role proved instrumental in workload management, ensuring that my team's stress levels remained in check, ultimately resulting in a highly productive and contented team.
Contract Full Stack Developer
Working as a consultant on varying length contracts for different clients within multiple technology stacks. Recent work includes full Shopify store development, Shopify admin app development (using Node, Next.js, Koa, MongoDB, React, Redux, Jest and Shopify Polaris), Woocommerce store development, headless Magento with GatsbyJS.
Senior Full Stack DeveloperSep 2013 - Dec 2018
Working in a fast-paced, agency environment as a lead developer, using the Agile methodology. Delivering multiple successful projects over 5 years for multiple clients. Involvement in the whole development cycle including: kick off meetings, setting up continuous integration and delivery, front-end and back-end development, integrating 3r d party systems, testing and giving demonstrations to project stakeholders.
Working in an agency, it sometimes also involves taking over as lead developer on existing projects, occasionally where the previous development team were no longer contactable; this often requires needing to quickly pick up new technology and the confidence to be able to navigate through large, unfamiliar codebases and implement changes.
Technical ArchitectJan 2017 - Dec 2018
Responsible for architecting all projects within the PHP team. This involves liaising with clients to come up with the best technical solution for their requirements, managing any 3r d party integrations, leading technical meetings, costing new work, setting up the deployment and continuous integration processes, story kick-offs with developers, code reviewing pull requests, ensuring that the team’s best processes are followed and handing over projects to in house developers at the end of development.
I have been involved in multiple projects setting up AWS servers, using EC2 instances, load balancing and auto scaling. These were fully automated using Jenkins and bespoke shell scripts. I have also set up many projects using Drupal 8 and Acquia cloud with additional continuous integration using Bitbucket Pipelines.
Line ManagerJan 2018 - Dec 2018
Managing 6 members of staff as their first line of contact. Regular monthly meetings are set-up to discuss their well-being, career progression and any other concerns, as well as additional ad hoc meetings when needed. A supportive role within the company, ensuring that team members are as happy as they can be in their roles and working with upper management to try to resolve any issues that arise.