Careers > Software Engineer - Measuring and optimizing the performance of code generated by QGen
Last modified 11/28/2022 9:51:31 AM

Software Engineer - Measuring and optimizing the performance of code generated by QGen

Paris, France or Tallinn, Estonia
Bac +4/5

Everything we do at AdaCore is centered around helping developers build the safest, most secure open-source software. 

For over 25 years, we've worked with global leaders across avionics, aerospace and defense industries, building tools and providing services that ease the complex and difficult process of developing high-integrity software. As the need for truly secure and reliable applications expands into industries such as automotive, medical, energy, and IOT, we’re advancing our time-tested technologies to bring expertise and services to help a whole new generation of developers.

Our 150 experts worldwide in the US (New York), France (Paris, Toulouse, Grenoble and Vannes), the UK, Estonia and Germany all play a role in developing bleeding edge technologies to meet the highest grade of 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.


QGen is an automatic code generator from Simulink/Stateflow that produces Ada or C code. It targets embedded mission critical systems, where processing resources are scarce and performance of the generated code is paramount.

The goal of this internship is to define a strategy for measuring and analyzing the performance of the code generated by QGen (taking into account processing time and memory usage).

Once performance is measured, and the different code patterns generated by QGen are understood, a list of potential improvements to QGen will be produced. A subset of these improvements will be implemented in QGen.


  • Understand code generation in QGen

  • Identify the different patterns in code generation

  • Define and discuss a strategy for measuring the performance (time and space) of the generated code

  • Document the list of potential improvements needed

  • Implement some of the improvements

Skills required or Nice to have:

  • Familiarity with one high-level object-oriented programming language (Ada, C++, Java)

  • As a bonus, familiarity with Simulink/Stateflow

  • Ability to learn quickly about new development practices


During 2023 - 6 months 

Powered by Hello Talent