ROLE SUMMARY
We are currently looking for a Senior Software Engineer to join our Research and Development team, based in Dunfermline. Our software development team work within a SAFe, agile framework, utilising the Atlassian suite (Jira, Bitbucket, Confluence, Bamboo) to control sprints, builds, merges & deployments, with a sophisticated DevOps process to automatically build, deploy, test and measure continuously the quality of our software (CI/CD). Working daily with a highly skilled & innovative team of hardware, optical & mechanical and algorithm engineers & data scientists, you will design, develop, and test software to support a diverse range of technologies to image the eye to control, compute, analyse, automate, and optimize the retinal imaging process, leading to world leading insights into diseases and disorders of the eye. It’s all about the data!
ESSENTIAL DUTIES AND RESPONSIBILITIES
Requirements capture and analysis
- Participates in technical requirements capture and contributes to technical requirements specifications that satisfy marketing requirements for new/updated software features. Demonstrates best practise and ensures requirements are precise, unambiguous and testable.
Software Design
- Designs new software features and updates existing features, ensuring that all new design satisfies functional and non-functional requirements, maximises re-use of concepts and existing assets, supports future re-use where required, and is maintainable. Creates design documentation using UML.
- Defines interfaces to other internal systems. Ensures they are reviewed by representatives of the affected development teams, and gains agreement on the final interface specification.
- When developing user-facing software, creates scenarios, process flows, information architecture diagrams, wireframes, and other artefacts required to develop and evolve user experience designs. Delivers User Interfaces based on specifications and usability guidelines.
Implementation and unit testing
- Implements new software features and updates existing features by following defined coding standards. Ensures all code is integrated into the automated build process on a frequent and regular basis.
- Performs unit testing and where possible, ensures the tests are run as part of the continuous integration process.
- Reviews other engineers’ code to identify design or implementation errors, weaknesses, omissions, and deviations from published coding guidelines.
Software Quality
- Debugs, troubleshoots and diagnoses performance and functional issues with Optos systems at differing stages of the lifecycle (development, test, production and field).
- Performs investigation of unit test failures to identify changes required to existing code or tests.
- Ensures all work is peer reviewed and has constructive dialog with reviewers to agree what updates/rework are required.
Continuous Improvement
- Recommends improvements to Software team working practices, tools and environment.
- Suggests changes to current Optos systems to improve efficiency and quality of software development.
All activities to be carried out in compliance with the Optos SDLC, ISO13485 and FDA Medical Device Design Control processes.