In my engineer school ESISAR, we have a special semester called Industrial Project.

Students are grouped in team of 3, and for 6 months they work full-time for a external company.


The company

I worked with the company MGI Technologies based in Paris. They build and sell industrial-length printers.

The project

Inside a printer, there is a software taking care of coordinating the user commands, placing the printing heads at the right place, etc…

This software (called ”kernel”) is written in C#, but it’s not fast enough, and is difficult to maintain because it was written without real design.


The company wanted us to re-design the whole kernel, and implement this new design in C++. The objectives of were :

<aside> 🎯 Skills


C++

UML

Design

Unit tests

Integration tests

Linux / Bash

</aside>

Experience

First we followed a C++ speed formation, as none of us officially knew the language.

We then spent a great amount of time designing the system, using UML standard.

We finally implemented the kernel in C++. A important testing phase was performed, particularly because of the multi-platform specification.


The company was really satisfied with the outcome of the project and the way we managed our team. They proposed us to keep working for the summer.

On my side, I learned a lot of things, such as a new language (C++), but also management skills and teamworking.