Curriculum Vitae

Thomas GIL

[email protected]

Compétences principales

Développeur fullstack

Je suis CTO de FirmFunding depuis bientôt 10 ans. Notre équipe est petite et efficace, ce qui implique de toucher à tout: du développement back (Java, PostGreSQL, Redis) au front (Vue, Svelte) en passant par l'infrastructure (Docker, AWS Lambdas, S3).

Chercheur

Je travaille actuellement sur un algorithme de compression d'images sans pertes. Mon objectif est de trouver un compromis entre les performances de QOI et le taux de compression de FLIF, WEBP lossless, voire Gralic.

Concepteur / développeur d'outils

J'ai écrit GT, un transpileur qui apporte au C une petite surcouche orientée objet (classes, héritage simple, notation pointée, méthodes externes). Son parseur, basé sur Ragel, fonctionne comme une pile d'automates à états finis.

GT a simplifié l'élaboration d'une bibliothèque de génération de documents PDF (sans aucune dépendance) ainsi que d'un outil de génération de diaporamas.

Avec Jean-Baptiste Evain, nous avons construit AspectDNG, un tisseur d'aspects intervenant directement sur le CIL des assemblies .NET.

Optimiseur

Pour apprendre CUDA, j'ai optimisé l'exécution de quelques algorithmes de hashage utilisés dans certaines blockchains à Proof of Work.

Formateur

J'ai animé des formations sur les langages de programmation (Java, C#, C++, C, JavaScript, PHP, XSLT...), sur les notions Objet et les Design Patterns, sur la Programmation Orientée Aspects et sur les architectures d'entreprise autour de Java EE et .NET.

Auteur

J'ai participé à l'animation d'un site de comparaision d'architectures .NET et Java EE (DotNetGuru), ce qui impliquait la rédaction d'articles techniques (en français et en anglais) et l'animation de la communauté (forums).

J'ai écrit un ebook à la croisée de l'AOP et des Design Patterns.


Compétences techniques détaillées

Langages de mes projets actuels Java, SQL, C, JavaScript, HTML, CSS
Langages de mes projets passés C#, C++, D, XSLT, PHP, Python
Autres langages touchés du doigt Assembleur, Rust, Julia, Go, D, Lua, XSLT, PHP, Ruby, Perl
Conception Conception Orientée Objet, Design Patterns, Conception Orientée Aspects
Systèmes d'exploitation Windows, GNU/Linux, MacOS X

Projets

Date Projet Description Technologies Rôle
2022- Compression d'image Recherche, prototypage et développement d'un logiciel de compression d'image sans perte C Développeur
2017- FirmFunding Architecture, développement et déploiement d'une place de marché de placements privés Java, JavaScript, Vue.js, Svelte, Cloud, Serverless CTO
2016 Mineurs d'altcoins Réimplémentation sur CPU et GPU de quelques algorithmes: Lyra2rev2, Keccak, Equihash... C++, CUDA, SSE, AVX Développeur
2016 Naja Framework de réplication d'état d'un graphe d'objets Java, C++, JDO, JCache, JGroups, ASM Développeur
2015 Compresseur Participation au concours de compression "Hutter Prize" C++ Développeur
2015 Désérialiseur C++ Outil C++ de désérialisation de flux d'objets Java C++, Java Développeur
2015 Naja Framework de réplication d'état d'un graphe d'objets Java, C++, JDO, JCache, JGroups, ASM Développeur
2014 Transpiler UnityScript Traduction automatique de code source UnityScript en C# C# Développeur
2014 Naja Framework de réplication d'état d'un graphe d'objets Java, C++, JDO, JCache, JGroups, ASM Développeur
2013 Naja Framework de réplication d'état d'un graphe d'objets Java, C++, JDO, JCache, JGroups Développeur
2012 LExpress Application IOS de lecture de news et d'articles ObjectiveC Développeur
2011 Transformer 2 Logiciel de transformation de formats de fichiers ferroviaires et de chargement en base de données C, Oracle Concepteur, développeur
2010 Cv Application Flex / Java de gestion de CV en ligne Spring, JPA, Hibernate Mise en place de l'infrastructure Java en coopération avec juliencarette.com
2010 Transformer Logiciel de transformation de formats de fichiers ferroviaires et de chargement en base de données C++, Oracle Concepteur, développeur
2009 training Application documentaire de production automatique de slides et de livrets pour stagiaires d'une formation (format PDF) G Concepteur, développeur
2008 gpdf Bibliothèque de génération de documents PDF G, C Concepteur, développeur
2007 Messagerie applicative (Réseau Ferré de France) Prototype/ossature d'une architecture Web multi-niveaux .NET servant de base au développement d'applications C# 2.0, ASP.NET 2.0, ADO.NET 2.0, Ajax.asp.net, CSS Architecte, développeur
2003 - 2005 Course Manager (Valtech Training) Application Web de gestion des descriptions de cours Valtech Training Java, Struts, EJB 3, XML, XSLT, XSLFO Architecte, développeur

Projets Open Source

Date Projet Description Technologies Rôle
2010-2012 GT Surcouche objet légère du langage C. Successeur de G, implémenté sous forme d'une machine à états finis. Maintenant dans le domaine public! C, Ragel Concepteur, développeur
2008 G Surcouche objet (légère) du langage C C Concepteur, développeur
2005 PetShopAOP Exemple d'architecture technique tirant partie de l'AOP AspectDNG Architecte, développeur
2003 - 2006 AspectDNG Tisseur d'aspects statique .NET C#, XML, XPath Chef de projet, développeur
2003 - 2005 PetShopDNG Exemple d'architecture technique multi-couches .NET ASP.NET, C#, DTM, .NET Remoting Architecte, développeur

Formation initiale

1998 - 1999 ENST Paris - 2 et 3ème années
1997 ENST Bretagne - 1ère année
1995 - 1996 Math Sup/Spé au Lycée Kléber, Strasbourg
1994 Baccalauréat - Mention Bien