Software Engineer - ATM Applications

Truist Bank•Charlotte, NC

About The Position

Independently designs, develops, tests, and maintains complex software solutions that meet business and user needs. The role emphasizes delivering scalable, reliable, and 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 involves developing and maintaining software, components, services, and transaction-processing capabilities that support reliable and secure ATM functionality. This includes integrating with banking applications, host systems, and supporting services, and working with ATM technologies such as CEN/XFS-based devices and NDC messaging protocols.

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.

Responsibilities

  • Independently design, develop, test, and maintain complex software components and services addressing 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 support 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 through root-cause analysis and corrective actions.
  • Participate in the full 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 existing frameworks, tools, and technologies to enhance application development.
  • Develop, maintain, and enhance ATM applications and transaction-processing capabilities, including integrations with banking applications, host systems, and supporting services.
  • Apply knowledge of CEN/XFS-based ATM devices and NDC messaging protocols when developing, troubleshooting, and enhancing ATM solutions.
  • Support ATM functionality involving interactions among ATM applications, device components, transaction messages, host systems, and downstream banking services to help ensure accurate end-to-end transaction processing.

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
  • Depending on position and division, defined benefit pension plan, restricted stock units, and/or deferred compensation plan
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service