Principal C++ Software Engineer
- Hiring from
- United Kingdom
- Work type
- Hybrid
- Posted
605,911 remote jobs, straight from company career pages
100% free · New jobs every minute
Show job descriptionHide job description
About Indra Group UK & Ireland
Indra is a leading global technology and consulting company, and a trusted technological partner for the core business operations of its clients worldwide. It stands at the forefront of key sectors including Transport, Defence, Air Traffic Management and Space, alongside advanced Information Technology services delivered through Minsait, and cutting-edge capabilities in Sovereign AI, Cybersecurity, and Cyberdefence via IndraMind.
The company’s business model is built around a comprehensive portfolio of proprietary products, combining strong innovation with a high-value focus for customers.
With more than 2,500 projects implemented across 50 countries and over 100 cities, Indra is a global benchmark in innovative transportation and mobility solutions. It is recognised as one of the world’s top three companies in public transportation management systems. Indra’s technology supports the daily journeys of over 78 million people, helping to reduce more than 10 million tonnes of CO₂ emissions annually, and helping save nearly 3,000 lives through improved traffic management and road safety.
Indra Group is paving the way to a more secure and better-connected future through innovative solutions, trusted relationships and the very best talent. Sustainability sits at the heart of its strategy and culture, driving efforts to address current and future social and environmental challenges.
In the 2024 financial year, Indra achieved revenues of €5.5 billion, over 60,000 professionals, maintained a local presence in 46 countries, and operated across more than 140 countries worldwide.
As the technological partner for its customers’ key operations, Indra is at the core of their business, and Indra’s four values guide everything we do:
Innovation - Our capacity for innovation, cutting-edge solutions, and specialised team of professionals enables us to drive a safer, more connected future through technology.
Trust - We work with strength, commitment, and reliability, delivering quality solutions to build trust with customers, employees, partners, investors, and society.
Connection - We harness the power of collaboration, connect ideas and solutions, and adapt to our customers’ needs, supporting them on the path to a better future.
Foresight - We anticipate future needs to make the world safer and more connected, transforming our experience and knowledge into solutions for a better tomorrow.
About the Project
Transport for London (TfL) has awarded Indra a long-term contract to operate, develop, enhance and expand ticketing and access control systems across London’s transport network through to 2034, with extension options to 2039.
This programme covers the maintenance, operation and evolution of a large-scale, complex ecosystem, including turnstiles, validators, ticket machines, sales terminals, back-office systems, payment gateways, IT infrastructure and cybersecurity that supports over 8.6 million daily journeys.
Therefore, Indra will become TfL’s strategic technology partner to guarantee the operation and evolution of the world’s largest and most sophisticated ticketing system. Following a transition period of approximately two years, Indra will serve as the sole provider across the network that includes more than 8,500 buses, nearly 400 Underground stations, around 300 rail stations (Overground, DLR, Elizabeth Line and suburban services), 4,000 Oyster Card outlets, seven customer service centres, and 24 river boat boarding points.
Drawing on over 30 years of experience in urban public transport solutions, Indra will manage and evolve all aspects of the system. The project also envisages, in partnership with TfL, the implementation of new technologies to develop the system, make it more efficient and automate key processes; in short, to jointly create the next generation of the ticketing system for London.
Role overview
We are looking for a hands-on Principal C++ Software Engineer to provide technical leadership for the development, modernisation and integration of Front Office software used in fare-collection and payment environments.
The successful candidate will lead the technical delivery of software running on Embedded Linux and Windows platforms, including card readers, validators, gates, ticketing devices and associated station or vehicle systems.
This is a senior individual-contributor role combining software architecture, hands-on C++ development, design and code review, technical decision-making, mentoring and cross-team coordination. The engineer will take ownership of complex software changes from initial analysis through implementation, integration, testing, deployment and production support.
Key responsibilities
- Act as the technical authority for one or more C++ software products or project workstreams.
- Define software architecture and technical solutions for new products, hardware replacements, platform migrations and legacy-system modernisation.
- Design, implement and maintain high-quality software using modern C++.
- Lead the migration of legacy C and C++ applications to modern operating systems, hardware platforms, build environments and compiler toolchains.
- Analyse existing codebases and identify technical risks, dependencies and modernisation opportunities.
- Integrate software with hardware devices such as:
- Contactless and NFC readers.
- Fare validators and ticketing devices.
- POS terminals.
- Receipt printers.
- Communications modules.
- Bluetooth and other peripheral devices.
- Define and review software interfaces using REST APIs, MQTT, WebSockets and other messaging or communication protocols.
- Lead software design reviews, code reviews and technical investigations.
- Establish appropriate software engineering practices, including coding standards, design patterns, automated testing and Clean Code principles.
- Diagnose and resolve complex defects involving software, hardware, operating systems, communications and distributed-system interactions.
- Ensure that software is reliable, maintainable and suitable for deployment to field devices.
- Define build, packaging, deployment and CI/CD approaches using tools such as CMake, Docker, Jenkins and Git.
- Work closely with systems engineering, hardware engineering, testing, cybersecurity, Back Office teams, project management and external suppliers.
- Provide technical estimates, identify delivery risks and contribute to project and resource planning.
- Mentor software engineers and support the technical development of distributed or multidisciplinary teams.
- Support integration, acceptance, deployment and production investigations when required.
Essential experience
- Significant professional experience in C and C++ software engineering, including several years in senior, lead, staff or principal-level responsibilities.
- Strong hands-on knowledge of modern C++, ideally including C++11, C++14, C++17 or later.
- Proven experience defining software architecture and leading technically complex development or integration activities.
- Experience developing software for Embedded Linux, Linux Server or Windows Desktop systems.
- Experience integrating software with hardware devices and diagnosing issues across HW/SW boundaries.
- Strong understanding of:
- Multithreading and concurrency.
- Memory management.
- Object-oriented design.
- State-machine design.
- Inter-process communication.
- Network and device communications.
- Error handling, logging and diagnostics.
- Experience modernising or migrating large legacy C++ codebases.
- Strong knowledge of software build and dependency-management tools, particularly CMake.
- Experience using Git and structured branching, review and release processes.
- Experience with automated unit and integration testing using frameworks such as Google Test and Google Mock.
- Experience designing or integrating messaging and service interfaces, including technologies such as:
- REST APIs.
- MQTT.
- WebSockets.
- Experience with continuous integration and delivery pipelines.
- Ability to investigate complex production defects and provide technically robust solutions.
- Experience conducting design reviews and code reviews.
- Demonstrable technical leadership and mentoring experience.
- Strong written and verbal communication skills, including the ability to explain technical decisions, risks and trade-offs to engineering and non-engineering stakeholders.
Domain experience
Experience in one or more of the following areas is highly desirable:
- Automated Fare Collection systems.
- Contactless payment and smart-ticketing systems.
- Transport ticketing devices.
- Card readers and validators.
- Gate and station equipment.
- EMV contactless payments.
- ITSO smart ticketing.
- Barcode validation.
- Revenue protection or fare-processing systems.
- High-availability software deployed across large fleets of field devices.
- Holidays: 25 days per annum + 8 days bank holidays (options to buy/sell days).
- Pension – 4% employee and 4% employer.
- Private medical insurance (including dental & optical).
- Life assurance.
- Income protection.
- Employee assistance programs.
- Flexible/remote working options.
- Charitable initiatives.
- Social events (formal & informal).
- Learning and development programs.
- Innovative & collaborative work environment.
Indra is an equal employment opportunity employer. Applicants are considered without regard to race, colour, religion, sex, sexual orientation, gender identity, origin, disability or other characteristics protected by law.
