Embedded Technical Lead (C++)

Business Unit:

Cubic Transportation Systems

Company Details:

When you join Cubic, you become part of a company that creates and delivers technology solutions in transportation to make people’s lives easier by simplifying their daily journeys, and defense capabilities to help promote mission success and safety for those who serve their nation. Led by our talented teams around the world, Cubic is committed to solving global issues through innovation and service to our customers and partners.

We have a top-tier portfolio of businesses, including Cubic Transportation Systems (CTS) and Cubic Defense (CD). Explore more on Cubic.com.

Job Details:

We are seeking a talented and highly motivated Software Developer to join our embedded systems team focused on secure board software for payment and transit devices. This role involves developing, maintaining, and optimizing secure embedded software components across Board Support Package (BSP), application, and integration layers. The ideal candidate will have strong experience in C++ embedded development, secure software engineering, Linux-based embedded platforms, hardware-software integration, and regulated or security-sensitive device environments.

As a Software Developer in this role, you will be responsible for:

  • Developing and maintaining secure board software for embedded payment and device platforms.
  • Implementing, testing, and debugging C++ software across secure board and closed-loop application components.
  • Collaborating with cross-functional teams to integrate low-level hardware interfaces, board support software, APIs, and application features.
  • Supporting secure transaction processing, cryptographic operations, and embedded device functionality.
  • Working with requirements, design, test, and release artifacts to support compliant software delivery.
  • Troubleshooting and resolving embedded software issues related to device behaviour, performance, memory usage, concurrency, and hardware interaction.
  • Participating in code reviews, static analysis, dynamic analysis, and software quality improvement activities.
  • Writing and maintaining technical documentation for software design, APIs, testing, and implementation changes.

Key Responsibilities

  • Develop, test, and maintain secure board software modules in C++ for embedded devices.
  • Contribute to software requirements, design documentation, and implementation aligned with engineering and compliance standards.
  • Create and execute unit tests, target tests, and product-level tests for secure board functionality.
  • Support payment and transit features such as secure transaction handling, card interaction flows, and closed-loop media processing.
  • Investigate and resolve software defects, performance bottlenecks, and system-level issues.
  • Work with static and dynamic analysis tools to identify and address code quality and runtime issues.
  • Maintain and evolve external and internal APIs, including associated interface documentation.
  • Support integration with firmware, middleware, hardware components, and backend-connected systems where required.
  • Assist with release activities, secure build processes, and controlled deployment workflows.
  • Contribute to certification and compliance support activities for security-sensitive embedded products.
  • Collaborate with software, test, systems, and hardware engineers to deliver reliable and maintainable embedded solutions.

Required Qualifications

  • Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, or a related discipline, or equivalent practical experience.
  • Strong experience in embedded software development using C++.
  • Experience developing software for Linux-based or resource-constrained embedded systems.
  • Solid understanding of software design, data structures, algorithms, and debugging techniques.
  • Experience with unit testing, integration testing, and structured software verification practices.
  • Knowledge of multithreading, concurrency, memory management, and performance optimization.
  • Experience with version control systems, preferably Git.
  • Familiarity with scripting in environments such as Python or shell.
  • Experience working with hardware-connected software and embedded communication interfaces such as I2C, SPI, UART, or GPIO.
  • Strong debugging and troubleshooting skills across software and hardware interaction layers.
  • Ability to produce clear technical documentation and work effectively within a structured engineering process.

Preferred Qualifications

  • Experience with ISO 14443, ISO 7816, NFC, as preferred or similar
  • Experience with secure or regulated embedded systems, especially in payment, transit, or similar high-assurance environments.
  • Knowledge of EMV, contactless transaction flows, payment kernels, or secure device applications.
  • Experience with cryptographic concepts and implementations such as AES, TDES, HMAC-SHA256, RSA, or key management workflows.
  • Familiarity with PCI PTS POI requirements, secure firmware controls, or certification-driven development.
  • Experience with Board Support Packages, embedded Linux customization, or Yocto-based environments.
  • Experience with secure build and release pipelines, including Jenkins or similar CI systems.
  • Familiarity with tools such as TestRail, DOORS, Valgrind, GDB, or comparable engineering toolchains.
  • Experience working with hardware security modules or secure key injection and management processes.
  • Knowledge of client-server communication, TCP/UDP networking, and system integration practices.

Skills

  • Strong C++ programming skills in embedded environments.
  • Understanding of secure software development and defensive coding practices.
  • Embedded Linux and low-level system troubleshooting.
  • Requirements-driven development and traceable testing practices.
  • Static analysis, dynamic analysis, and code review discipline.
  • Performance tuning, memory analysis, and concurrency debugging.
  • API design and software integration.
  • Cross-functional collaboration with hardware, systems, QA, and release teams.

Soft Skills

  • Strong problem-solving abilities and attention to detail.
  • Excellent written and verbal communication skills.
  • Ability to work effectively both independently and as part of a collaborative team.
  • Ability to prioritize tasks and manage time effectively in a fast-paced environment.
  • Willingness to learn domain-specific security, compliance, and payment technologies.
  • Ability to contribute to team quality standards and mentor others where appropriate.

Nice-to-Have Background

  • Experience in payment terminals, fare collection systems, or other secure transaction devices.
  • Exposure to certification labs, compliance assessments, or audit-support activities.
  • Understanding of secure development training topics such as threat modeling, OWASP principles, or DevSecOps practices.
  • Experience supporting firmware releases across controlled engineering environments.

Worker Type:

Employee

We are committed to creating an inclusive workplace and welcome applications from people of all backgrounds. We do not discriminate based on any protected characteristic under applicable law.