1 month

Audio Source Separation Research

Research on audio source separation Deep Learning algorithms and state-of-the-art. Audio source separation is a vast field of research in Deep Learning with multiple uses. I worked on this subject and did all the research as if I was to lead an audio source separation project. No coding was involved, the objective was purely to research, benchmark, look at what had already been done, break down the different algorithms used and assess what made one better than another, then write a paper about all the collected information. This covers spectrogram methods and waveform methods, such as U-NET.

3 days

Tumor Prediction

Machine Learning model capable of identifying brain tumor location based on medical imagery. The model is a SCV pixel classifier, as opposed to an image classifier. Several optimizations were possible, such as using a multi-layer perceptron or random forests, or simply using more context for classification.

1 month


Context: PrestaCop, a company specialized in service delivery for police forces, wants to create a drone service to help police systems collect parking tickets. A camera with a pattern recognition software identifies license plates and characterizes infractions.
The drone simulator is written in Go and can simulate multiple drones sending messages regularly. All messages are sent on a Kafka stream and depending on whether the drone requires assistance or not, on one topic or another. Azure EventHub stores all messages in Kafka stream into an Azure DataLake, and for messages on the assistance topic, sends an email indicating what the problem is. We also use DataBricks (code in Scala) to analyze the stored data and obtain interesting statistics. The whole cloud part is deployed using IAC.

1 month

Captcha Solver

A Deep Learning model that takes a captcha image as the input and returns its predicted text. The code is written in Python and hosted in AzureML, which allows us to, using Keras and Tensorflow, train the model, save it and export it. This is so that the model can basically be loaded and used as an API using the Azure Machine Learning studio, which we then feed an image (preprocessed), and it returns the captcha text prediction. The model uses a CNN to extract the features and predict the text from the image.

2 weeks


This is the website you're currently on. My portfolio website is made using GatsbyJS, a React-based open source framework for creating websites and apps. It is known to be extremely fast and efficient for static websites.

4 months

Ticketing Webapp

This Python project is a webapp designed to help our school associations to organize and manage events. This app was made using Django and allowed us to create not only associations and hierarchy with different roles (admin, member, etc), but also public or private events for this association and sell or book tickets for a specific event (PayPal API). It also has a feature allowing people to validate their booking when attending the event.

3 months

Tiger Compiler

This is a front-end and middle-end compiler for the Tiger language, made in C++. Tiger is a language designed to help learn and understand compiler systems theory. This project consisted of implementing a compiler for this Tiger language. The lexer and parser were created using Flex and Bison, and the rest was in C++. This was a very complicated project, but our group was among those with the top grades, allowing us to tackle the back-end part of the compiler and ultimately have a fully operational compiler.

1 month


42sh was a shell implementation that lasted 1 month. The objective was to reproduce bash's behaviour, namely to be able to run a shell script, and run commands inside it as a shell terminal. Advanced features were supported, such as pipes, redirections (stdout and stderr), &&, background running (&), if, while, for blocks, etc. This project was developed in C, so the construction revolved around an AST, and the memory had to be perfectly managed, meaning no memory leaks.

2 days


This project consisted of a basic Raytracer developed in C. We didn't have much time to complete this assessment, but we first had to parse the files that would provide us with the meshes and surfaces to render. More advanced features were possible, such as glossiness, etc., were also possible.

2 days

Minecraft AI

Basic AI for a Minecraft-like game. This was another rush, in Java this time. We were given a game engine that could launch the Minecraft-like game, but we needed to code the characters' behaviors, knowing that there were game rules to follow. The objective was to stay alive as long as possible, and for the characters to defend themselves in a sort of autonomous way. This was a naive "AI", which didn't use any AI techniques whatsoever.

2 days

Infinite Calculator

This project was a 48 hour rush in which the objective was to handle bignum operations, such as addition, subtraction, multiplication and division. This was not easy because there would be an overflow if we computed those operations as usual. Seeing as this project was a rush, the goal was to get as many operations to work, with really big numbers.

2 days


Basic torrent client and server implementation, in C. The project was a 48 hour rush where we had to build a basic peer-to-peer program that could run as client and server. This introduced us to the basic protocols (TCP connection, handshake).


Nicolas Ceccarello