Careers > Software Engineer - Language Server for RecordFlux
Last modified 11/28/2022 9:51:11 AM

Software Engineer - Language Server for RecordFlux

Internship
AdaCore
Paris or Toulouse, France or Dresden, Germany
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.

Context:

Implementing complex communication protocols and data formats correctly and securely is a huge challenge. High profile security vulnerabilities like BrakTooth, Ripple20 or Heartbleed were regularly discovered in recent years and affected millions, sometimes even billions of devices.

With the RecordFlux toolset and domain-specific language (DSL) AdaCore has the means to precisely describe binary communication protocols and data formats. From a formal description we generate code that can automatically be proven to contain no critical errors. 

While a RecordFlux plugin for our own GNAT Studio IDE exists, its functionality is currently limited and other IDEs are not supported. We recognize that the process of modeling a communication protocol is critical in obtaining a secure and correct implementation and tools should provide the protocol designer with as much support as possible.

The goal of this project is to support the RecordFlux DSL in a variety of IDEs and source code editors through Microsoft’s Language Server Protocol (LSP).

Goals:

The purpose of this internship is to:

  • Understand the RecordFlux DSL and the process of protocol formalization

  • Identify LSP features that are helpful for formalizing communication protocols and data formats

  • Prototype a RecordFlux language server in Python

  • Implement example support for the new language server in Visual Studio Code in Typescript

  • If time permits, make the new language server work with GNAT Studio and neovim

Skills required or Nice to have:

  • Required: Programming in Python and JavaScript/Typescript

  • Nice to have: Interest in communication protocols

  • Nice to have: Interest in security, language design, IDEs

Timeframe:

During 2023 - 6 months

Powered by Hello Talent