Work closely with stakeholders (product owners, architect, developers, subject matter experts and testers) to implement requirements into well-designed software solutions with an eye on scalability, quality, performance and maintainability.
Work with the project manager / scrum master and delivery lead to contribute to the planning, design, development, testing, and maintenance of the product.
Participate in agile development activities, including daily stand-ups, sprint planning, sprint review and sprint retrospective meetings.
Participate in creating architecture for new features and pro-actively promote SOLID principles.
Design, code and unit test particularly large, complex or mission critical programs, modules or systems. As part of the team, ensure that the software is delivered according to agreed deadlines.
Find and test new ways of improving existing software designs and solutions aiming for higher performance in terms of speed, data size and speed.
Monitor teams compliance with processes, including agile development. With the project manager / scrum master, ensure that the agile development process is followed by the whole team.
Support and mentor other software developers in the team. Ensure that the team has all the skills required to deliver.
Provide expert advice in the programming methods, tools or standards used to complete sprint and project goals.
Preferred candidate profile
Qualification in computer science.
Scientific Background to implement/maintain algorithms (Math / Physics or Engineering) would be an advantage
Respected and proven experience in software development in a commercial environment.
Good level of experience of software application development using C++ in a Windows environment using Visual Studio.
Experience in Technical Leader/ Architecture position
Experience in C# development using .NET Core
Experience of Python, numpy, MFC, Fortran, WPF, CMake, SWIG would be an advantage
Thorough knowledge of the standard library (C++ 20), STL containers, and algorithms
Knowledge and practice of SOLID OO-design principles and design patterns.
API design.
Experience in TDD, creating and maintaining unit tests including mocking.
Experience in reviewing and testing development code.
Experience of working within agile software development environment.
Experience of source control systems such as Git.
Experience with Azure DevOps would be an advantage.