I studied general engineering at Ecole Centrale Paris (2006) and I specialized on software as a very enthusiastic career choice.
After twelve years of professional software engineering, I value maintainable and evolutive source code and the use of tools and automation to create working, reliable software.
As of May 2019, I’m looking for my next job. Maybe we can work together on your software project? More details below my portfolio.
My projects are documented using Sphinx and the Alabaster theme. Reference documentation is generated from Python source code by autodoc, form C++ source code by Doxygen and Breathe, and from OCaml source code by a preliminary version of my Sphinx extension for OCaml
The main challenge is the size of the API: there are hundreds of endpoints, each with one to six HTTP verbs. PyGithub provides a specialized interface for each combination; this makes client code safe. Some other libraries let their user write the name of the endpoints: mistakes are only discovered when the HTTP request is sent. In PyGithub, if the method exists, then the endpoint exists.
Python C++ Library Program Visual
Its core functionality is written in C++ and exposed as a Python library using Boost.Python. Two-way integration between C++ and Python code allows a Python callback computing the colors to be called by the C++ code.
OCaml Visual Web Program
Splight is a web application I’m building with my father, to gather and display a calendar of cultural events in his city. The data we have so far is not ready for production, so you can have a look at the demo of the admin (all in French).
OCaml Visual Program Mobile
It’s written in OCaml. The same core code is used to produce several applications:
My infrastructure repository holds my… infrastructure, as code.
It uses Terraform to maintain my DNS records at Gandi, and point them at a Kubernetes+Helm cluster on Google Cloud Platform. (I left Amazon Web Services when I adopted Kubernetes because of the GKE pricing).
Private credential files are kept securely in the public git repository using git-crypt.
I use a single IP address for all my (sub-)domains and use HAProxy to dispatch requests accordingly.
To ensure that side-effects from an action don’t affect others, it uses Python’s multiprocessing module to launch each action in its own subprocess.
Its main added value is that decorated functions keep their signature, so tools doing introspection (Sphinx doc, IDEs, etc.) will work like there is no decorator.
The wrapper function is generated using Python’s ast module.
This avoids using
eval on generated code.
OCaml Web Library
Polyglot is a collection of examples of how to interface pieces of code written in different languages, and/or execute code in a runtime environment that’s not traditional for its language. Calling a C++ library from a Python program, or executing OCaml code in a web browser, are two examples amongst what Polyglot demonstrates.
I hope you liked my portfolio and it made you want to work together! Here is my résumé (PDF).
My dream job
I aim at making the most of my time. Based on my work experience, I have identified below a few conditions that help me be as productive as possible. Of course this is just to give you a taste of what I’m looking for, and we don’t have to be a 100% match. If you think we could be a good fit, please send me an e-mail and let’s discuss working together!
Also, to say it plainly: money is less important than these points. So if you can give me amazing working conditions, you will benefit from my technical skills for a reasonable price. And so is administrative status: I can freelance if you need to share the burden of risk.
Working from home
I’ve been working from home for a few years now and my personal life is organized around it so this is the most important for me.
It gives me long uninterrupted focused work periods, the best for people on a maker schedule. Without the daily commute I feel less tired and I waste less time. This means I have more time for work and for myself.
Building technical solutions...
I enjoy technical work. I like and I need to deeply understand what I do. When I discover new technologies, I take some time to read about and experiment with them. When I start working on new code, I appreciate having time to understand how it works globally, preferably with the help of an expert. And when I take on a new problem, I spend some time analyzing it to find a solution as simple as possible.
I strongly believe spending time early reduces the overall time to deliver long-term solutions. This is an investment though, and a strategy that must be adopted consiously.
I wish to become a very potent expert rather than a manager, and I’m looking for a job that values that.
...to actual business problems
I need to understand the business big picture, to keep in mind why we are doing anything. The question of exactly what we should do, however, is probably better answered by domain specialists. Regular, bi-directional, communication with them is key to successful projects.
An application domain I enjoy
These are purely personal preferences with no value judgment.
I would rather not work in a military or finance-related domain. I would be very happy to work in toys, hobby supplies, robots, software engineering tools, science. I would also like many other domains in the industry, transportations, tourism, culture… and many more I don’t even know exist!
High moral standards
I’m looking for a job where laws and individuals are respected and that condemns any form of discrimination.
Anyone should feel free to discuss ideas, behaviors and produced artifacts, and refrain from discussing people.
There should be a culture of openness (about information and software) and knowledge spreading to reach a distributed technical excellence.