Software Engineer (.NET)
We’re looking for a skilled Software Engineer to join our growing technology team, where you’ll play a key role in designing, building, and supporting robust software applications. This role offers the opportunity to work on moderately complex systems, collaborate with experienced engineers, and contribute to solutions used by a wide range of stakeholders.
The Role
You will be responsible for the end-to-end design of software applications or components, applying agreed engineering standards, patterns, and tools. Working as part of a collaborative team, you’ll help design components of larger systems, define user and system interfaces, and contribute to design decisions by evaluating options and trade-offs. You’ll also take part in peer reviews and stakeholder presentations as required.
Key Responsibilities
* Design and develop complex software applications and components
* Support and maintain existing customer systems through bug triage and resolution
* Use approved code repositories and branching strategies to manage source control
* Produce documentation that meets standards across all stages of the software development lifecycle
* Adhere to defined coding standards and best practices
* Ensure all code is stored in OSL-approved source control systems
* Contribute to reviews of team output and assist with presenting work to stakeholders
Skills, Experience & Qualifications
* Deep understanding of Microsoft .NET C# and .NET Core
* Experience working with MySQL, MariaDB, or other data stores
* Understanding of containerisation technologies and message queues (e.g. RabbitMQ)
* Exposure to Python, C++, image processing, and geospatial calculations
* Familiarity with Azure DevOps for work management, source control, branching, and pull requests
* Understanding of agile delivery practices, including stand-ups, sprint planning, and retrospectives
* Working knowledge of Linux
* Strong analytical skills with the ability to collaborate effectively within a team