I began coding at the age of 14, starting where every web developer started: with HTML and CSS. I kick-started my coding career by reading the online resources provided by openclassrooms.com at the time called “Le site du Zero”. With no more ambition than to do some wibbly-wobbly barely-workingy computery-stuff I started learning PHP to build simple websites and C++ to create basic 2D video games (all of these projects are now lost).
Now, after 10 years of practice I understand and know enough about computers and programming to create and maintain the code needed to build robust web applications using theorically any language, altough I have a strong preference for the C#.NET stack.
Despite not being in possesion of the required diploma, I do consider myself an engineer due to the nature of my line of work and skill set as it does not "only" requires me to code but also to design, plan, discuss, maintain and improve complex systems that are often required to reliably function for years.
January 2019 -> Now
In collaboration with a former 15+ years Java engineer converting to C#, I was asked to implement a replacement solution for our existing "Search Engine" webservices leveragin the speed, reliability and data analysis tools provided by Elasticsearch.
I created the infrastructure for the new components this project required using Azure virtual machines and Azure Web Applications. The new REST Webservice was written mostly as a set of .NET MVC5 projects, with a .NET Standard 2.0 project used in anticipation for a future migration to .NET Core.
I was tasked to lead a small technical team consisting of one senior front-end developer and one trainee back-end developer, to whom I acted as an instructor, to re-start and upgrade a dormant project. The site had been abandoned a few months earlier and had many flaws, bugs and broken parts.
The team's mission was to
The project was based on a .NET MVC5 stack, which I was already quite familiar with. I was tasked with the estimation of deadlines, feasibility and complexity of tasks as well as their proper realization and implementation. I made sure that the code was getting cleaned and improved every time the project progressed, in order to shrink its technical debt and reduce its growth.
July 2017 -> July 2018
Following my apprenticeship, I was hired as a replacement for my former training tutor who was leaving the company. The responsibility for the two projects that he was in charge of maintaining and improving was given to me and I was asked to dedicate some amount of my time for system-wide emergencies such as bug-fixing or important feature requests.
During this year I was given technical access to the production machines, so that I could deploy and monitors my projects on the release environment with no need to request permission or supervision from a senior coworker. At the end of this year I was also tasked with assuring weekend duty to monitor and maintain the system’s stability and global health during the high-season.
July 2016 -> June 2017
Apprenticeship position linked to the LP APSIO (Bachelor's Degree) formation.
As a developer I took part in the writing and maintenance of the code used by the company’s web application. I worked mostly on the data layer and the internal administration interfaces. Most of my work was done as a member of a small team consisting of two other developers. This year was my introduction to C# and the Microsoft web tech stack, which made me quickly move on from PHP for my personal projects to use MVC5 instead.
I built this website for a professional working in well-being and personal developpement.
The original design was maquetted by a 3rd-party designer, but I did the implementation of the site from front-to-back, including search engine optimization and communication advising.
The site was built with search engines and user-experience in mind, making it very fast to render, easy to navigate for humans and easy to parse for robots. I have also leveraged Google's professional-oriented tools such as Google MyBuisness to increase exposure of the site and the person it represents.
It is built using C# .NET Core 2 and leverages Docker's amazingness to be easily and cheaply hosted.
View the live version - Relaxation & Méditation à Canohès
I built this website for the community center of a small village in the south of France.
This site's creation predates my switching to C# and .NET stacks, thus it was coded in PHP (Silex/Symfony) and is hosted on a shared apache server.
View the live version - Foyer rural de Ponteilla-Nyls
The libraries and communities related to open-source have helped me a lot over the years, so I try to help others back by open-sourcing the code I write for my own projects which I consider to be potentially valuable to the community, and I also invest a part of my time to help others on StackOverflow.
A C#.NET Standard 2.0 collection of utility methods for Selenium WebDriver.
I built this library as a mean to centralize and share my most commonly used custom-made extension methods for the Selenium WebDriver C# API. And hey, why not make it open source, who knows ?View on github
A .NET Core 2 implementation of Google's reCaptcha V3
This library's purpose is to simplilfy the integration of the third version of the famous google "ReCaptcha" utility. It is meant to be a plug-and-play unobtrusive way to leverage the invisible captcha.View on github
I am specialized in Web development using Microsoft’s latest .NET technologies, but I am always open to new experiences and learning new stacks.
After over four years working every day with C#, I consider it as the base stone of my back-end stack. I mostly use it in the context of web applications, leveraging the power of .NET MVC5 and .NET Core 2 frameworks along with razor and, more recently, Blazor.
Regarding data manipulation in a relational environment, I am used to working with Transact SQL and Entity Framework, both in code-first and database-first, the former being by far my preferred solution over the latter.
Over the past year I have worked a lot with Elasticsearch, making me proficient in the a very powerful, robust and sought-after NoSql data & search engine.
My currently favored tools are Rider IDE, SQL-Server, Windows 10, Git & GitKraken, Sublime Text, GitHub or Visual Studio Team Service. I also have a bit of experience working with the Azure portal.
I am well-versed in Object Oriented Programming and the associated concepts such as Interfaces, Polymorphic and Generic algorithms as well as Reflection.
I am also quite comfortable with Dependency Injection thanks to several years spent using the Ninject library in MVC5 and my extensive use of .NET Core 2 and the built-in DI system.
Some of the back-end developpers in the company attended a 3 days course with a .NET certified software engineer. This formation's purpose was to sensibilize the back-end engineers to the many possible means of attack through example, and to provide a few simple keys to protecting the software we write by writing an implementation to counter each of these attacks. Among the many topics discussed during this class, the most important ones were, in no particular order:
Only a portion of the company's developpers follow this course, but a coworker of mine and myself thought that what we were shown during these three days was valuable information to anyone related by any meangs to the actual source code no matter their actual position (front/middle/back end, Database expert, SEO expert, in-house lawyer). For this reason we organized two sessions of internal re-formation that consisted in a simplified version of the formation stripped of the actual implementation of the countermeasures. The purpose of this was to inform that the aforementioned attack existed and that it was of high importance to protect us from them.
This formation focused on the theory and example implementation of many common design patterns. Among the ones studied during this 2-days long formation we focused mainly on the following one: Factory, Object Pool, Proxy, Composite, Singleton, Observer and Visitor.
The real purpose of this formation was not so much to teach us the exact name of these patterns, but to give us the tools to design solutions that are meet the requirement in the best possible way, by showing us many different paradigms.
We also talked about the best practices and recommended usage of JQuery as well as the best way to use it within a TypeScript file.
A one year course the resulted in a short thesis about the big O notation - theory of algorithmic complexity.
The following fields were taught and practiced
A two-year course with classes and practical exercises targeting the fields of
I had two periods of two month as a trainee in two different companies during this formation. The first one was in a marine life biology laboratory as a C and PHP developer. I worked on an Arduino to create a floating data-reporting beacon. The second training period took place in a Web Development agency.
Coding is a passion. I'm a C#.NET developer, specialized in .NET web technologies and tools. I value well-designed systems and I apply myself to produce elegant & maintainable code.