About the Role
About NCR Atleos
NCR Atleos, headquartered in Atlanta, is a leader in expanding financial access. Our dedicated 20,000 employees optimize the branch, improve operational efficiency and maximize self-service availability for financial institutions and retailers across the globe.
Job Description
An opportunity has arisen in the Engineering organisation for a Software/Firmware Engineer within the Secure Devices team, developing security products for Automated Teller Machines (ATMs).
We are looking for someone who enjoys solving technical problems, learning new technologies, and working collaboratively within a multidisciplinary engineering team based at the NCR Atleos Discovery Centre R&D site in Dundee.
You will be part of a team responsible for delivering high quality software for ATM security related modules, including Encrypting Pin Pads, Card Readers, and Anti-Fraud devices.
The successful candidate will be part of an engineering group with development teams in global locations. As a software engineer in the team you will be responsible for working alongside fellow Engineers on development projects, investigating and resolving technical issues with the support of experienced engineers, and supporting the team to ensure customer commitments and goals are met. The successful candidate will be able to demonstrate flexibility in response to changing priorities and requirements.
The role involves both firmware and software development, with opportunities to gain experience across a range of technologies and platforms. Experience with one or more of C, C++, or C# is required. Exposure to embedded systems, Python, Rust, USB, I2C, RTOS, cryptography, CI/CD tools, or source control systems would be beneficial but is not essential.
This role provides an opportunity to develop expertise in the design and development of security devices, firmware development, and software development, while working alongside experienced engineers in a collaborative environment. The successful candidate will receive guidance and support from experienced software and firmware engineers, with opportunities to develop technical skills and take on increasing responsibility as their experience grows.
Key Responsibilities
- Design, develop and document Software/Firmware with the support of senior developer/technical leads to meet customer requirements within agreed timescales.
- Analyse and process data to then identify and develop solutions to customer requirements, with the assistance of senior developers.
- Design, develop and document test procedures and software to validate functionality.
- Software/firmware unit test, and supporting integration and systems testing, including Continuous Integration builds and testing.
- Regular progress reporting on schedule, quality & scope.
- Effective communication with fellow developers, technical team leads, and QA.
- Support existing security devices through problem investigation, identification, and resolution.
Essential Qualifications
- Minimum Bachelor's Level Degree in Computer Science, Engineering, or related field.
- Experience developing Software in C or C++ or C#.
- Good methodical problem-solving skills.
- Strong verbal and written communication skills.
- Ability to work effectively in a team environment composed of peers while also taking responsibility for individual tasks.
- Knowledge of Software configuration management.
Desirable Qualifications
- Experience developing embedded firmware in C/C++.
- Knowledge of Symmetric and Asymmetric cryptographic frameworks.
- Knowledge of Microchip or NXP processor technologies (or equivalent).
- Knowledge of development environments, including RTOS and embedded systems.
- Knowledge of Linux operating system.
- Knowledge of electronic designs.
EEO Statement
NCR Atleos is an equal-opportunity employer. It is NCR Atleos policy...
Requirements
Software Development
Experience developing software in C, C++, or C# is required.
Problem-Solving Skills
Good methodical problem-solving skills are essential.
Team Collaboration
Ability to work effectively in a team environment is necessary.
Communication Skills
Strong verbal and written communication skills are required.
Nice to Have
Experience developing embedded firmware in C/C++ is beneficial.
Knowledge of cryptographic frameworks is a plus.
Familiarity with RTOS and embedded systems is desirable.