About the role
We are looking for people who have a passion for Technology. You will demonstrate experience with different platforms and technologies.
Responsibilities:
- Use your in-depth knowledge of JavaScript, TypeScript, and Node. JS, cloud and the backend services ecosystem to develop and deploy scalable backend systems.
- Work with product managers to understand business/product requirements.
- Translate requirements into tasks and code.
- Commit code early and often, demonstrating understanding of version control and branching strategies.
- Automate everything by default.
- Write secure code by default.
- Write maintainable code and observe basic hygiene practices.
- Implement relevant project instrumentation.
- Profile and optimise code.
- Apply understanding of cohesion and the SOLID principles to create well-structured, maintainable software.
- Identify patterns in code and refactor the code towards them where it increases understanding and/or maintainability with minimal guidance.
- Produce test-driven features in a specific programming language and demonstrate familiarity with TDD development.
- Follow the best practices of continuous BDD/TDD/Performance/Security/Smoke testing.
- Support production systems, resolve incidents and perform root cause analysis.
- Debug/find complex problems and support/maintain the software solution.
- Share knowledge with the wider engineering community.
- Mentor and develop others around you.
- Produce proof of concepts to evaluate new tools.
Requirements:
- 8+ years of professional experience as a backend Software Developer.
- At least 5 years of experience in backend development using JavaScript, TypeScript, Node. and related backend technologies and frameworks.
- Exposure to a variety of JavaScript frameworks and libraries, such as Next. JS, React. JS and testing using Jest, Mocha. Cucumber, etc.
- Experience of using Node.js to create high-traffic applications using Express.js, Sails, Koa or similar.
- Knowledge of microservices development and deployment in the cloud, i. e, Azure/AWS/GCP cloud.
- Knowledge of virtualisation, containerization and container orchestration technologies like Docker, Kubernetes, etc.
- Ability to build large-scale observable systems and exposure to tools like New Relic, Datadog, Splunk, etc.
- Experience with using and building REST API services.
- Experience with the usage of GraphQL, building GraphQL servers and GraphQL Federation technologies like Apollo Federation is preferred.
- Knowledge of distributed messaging systems like Kafka, RabbitMQ, etc., is preferred.
- Knowledge of distributed caching technologies like Redis.
- A desire to write readable, maintainable, modular and extendable code.
- Exposure to the DevOps model.
- Experience in Lean and Agile environments and understanding of principles behind methodologies such as BDD, ATDD and TDD.
- Exposure to the use of AI tools for software development.