Template Software Engineer
Role details
Job location
Tech stack
Job description
We are seeking an experienced and highly capable Software Engineer to join our software engineering team based at the NCR Atleos Discovery Centre R&D site in Dundee at least 3 days per week on a hybrid working model. You will play a key role in the design, development, and delivery of high-quality software for ATM Recycler/Deposit devices.
You will be part of a technically specialised team responsible for Currency Template software used in Bill Validator modules. This software analyses banknote image data to authenticate currency and detect counterfeit media using a range of image attributes and validation techniques.
While full domain training will be provided, this role is intended for an engineer who can rapidly become technically productive, work independently on complex development tasks, and contribute to technical decision-making within the team.
The Template software is developed across multiple device types using in-house tooling alongside C/C++. Development includes analysis of note image attributes, implementation of detection algorithms, simulation testing, and validation on target hardware.
You will collaborate closely with global development teams and will be expected to contribute not only through software delivery, but also through technical leadership, mentoring, and process improvement.
Key Areas of Responsibility
- Design, develop, and maintain high-quality, production-ready software that meets customer and regulatory requirements
- Take ownership of medium-to-large development tasks from requirements analysis through delivery and support
- Analyse complex data and image attributes, proposing and implementing robust technical solutions
- Contribute to the design and evolution of image authentication and validation algorithms
- Lead template development activities for assigned devices or currencies, coordinating with peers as required
- Prepare clear, well-structured technical documentation suitable for internal and cross-site consumption
- Actively participate in and regularly lead peer reviews for template updates and software changes
- Provide accurate development estimates and identify technical risks early, escalating where appropriate
- Support investigation and resolution of complex defects, including issues found in customer or field environments
- Collaborate effectively with QA, technical leads, and global engineering partners
- Mentor junior engineers and provide technical guidance where appropriate
- Contribute to continuous improvement of tools, processes, and coding standards within the team
- Ensure all development work consistently meets quality, performance, and reliability expectations
Requirements
- Bachelor's degree in Computer Science, Software Engineering, or a related discipline (or equivalent practical experience)
- 3+ years of professional software development experience in a commercial environment
- Proven ability to design, implement, and debug non-trivial software systems
- Proficiency in C / C++
- Strong analytical and methodical problem-solving skills
- Experience working with complex data sets and/or image-based processing systems
- Comfortable working independently with minimal supervision
- Strong written and verbal communication skills, able to explain technical concepts clearly
- Demonstrated ability to work effectively within cross-functional and geographically distributed teams
- Strong focus on software quality, maintainability, and robustness
- Ability to manage multiple work items and priorities concurrently
Desirable (Advantageous but Not Essential)
- Experience with embedded or hardware-adjacent software development
- Familiarity with bug tracking systems, version control systems, and formal development workflows
- Experience contributing to or improving shared engineering tools or frameworks
- Prior exposure to regulated, security-sensitive, or mission-critical software environments