Coordinate with the product owner and project manager to translate product requirements into agile software development stories for the dev team.
- Take a lead role in the dev team as you convert these stories into a robust and performant application back-end.
- Design and document the back-end architecture, from database schemas to REST APIs.
- Work with dev-ops to set up a CI/CD pipeline to ensure the continuous delivery of a reliable service.
- Debug and optimize database queries, removing bottlenecks and introducing performance improvements where possible.
- Configure and utilize a range of third-party tools to monitor and measure application performance and reliability and use these to improve these metrics week-on-week.
- Take responsibility for the back-end architecture, driving the efforts to enforce reusability, reduce technical debt and improve performance.
- Work closely with front-end developers to ensure the integrity of the UI throughout the development life cycle.
- Review pull requests from other developers, championing coding standards and best practices at every opportunity.
- Mentor junior developers, helping them grow in confidence and skills week-on-week.
- Set the standard for the dev team when it comes to unit testing and end-to-end testing
- Must Have:
- Bachelors in Computer Science or equivalent work experience
- Excellent communication skills in English
- 7+ years of professional experience designing, developing, deploying, and supporting web applications, preferably subscription software products.
- Significant experience with TypeScript and NodeJS
- Significant experience with back-end web frameworks and technologies, for example, Express, Lambda, Memcached/Redis
- Significant experience designing and implementing REST APIs
- Experience configuring relational databases and designing relational database schemas, ideally using Postgres
- Experience with setting up Amazon Web Services (CloudFormation, Lambda/Serverless, API Gateway, S3, EC2, etc)
- Familiarity with configuring and using testing frameworks like Jest and Cypress to minimize regression bugs and de-risk
- Experience of peer-reviewing code and mentoring junior developers
- Comfortable with git and GitHub (PRs, merging/branching/rebasing, etc)
- Experience with agile/scrum development methodologies
- Nice to Have:
- Experience with the following tools/technologies:
- Algolia/Elastic Search and any relevant e-commerce search UI work
- Experience with the full life-cycle development: requirements gathering, analysis, design, coding, unit testing, and acceptance testing.
- Experience with Terraform and/or other ‘infrastructure as code’ tools
- Experience configuring CI/CD pipelines, especially using GitHub workflows and actions
- Prior work experience in a fast-paced, high-energy environment (Start-ups or small-med product teams)