Curriculum Vitae
Thomas GIL
[email protected]Key Skills
Fullstack developer
I have been the CTO of FirmFunding for nearly 10 years. Our team is small and efficient, which means we get to touch upon everything—from back-end development (Java, PostgreSQL, Redis) to front-end (Vue, Svelte), as well as infrastructure (Docker, AWS Lambdas, S3).
Researcher
I am currently working on a lossless image compression algorithm. My goal is to strike a balance between the performance of QOI and the compression ratio of FLIF, WebP Lossless, or even Gralic.
Tools Designer / Developer
I wrote GT, a transpiler that adds a small object-oriented layer to C (classes, single inheritance, dot notation, external methods). Its parser, based on Ragel, functions as a stack of finite-state machines.
GT has simplified the development of a PDF generation library (without any dependencies), as well as a slideshow generation tool.
Together with Jean-Baptiste Evain, we built AspectDNG—an aspect weaver that operates directly on the CIL of .NET assemblies.
Optimizer
Pour apprendre CUDA, j'ai optimisé l'exécution de quelques algorithmes de hashage utilisés dans certaines blockchains à Proof of Work sur GPU (NVIDIA).
Trainer
I have conducted training sessions on programming languages (Java, C#, C++, C, JavaScript, PHP, XSLT...), object-oriented concepts and Design Patterns, Aspect-Oriented Programming, and enterprise architectures based on Java EE and .NET.
Author
I helped manage a comparison site for .NET and Java EE architectures (DotNetGuru), which involved writing technical articles (in French and English) and moderating the community (forums).
I wrote an ebook at the intersection of AOP and Design Patterns.
Detailed Technical Skills
| Languages used in my current projects | Java, SQL, C, JavaScript, HTML, CSS |
| Languages from my past projects | C#, C++, D, XSLT, PHP, Python |
| Other Languages Briefly Touched Upon | Assembleur, Rust, Julia, Go, D, Lua, XSLT, PHP, Ruby, Perl |
| Design | Object-Oriented Design, Design Patterns, Aspect-Oriented Design |
| Operating Systems | Windows, GNU/Linux, MacOS X |
Projects
| Date | Projet | Description | Technologies | Rôle |
|---|---|---|---|---|
| 2022- | Image compression | Research, prototyping and development of a lossless image compression software | C | Developer |
| 2017- | FirmFunding | Architecture, code and deploy of a private placement marketplace | Java, JavaScript, Vue.js, Svelte, Cloud, Serverless | CTO |
| 2016 | Altcoins Miners | Reimplementation on CPU and GPU of some algorithms: Lyra2rev2, Keccak, Equihash... | C++, CUDA | Developer |
| 2016 | DCNS | Object graph state replication framework | Java, C++, JDO, JCache, JGroups, ASM | Developer |
| 2015 | Compressor | Participation to the compression contest "Hutter Prize" | C++ | Developer |
| 2015 | C++ Unserialiser | C++ unserialization framework of Java serialized objects | C++, Java | Developer |
| 2015 | DCNS | Object graph state replication framework | Java, C++, JDO, JCache, JGroups, ASM | Developer |
| 2014 | UnityScript Transpiler | Automatic translation UnityScript source code into C# | C# | Developer |
| 2014 | DCNS | Object graph state replication framework | Java, C++, JDO, JCache, JGroups, ASM | Developer |
| 2013 | DCNS | Object graph state replication framework | Java, C++, JDO, JCache, JGroups | Developer |
| 2012 | LExpress | IOS application: news and articles reader | ObjectiveC | Developer |
| 2011 | Transformer 2 | Railroad file format transformation and hispeed loading in a database | C, Oracle | Designer, developer |
| 2010 | Cv | Flex / Java online application to manage resumes | Spring, JPA, Hibernate | Java infrastructure setup in cooperation with juliencarette.com |
| 2010 | Transformer | Railroad file format transformation and hispeed loading in a database | C++, Oracle | Designer, developer |
| 2009 | training | Document generation application that automatically creates training slides and students books (PDF format) | G | Designer, developer |
| 2008 | gpdf | PDF document generation library | G, C | Designer, developer |
| 2007 | Messagerie applicative (Réseau Ferré de France) | Prototype/grounds of a .NET multi-tier web architecture that will serve as the framework for applications development | C# 2.0, ASP.NET 2.0, ADO.NET 2.0, Ajax.asp.net, CSS | Architect, developer |
| 2003 - 2005 | Course Manager | Web application to manage Valtech Training' course descriptions | Java, Struts, EJB 3, XML, XSLT, XSLFO | Architect, developer |
| 2005 | Scite Enterprise Architect | A well known competitor to VisualStudio.NET ;-) | Scite, Lua | "Prototyper" |
Open Source / Free projects
| Date | Projet | Description | Technologies | Rôle |
|---|---|---|---|---|
| 2010-2012 | GT | Lightweight layer on top of the C programming language. Successor of G, based on a finite states automata. Now public domain! | C, Ragel | Designer, developer |
| 2008 | G | Lightweight layer on top of the C programming language | C | Designer, developer |
| 2005 | PetShopAOP | An example of a technical architecture that takes advantage of AOP | AspectDNG | Architect, developer |
| 2003 - 2005 | AspectDNG | .NET static aspect weaver | C#, XML, XPath | Project manager, developer |
| 2003 - 2005 | PetShopDNG | An example of a .NET multi-tier architecture | ASP.NET, C#, DTM, .NET Remoting | Architect, developer |
Base training
| 1998 - 1999 | ENST Paris - Year 2 and 3 |
| 1997 | ENST Bretagne - Year 1 |
| 1995 - 1996 | Math Sup/Spé in the Lycée Kléber, Strasbourg |
| 1994 | Baccalauréat - Mention Bien |