Everything we do at AdaCore is centered around helping developers build safe, secure and reliable software.
For 30 years, we've partnered with global leaders in aerospace & defense, air traffic management, space, railway and financial services. We've developed tools and services simplifying high-integrity software development through a subscription-based model. As demand for secure applications grows in industries like automotive, medical, energy, and IoT, we're adapting our proven technologies to assist a new generation of developers.
Our 150 global experts based in the US, France, Germany, the UK, and Estonia, collectively develop cutting-edge technologies to address the challenges of high-grade software development.
Joining AdaCore is about joining a culture of innovation, openness, collaboration and dependability, which defines how we work together, with our customers and partners.
AdaCore is looking for a Senior Bare Metal and Cross Environment Software Engineer to join an international team working on AdaCore’s various bare metal and cross development toolchains and embedded runtime libraries.
The Cross Team maintains the GNAT Pro toolchain which is available for a wide range of bare metal targets as well as embedded Operating Systems, providing support for Ada, C and C++. We also routinely port GNAT Pro to new platforms when needed.
Your responsibilities include:
Participate in the design, implementation, documentation and maintenance of our Ada/C/C++ GNU-based compilers and runtimes for cross targets (Bare Metal and with RTOSes). This includes ports to new targets as well as maintenance on existing ones for a wide variety of CPUs (32/64 bits variants of powerpc, arm, sparc, intel and riscv) and RTOSes such as VxWorks, QNX, LynxOS, PikeOS or embedded Linux;
Participate in the Design, implementation, documentation and maintenance of our Python-based build and testing infrastructure for such targets;
In order to maintain our BSPs or to develop new ones, operate debug probes (JTAG)/traces or emulation environment (QEMU).
Support AdaCore’s customers using these Bare Metal and Cross toolchains;
Prepare patches to open-source, community-supported tools so that they can be integrated into upstream repositories;
Collaborate on Certification Projects (traceability, design documentation, design and implementation of customer's specific requirements, integration with customer's hardware, validation).
Your qualifications and skills must include:
You have a minimum of 5 to 8 years of experience working with embedded systems;
As a result of your industrial experience, you have a good understanding of system programming and embedded software development. You are able to read and understand datasheets or target ABI documents to operate a board, design and write BSP code to boot and manage it (system calls, interruptions, timers…).
You understand runtime libraries, how they interact with programs and the execution environment,
You have a good understanding of real-time programming fundamentals (time management, tasking, concurrent programming…);
You have a good understanding of compilation toolchains (compiler, linker, binder, assembler) and how the various tools work together;
You are comfortable with UNIX system and working from a command-line interface;
You are also comfortable working on Windows systems;
You can set your own priorities and are able to learn by yourself;
You are interested in joining a geographically-distributed team, and can undertake occasional travels for face-to-face meetings or on-site customer visits.
The following are not mandatory but are considered a plus:
Experience with RTOS like VxWorks, QNX, LynxOS, PikeOS, FreeRTOS or RTEMS;
Experience with developing BSPs for bare-metal or RTOSes;
A good understanding of Ada and the Ravenscar and Jorvik profiles;
Experience with build and testing infrastructure, or quality assurance;
Experience using the Python programming language in a production environment;
You have some experience working with C++;
Experience with GDB (or equivalent) on embedded platforms;
Experience developing and contributing to Free Software or Open Source projects (e.g. GCC or the Linux kernel);
You are familiar with JTAG, Trace, and other hardware debugging methodologies;
You have experience in certification constrained development (ISO26262, DO178, EN50128, ECSS…)
Salary Range: $130,000 - $150,000 per year
Beyond the job:
We are looking for individuals who want their work to have a direct impact on improving the reliability, safety and security of the software that modern society has grown increasingly dependent on in an international environment. Our sales and marketing team is staffed with multi-talented, tenacious and creative individuals; and our HR team is committed to ensuring your tenure with AdaCore is a positive one.
AdaCore is a global organization driven by a team that personifies many different backgrounds and experiences. We are also a technology company that celebrates the open exchange of ideas, which makes innovation possible! We encourage applicants of all backgrounds to consider joining us. We welcome people of all ethnicities, nationalities, gender identities or expressions, ages, religions, physical abilities, sexual orientations, veteran status or marital status; we celebrate everything that makes you uniquely, undeniably you.
We encourage our employees to explore their curiosity by providing them ongoing and lifelong training from their first day in AdaCore with a strong onboarding plan. As we know that juggling work and life is challenging, we offer flexibility to accommodate personal needs and work commitments.
AdaCore offers competitive compensation, benefits and thoughtful perks (summer meetings, activity weekends, Holiday dinner, etc.). We go beyond industry standards to help keep our employees comfortable and satisfied both on and off the job, no matter where they are based.