Server Dev: Setup and configuration of a Django server backed on a geographical and single timed postGiS
database; Deployment of both http request and WebSocket communication mechanisms with clients.
Web client (display): Django based client enhanced with usage of web workers to offload communication and
computing tasks from main thread. Mapbox GL JS library is extensively used to display several hundred of
animated features in real time.
Qt Application (Create, Update, Read and Delete operations): C++ QT desktop application. Qt Quick controls
and QML for the user interface. The application is built on the Model View Controller design pattern. To take
advantage of the highly optimized Mapbox GL JS library, the application embeds the Web client through the
WebEngineView and WebChannels QML types; Communication with the Django server is done through the
WebSocket link. Final purpose is to port on Android, web assembly experimentation to be done.
Test & validation: Development of several graphical user interfaces communicating, through an extended
messages CAN bus and a HW test bed, with single or several embedded systems for the purpose of production,
unitary, validation and integration tests. Python is widely used along with PyQT5 for the graphical interface.
The project is the design and development of the D DAY MEMORY TOUR web site: ********. The D DAY MEMORY TOUR company proposes highly immersive tours to recreate the atmosphere of the allies’ landing in Normandy in June 1944. The web site design is based on the "mobile first" and "responsive design" approaches based on Bootstrap. HTML, CSS, javascript and JQuery have been used for the developmen
DEVELOPMENT OF A SECURITY KEY EXCHANGE MECHANISM
The objective was to join BLACKBOXSECU (********)as a co-founder. I acted as senior embedded software developer and system architect. I started to develop in C on a RASPBERRY PI platform a key exchange mechanism based on the Elliptic Curves Diffie-Hellman (ECDH) algorithm. I participated to the creation of the software development framework and test framework. The technical collaboration was excellent but discussion about company shares differed.
I acted as a project leader. I reused the UML methodology for the specification documents, I interacted with the software developers and I managed the Integration of the library with a TI generic test bench. I fully applied the official TI software delivery for this project.
participated to the software architecture definition and translated this architecture into a UML description. I was responsible for the software functional specification and I used the UML description to automatically generate the API specification and the C header files. I developed the code using a C object oriented programing model. In the verification phase, I developed the complete set of basic functional tests and I created a graphical tool, based on memory dumps, to ease the debugging of the library. I closely interact with the validation team for the extensive validation phase. I supported the major base statio
DEVELOPMENT OF A RUNTIME LIBRARY FOR MULTICORE ENVIRONMENT - FROM 2010 TO 2015
The project was to port the open event machine (OpenEM) runtime library on the TI KeyStone platforms (TMS320C6670, TMS320C6678 and TCI6638K2K). The main missions of OpenEM are to enable efficient scheduling, dispatching and load balancing of work across the cores of a KeyStone device, as well as efficient high-speed communication between KeyStone devices. OpenEM is able to manage lots (thousands) of events with low (less than 1000 DSP cycles) overhead. My task was to lead and develop the complete DSP software of the project. The project was commissioned by one TI major customer that now integrates the library as a standard in its TI based development platforms.
• I participated to the definition of the software architecture. I was responsible for the coding and optimization of the generic parts and the DSP specific parts in C. I participated to the coding of the “work scheduler” and the “10 Gigabit Ethernet router” in assembly code. I interacted with the ARM Linux software developer. I was responsible for the validation of the library (over several hundred tests), for the benchmarking and the code coverage. I was in charge of the user’s guide and of the API specification document (Doxygen).
• I participated to the creation and maintenance of an overnight continuous integration mechanism (“Jenkins” based) that automated, over several TI platforms, the build of the library (TI RTSC build system) and the creation of the release packages. It also automated the test regression on real TI hardware platforms, the computation of the benchmarks and the computation of the code coverage. The project was maintained using Git source control.
• I was responsible for 30 customer deliveries over 5 years. “Active Collab” was extensively used to track the project and deliveries. I provided continuous remote and onsite support over 3 versions of the library, 2 of them being deployed in the field by the customer. The very good interaction with the customer always permitted the enhancement and development of the library in parallel with the development of the customer application.
• Patent: System and method for scheduling jobs in a multi-core processor – 9047121 - February 25th 2013
The project covered all the generations of software layers that drove the TI UMTS chip rate receiver co-processors from the initial all hardware Correlation Co-Processor (CCP) going through the off-chip Programmable Correlation Co-Processor (PCCP), the built-in and tightly coupled RAKE software Accelerator (RSA) to the highly configurable built-in and loosely coupled RAKE receiver Accelerator Co-Processor (RAC). These hardware accelerators associated with their software functional libraries highly contributed to the success of TI in the UMTS macro base station market. My task was to continuously lead the development and the support of the software functional library dedicated to the UMTS Path Monitoring (PM) algorithm.