Software Engineer · AI / Machine Learning
I build end-to-end machine-learning systems, from custom deep-learning architectures in C++ to RAG pipelines and production APIs. I care about code that is fast, reproducible and actually ships.
// Variadic template pipeline that forwards a Tensor
// through an arbitrary stack of layers at compile time.
template <typename... Layers>
class Pipeline {
public:
template <std::size_t... Dims>
auto forward(Tensor<Dims...> input) {
return processLayers(input,
std::index_sequence_for<Layers...>(),
[](auto&& layer, auto&& data) {
return layer.Forward(std::forward<decltype(data)>(data));
});
}
void update() { // fold over every layer
std::apply([](auto&&... l) { ((l.Update()), ...); }, layers);
}
private:
std::tuple<Layers...> layers;
};
I'm a junior software engineer from Brest, France, finishing a double degree in Artificial Intelligence: an engineering degree at ENIB and a Master's at the Université du Québec à Chicoutimi.
My work spans deep learning & generative models (Transformers, VAEs, diffusion), model fine-tuning and evaluation and high-performance computing with C++ and SIMD. I've shipped ML systems across three internships at InterDigital, Crédit Mutuel Arkéa and Genesys.
I believe the best AI isn't the most complex; it's the one that's reliable, reproducible and grounded in solid engineering. When I'm not training models, I'm writing my own deep-learning library from scratch in C++.
$ whoami > mathieu_le_gouill $ cat focus.txt > deep learning · transformers · vae > mlops · simd · high-perf computing $ echo $STATUS > building & shipping
The tools I work with daily. Hover any skill for details & the projects behind it.
A selection of personal and academic projects, all open-source on GitHub.
A deep-learning library written from scratch in modern C++, with low-level SIMD vectorisation to maximise CPU throughput. Compile-time tensor pipelines and fundamental DL ops, built for speed.
A custom Transformer implementation for English-to-French translation, trained on the OPUS Books dataset with pretrained BERT & CamemBERT tokenizers. Full training/inference pipeline driven by a Makefile.
A Retrieval-Augmented Generation pipeline built with LangChain and exposed as a REST API via FastAPI on Uvicorn. Queries a vector store of documents to return context-enriched answers. Fully containerised with Docker.
Custom implementation of Vector-Quantized VAE and related generative models: β-VAE, VAE and a simple autoencoder. Trained and evaluated on the MNIST dataset for image reconstruction and generation.
Denoising autoencoders that learn to reconstruct clean images from corrupted inputs. An exploration of latent-space representations and the encoder/decoder bottleneck for image restoration.
A minimal Git-like version-control system built from scratch in Python: content-addressable storage, commits and branching. A deep-dive into how Git actually works under the hood.
Three engineering internships across AI research and applied ML.
Within the Energy Aware Media team: modelling smartphone energy consumption from real-world data. Built an Android app to collect display, system and usage metrics in the background, then trained regression models with Scikit-learn and PyTorch to predict global and per-component (CPU, Wi-Fi) energy use, balancing accuracy against compute cost.
In the IA Factory innovation team, building a test environment for a privacy-focused LLM (BLOOMZ / BERT). Set up a dockerised evaluation pipeline on Google Cloud Platform, developed a RAG pipeline with LangChain over internal FAQs and contributed Python/FastAPI features to the open-source chatbot framework TOCK.
On the Agent Assist team building on Google Agent Assist. Developed interactive web tools with Vue.js & Node.js to visualise agent and chatbot interactions, designed dynamic Chart.js dashboards to evaluate suggestion quality and participed at the Genesys hackathon building a conversational AI with DialogFlow & the OpenAI API.
A double degree in Artificial Intelligence, France & Québec.