Research & Development Engineer – Internship – RDEI-2013-3 – Obsolete

This offer is obsolete and is retained for reference only. Current offers are available on this page.

Objective

Improving the productivity of the software engineers who use our Integrated Modeling Environment

Mission

As a Research & Development Engineer, you will join the team in charge of the Integrated Modeling Environment (IME), one essential component of the complete development toolchain created by Prove & Run. Our goal is to make innovative formal methods available to all, and therefore we aim at providing excellent engineering support tools to our customers. During your internship you will be in charge of a twofold project aimed at improving the productivity of the engineers who use our tools.

The first part of your project will be to review existing, “state of the art” tools designed to help software engineers, using our own development process as a testbed.

  • Identify the main limitations of our current development process.
  • Survey existing tools that can detect code defects and improve code quality (at edit time, at compile time or at run time).
  • Work with the other members of the team to integrate the relevant tools in our development process.

For example, we use the Java Development Tools (based on the Eclipse platform), which offers several features that facilitate development tasks while improving the quality of the source code. Such features include validators (i.e., checkers looking for potential defects in the code), quick fixes (program transformations meant to fix errors and warnings), quick assists (context sensitive program transformations), code generators and refactoring tools. However, the JDT is a general-purpose tool: in many situations additional tools can deliver significant benefits, especially if they can be integrated with the JDT. Finally, in some cases, reaching top efficiency may require the development of unique tools.

The second part of your project will consist in reusing the experience you will have gained during the first part to apply it to the IME, in collaboration with actual users.

  • Identify the current limitations of the IME regarding the engineering assistance it offers to its users.
  • Propose an improvement plan.
  • Implement this improvement plan.

This is offer is for a 6-month internship and is located in our office in Paris.

Profile

You are currently completing a Master’s Degree or an equivalent degree. You have a significant experience of software development. You are rigorous, independent and have good interpersonal skills.

An interest in one or more of the following topics will be appreciated positively:

  • Human-Computer Interface and Usability
  • Compilation
  • Software Engineering (requirements management, design, implementation, testing, release management and more) and the tools that support it

Previous experience with the following tools with help ensure that you can hit the ground running:

  • The Eclipse development environment
  • Source code management tools
  • Issue tracking systems
  • Documentation generation tools

A good level of English is required.

Benefits

All interns will receive the following benefits :

  • Compensation of €1000-1200/month (gross),
  • Daily meal stipends (Tickets Restaurant),
  • Half of the monthly cost of the Navigo card (the public transportation card in Paris).

 

Are you interested in joining Prove & Run and becoming a key part of our team? If so, please check what it means to be an intern at Prove & Run, or apply right away!

This offer is obsolete and is retained for reference only. Current offers are available on this page.

 

Objective

Optimizing memory management through static analysis

Mission

As a Research & Development Engineer, you will join a team in charge of the Integrated Modeling Environment developed by Prove & Run. More precisely, you will join the group in charge of the development of the compiler that transforms our modeling language to C source code.

Our modeling language is a functional language, and this offers several advantages. Functional programs are arguably easier to reason with and to prove correct, and free the user from the burden of explicitly managing the memory. However, to compile functional languages into efficient imperative code, one needs to pay particular attention to memory handling. Traditionally, compiled functional languages are executed with a runtime garbage collector (RTGC). Using a RTGC allows the compiler to easily share memory locations, but can also increase memory fragmentation and CPU consumption. RTGCs can also be hard to prove correct.

During your internship, you will be in charge of a project aiming at reducing the use of the runtime garbage collector using static analyses. Ideally, for some programs, the RTGC could even be removed. Under the supervision of your advisor, you will:

  • study the state of the art on compile-time garbage collection;
  • study our modeling language and its differences with standard functional languages;
  • identify several means of reducing the use of the RTGC;
  • propose a static analysis to abstract the behavior of the program being compiled,
    • formalize the analysis and
    • implement an analyzer in Java;
  • use the results of the analyzer to weave memory management instructions in the generated imperative code.

More details are available in this presentation.

This is offer is for a 6-month internship and is located in our office in Paris.

Profile

You are currently completing a Master’s Degree or an equivalent degree. You have a significant experience of software development. You are rigorous, independent and have good interpersonal skills.

An interest in one or more of the following topics will be appreciated positively:

  • Embedded software development (consumer-oriented or industrial)
  • Operating Systems
  • Software Assurance and Certification

Previous experience with the following tools with help ensure that you can hit the ground running:

  • The Eclipse development environment
  • Source code management tools
  • Issue tracking systems
  • Documentation generation tools

A good level of English is required.

Benefits

All interns will receive the following benefits :

  • Compensation of €1000-1200/month (gross),
  • Daily meal stipends (Tickets Restaurant),
  • Half of the monthly cost of the Navigo card (the public transportation card in Paris).

 

Are you interested in joining Prove & Run and becoming a key part of our team? If so, please check what it means to be an intern at Prove & Run, or apply right away!