Profile

Software Engineer at Arista Networks, I specialize in data-science and machine-learning. Though I am open to any new technology, the languages I am most familiar with are C++, Python, JAVA, and C. My interests are various and involve -- among others -- scientific and technological innovation, music, literature, and history of Art.

Experience

Software Engineer / Data Scientist

2017 - Present
Arista Networks, Dublin, Ireland

Data analysis projects involving Machine Learning techniques using the Python scientific ecosystem, Keras, and the Go language.

Teaching Assistant (YAKA/ACU)

2015 - 2017
EPITA, Villejuif, France

Organising practical C++, JAVA, C, SQL, and UNIX courses and projects for 400+ third-year students as part of a team of 30 assistants. Our job was to prepare the subjects, organize courses, help the students understand programming and debug their code, and check their work. I was responsible of the Chess project (complete Chess game engine with an AI in C++ 14), and of the Formula One project, a race car driving AI. I was also the quality manager, in charge of checking all the documents (courses, subjects, exams...) provided to the students to ensure that the quality (grammar, content, difficulty) was sufficient.

R&D intern (4 months)

2015
Aerys, Paris, France

  • Development of a multimedia application controlled with the hands using a Leap Motion sensor.
  • Development of an IFC 3D model import plugin for the Minko 3D Engine (C++).
  • Development of an interactive virtual visit app using Oculus Rift DK2 base on the Minko 3D Engine (C++).
  • Implementation of clipping planes inside the Minko 3D Application to allow users to see inside 3D models (C++).

Teaching Assistant (ASM)

2014 - 2015
EPITA, Villejuif, France

Teaching UNIX and C Programming to a thirty students classes. My mission as Teaching assistant at EPITA was to supervise second-year practice class. I taught UNIX, GNU/Linux and C Programming to a class of thirty students. This gave me the opportunity to improve my teaching skills my technical skills nd my pedagogical abilities.

Web development intern (2 months)

2014
SYDER, Lyon, France

The SYDER is a town union responsible for energy and public lighting of a great part of the department of Rhône (France). My mission inside the company was to develop a Web App allowing town councils to consult their charges, and to simulate their budget knowing the ongoing projects. I also improved the Web Design of the Extranet portal and I developed a small cartography system based on OpenLayers and OpenStreetMap.

Projects

LyreLand - End of studies' project. Developed with JAVA 8 and completely open-source, LyreLand embodies several modules:
  • harmonic, rhythmic, and melodic analysis of MIDI files
  • machine-learning to learn new music genres using the analysed data
  • generation to compose music using the trained data
Spell Checker - Spell checker developed in C++ with important memory and performance constraints. The project is split in two parts:
  • A compiler, which reads a text dictionary, builds a Trie, and serializes it into a binary contiguous file that allows direct search without reconstructing the Trie in RAM.
  • A spell-checker that directly reads the dictionary on SSD using mmap to allow a great number of requests per second without spending time reconstructing the trie in RAM.
Barcode reader - Program developed in C++ with OpenCV. It can detect several barcodes in a photograph, and read their value.
Viola-Jones - C++ implementation of the Viola and Jones method for Facial detection. Parallel computing was implemented using Intel TBB.
Tiger Compiler - A compiler for the Tiger Programming Language developed in C++ using GNU Bison and Flex inspired of Andrew Appel's 'Modern Compiler Implementation' book. Front-end producing TREE intermediate language, back-end producing MIPS and IA-32 assembly languages.
Chess - Chessboard and engine developed in C++ with a plugin system for game logging and AI loading. We also developed an AI plugin using a Minimax algorithm.
MyPhotoshop - Small raster graphics editor written in JAVA 8 with Swing. It embodies several features such as tab panes, interactive modification history, convolution matrices filters, painting brushes, i18n, custom skins management, external filters loading...
42sh - C implementation of bash --posix (UNIX shell) with SCL parsing using a custom AST, custom readline, and working execution and builtins.
MyHTTPd - HTTP daemon written in C handling heavy charges (C10K) using epoll to implement non-blocking I/O.
OCR - Optical Character Recognition program (OCaml)
Metastruggle - Super-Smash-Bros-like 3D game (C#)

Technical Skills

C++

Python

C

JAVA

SQL

LaTeX

Go

PHP

JS

Matlab

C#

OCaml

Swift