Senior Software Engineer (Back-End)
Role details
Job location
Tech stack
Job description
The Senior Software Engineer is responsible for mentoring team members, providing local management support to engineers , designing and maintaining software, collaborating with cross-functional teams, and ensuring high-quality code. The role involves overseeing CI/CD pipelines, monitoring system performance, and implementing security best practices. Additionally, the engineer participates in agile ceremonies and maintains detailed documentation .
Role Responsibilities
-
Mentor other engineers in the team, whilst ensuring alignment with project goals and timelines across the team.
-
Design, develop, and maintain software, ensuring seamless integration and performance.
-
Collaborate with cross-functional teams, including Business Analysts (BAs) and Project Managers (PMs), to gather and refine requirements.
-
Implement and maintain Infrastructure as Code ( IaC ) using AWS CDK with Python to automate deployment and management of cloud resources.
-
Ensure high-quality code through automated testing, particularly unit testing, and maintain a strong emphasis on code quality and complexity.
-
Oversee the implementation and management of CI/CD pipelines to streamline the software development lifecycle.
-
Monitor system performance, identify issues, and implement solutions to ensure high availability and performance.
-
Ensure security best practices are followed and implement necessary measures to protect cloud infrastructure and applications.
-
Participate in agile ceremonies and contribute to an agile mindset within the team.
-
Maintain detailed documentation of code, processes, and system configurations .
Requirements
-
Proven experience as a Senior .Net Engineer, preferably in the finance sector.
-
Strong understanding of AWS services and hands-on experience with Infrastructure as Code ( IaC ), particularly using AWS CDK in Python.
-
Experience with Entity Framework (or other CRMs) is beneficial
-
Experience designing and building systems using a contract-first methodology is beneficial
-
Experience with writing tests or scripts in Python is beneficial
-
Demonstrated experience with automated testing frameworks and a solid understanding of unit testing principles.
-
Experience working in agile environments and a strong agile mindset.
-
Attention to detail and the ability to work under pressure without being distracted by complexity.
-
Excellent problem-solving skills and the ability to think critically and creatively.
-
Leadership and collaboration skills, with the ability to communicate effectively with team members and stakeholders.
-
Passion for code quality and a commitment to maintaining high standards of software development .
Skills
-
Strong communication skills, both written and verbal.
-
Fluent in back-end development using .NET.
-
Strong understanding of microservices architecture in cloud environments.
-
Strong grasp of database design and experience with relational and/or NoSQL databases.
-
Competent in using Docker for containerisation.
-
Familiarity with Kubernetes, relying on the DevOps Engineer for orchestration.
-
Proficiency in using Git for version control and JIRA for backlog management.
-
Experience with CI/CD pipelines and tools.
-
Ability to write clear and concise documentation.
-
Ability to work effectively as part of a team and independently when required .