Senior Backend Software Engineer
Summary
Build and maintain backend services in Python/Node.js using Azure, microservices, and CI/CD; lead feature development, code reviews, and mentoring in an agile team.
Technical Skills
- Strong experience in Python and/or NodeJS, must have experience of both
- Experience in relational and/or document databases
- Experience in Cloud Technologies, preferably Azure
- Experience in Azure Logic Apps, Function Apps, App Services
- Experience in Cloud AI Services
- Microservices and Domain Driven Design
- Git and Git workflows
- Experience in CI/CD pipelines and YAML pipelines (GitHub actions)
- Applying SOLID principles and using Test Driven Development practices
Desirable Technical Skills
- Experience with Azure APIM
- Experience with MongoDB Atlas
- Experience in .NET Core using C#
- Experience with AWS Cloud Technologies
Requirements
- Provide expertise and leadership in the development of new products, services, and processes from a backend technical perspective.
- Work independently and within the team adhering to high technical standards, taking ownership of projects ensuring they conform to departmental standards before going to QA.
- Work effectively within an agile, deadline-driven production process to complete project development with rapid, iterative cycles.
- Liaise with Team Leaders, Product and Project Managers to ensure projects are taken from creation to completion - on time and on budget.
- Provide accurate estimates for existing and new projects alike.
- Be an integral part of the code review process, providing constructive feedback against code produced by other team members.
- Ensure good communication is maintained with other team members/departments throughout project life cycles.
- Demonstrable experience in solving complex problems.
- Ability to work on a variety of projects to write concise, clean and understandable code, applying appropriate design patterns, in a test-driven manner; developing first-class applications that meet our client needs and quality expectations.
- Write unit and integration tests to ensure they meet the acceptance criteria.
- Use standard refactoring methods and appropriate design patterns to ensure code is kept in a maintainable state.
- Actively contribute to departmental learning and standards within the team environment through involvement in presentations/demonstrations and participate in the continual drive for collaboration and knowledge sharing amongst the team.
- Keep abreast of the latest trends in applications development and continually develop software engineering skills.
- Investigate and participate in discussions with team members about technical best practices and help identify optimal technical solutions.
- Train and mentor other members of the team