Software Engineer - ATM Applications

Truist•Charlotte, NC

About The Position

Independently designs, develops, tests, and maintains complex software solutions that meet business and user needs. The role focuses on delivering scalable, reliable, high-quality applications by applying advanced coding, architecture, and software lifecycle management practices. The engineer collaborates with cross-functional teams to drive technical initiatives and mentors junior engineers. For ATM applications, the role designs, develops, tests, and maintains complex ATM software, components, and services supporting reliable and secure ATM functionality and transaction processing. It develops and enhances ATM applications and transaction-processing capabilities, including integrations with banking applications, host systems, and supporting services. The position uses knowledge of CEN/XFS-based ATM devices and NDC messaging protocols, and supports end-to-end transaction processing across ATM applications, device components, transaction messages, host systems, and downstream banking services.

Requirements

  • Bachelor’s degree in computer science, software engineering, or a related field with 5 years of relevant experience, or equivalent education and training.
  • In-depth knowledge of information systems and the ability to identify, apply, and implement IT best practices.

Nice To Haves

  • Master’s degree or MBA.
  • Certification in Six Sigma Green Belt, CQIA, or similar process improvement methodologies.
  • Previous experience in the banking or financial services industry.
  • Experience working in Agile development environments.
  • Strong technical knowledge of ATM technologies, including CEN/XFS-based ATM devices and NDC messaging protocols.
  • Experience developing, troubleshooting, and enhancing ATM solutions and transaction-processing capabilities.

Responsibilities

  • Independently design, develop, test, and maintain complex software components and services that address business and user requirements.
  • Implement advanced features and enhancements using established coding standards, architectural patterns, and development best practices.
  • Lead code reviews and provide constructive feedback to improve code quality, maintainability, and performance.
  • Collaborate with cross-functional technical teams to plan and execute technical initiatives and deliver solutions on time.
  • Troubleshoot, debug, and resolve complex software defects and production issues using root-cause analysis and corrective actions.
  • Participate throughout the software development lifecycle, including requirements analysis, design, development, testing, deployment, and support.
  • Apply secure coding practices, testing strategies, and documentation standards to support software quality and compliance with organizational guidelines.
  • Mentor and support junior engineers in their technical growth and adherence to best practices.
  • Use and contribute to frameworks, tools, and technologies that enhance application development.
  • Develop, maintain, and enhance ATM applications and transaction-processing capabilities, including integrations with banking applications, host systems, and supporting services.
  • Develop and support ATM functionality involving ATM applications, device components, transaction messages, host systems, and downstream banking services.

Benefits

  • Medical insurance
  • Dental insurance
  • Vision insurance
  • Life insurance
  • Disability insurance
  • Accidental death and dismemberment coverage
  • Tax-preferred savings accounts
  • 401(k) plan
  • At least 10 days of vacation during the first year, prorated based on hire date and full-time or part-time status
  • 10 sick days, prorated
  • Paid holidays
  • May be eligible for a defined benefit pension plan, restricted stock units, and/or a deferred compensation plan, depending on position and division
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service