Here is my complete resume. Resumes by technology are available for
I am a pragmatic programmer that rejects any dogma and doesn’t consider failure as an option. My experience, technical and human, allows me to secure projects I am working on.
110 cours Saint Louis
Bat B App 44
- Programming Languages: Python, Go, Java, Ruby, Shell, PHP, C and C++, Lua, Lisp and some dead languages (Perl, Pascal, Assembler X86, Basic, LSE, HP41).
- Databases: SQL on MySQL, Oracle, PostgresQL and SQLite.
- Methodologies: Object Oriented Programming, Patterns, Extreme Programming, Agile Development and Open Source.
- Documentation: Markdown and Rest, XML (DTDs, XSLT, XPath, Xpointer and SAX, DOM and JDOM APIs), LaTeX, SGML (HTML and Linux Doc).
- Operating Systems: Unix (Linux, Solaris and MacOSX) and Windows.
- Software Development: backend software development expertise on Unix servers.
- Software Architecture: expertise in software architecture design.
- Technological Watch: good skills to evaluate and implement new technologies.
- Training and Pedagogy: trained as teacher, speaker and trainer.
- Technical Documentation and Translation: experience in technical edition.
Since November 2019: Developer at OVH in WebHosting Team
I was in charge to moving legacy backend, mostly in Perl, to modern technologies such as Python or Golang and implement good computer science practices, such as unit and integration testing, documentation and so on.
I maintained Perl backend and developed a high performance webservice in Go to log deprecated code.
2019 : Developer at Wine Services
During this short mission I developed tools to import and export Excel CSV files to the Django server. I highly improved performance and error handling writing complex SQL queries and implementing cache in server.
2018-2019 : Lead Backend Developer at mieuxplacer.com
I am Lead Backend Developer at mieuxplacer.com since march 2018. I’ve been developing and maintaining the Python/Django backend:
- Migration of the REST API from Django Rest Framework to a custom framework.
- Synchronization tool between backend and Zoho CRM (with REST calls).
- Synchronization tool for economic key data in Go (SQL queries and REST calls).
- Implementation of software development good practices:
- Measurement of test code coverage (with codecov.io).
- Implementation of automated integration tests.
- Automation of code validation with Pylint on Git commits.
- Great scale refactoring of code and data models.
Build of Debian machines on AWS.
2015-2018 : Freelance Developer
At the end of 2015, I left the Orange group to work as a Freelance:
- From September 2016 to January 2018 (17 months), I have been XML and Java expert at Editons Lefebvre Sarrut. During this mission, I have conducted following projects:
- Transformation from old Dalloz encyclopedia format to the new DTD (XML and XSLT 2.0).
- Development of the new XML publication line for Dalloz books and encyclopedias (Java, Golang and XSLT 2.0).
- From December 2015 to August 2016 (9 months), I have been Java Expert at SQLI in Pessac. I have been technical referent on a computation batch project (proofs of concept, Spring Batch adoption, database migration scripts, package generation, continuous integration, etc). I have also work on transverse projects, such as reception of maintenance projects (code and database audits, securing costs estimates), Python training and other missions.
2008-2015: Expert Engineer at Orange Applications for Business
In 2009 I volunteered to evaluate Talend and develop statistics batches, in 1013 and 3900 projects. These projects were finished using Python and SQL. The user interface, to display statistics results, was developed in Flash.
We then used this Python expertise in a video chat project for a bank, in the VisioCC project. We used Django to develop the administration backend and webservices called by the video chat written in Flash.
I then joined the Telefact team (2010-2013), to work on payment software (credit card and bill payment) to develop an administration backend using Django. I also implemented PCIDSS (data security standard) on payment softwares.
I then worked on MonSVI team (2013-2014) on statistics batches using Python and MySQL.
In 2014 I worked in the xMS team to refactor a protocol frontend named sgs-enabler. It had been developed in Java using NIO and we rewrote it in Go. This was a huge improvement in terms of of reliability and performance. This project was the subject of a presentation at BDX.IO, DevDays and Midi Techniques Orange, online at http://sweetohm.net/slides/go-retour-experience/.
Finally I joined mid-2014 the Cloud team to develop tools to manage virtual machines, in Python.
While working for Orange, I have developed tools that were released under Open Source license:
- DB_migration : database migration tool.
- Bee : build tool.
During these years I also organized many workshops and training sessions on Python, Django, YAML and Go.
2007-2008: Freelance Developer
After I left In-Fusio, I worked for one and a half years as freelance developer, on following missions:
- Kewego (1 week): I optimized a Java software for log parsing.
- Unedic (4 months): I developed an interface to connect to LDAP server for configuration purpose.
- CVF (9 months): Java expertise mission (see above).
2000-2007: Java and XML Expert at In-Fusio
In R&D department at In-fusio, a company in Bordeaux that developed games and JVM to run them on mobile phones (ExEn and EGE) and server software to download games. The Gamezilla platform has been managing interactions with players, downloads and SMS, for six years with an availability of more than 99%. There has been more than 20 million players that have done more than 30 million downloads and send more than 220 million interactions in 45 countries.
I developed about half of the Gamezilla platform, webapplications for the most part (Servlets, JSP and PHP, but also Python and Ruby).
I conceived the Gamezilla architecture, first as Java expert, then as software architect. I worked on performance, replacing EJBs with a Java library calling Oracle with optimized SQL queries, with a factor 10 improvement. I also worked on software development process, managing dependencies and implementing nightly builds, developing a suite of development tools and a centralized documentation, in a Wiki.
I had a technology watch activity on application servers (we choose BEA Weblogic), JMX (to manage Java applications), Maven (Java application build) and JSR 124 (Java Vending Machines).
I have organized internal training on Java, Object Oriented Programming, XML and XSLT.
I was also project manager for six months for Gamezilla team (with 6 developers).
1996-2000: Author, Speaker and Freelance Developer
I worked for Editions O’Reilly (French branch of O’Reilly in France):
- Co-author on XML Précis et Concis (localized in English, German and Japanese). I wrote the chapter on XSLT that was reused in Webmaster in a Nutshell.
- Co-translator on Java Security.
- Translator on Extreme Programming Pocket Guide.
- Technical rewriter on Java Examples in a Nutshell, Ant précis et concis, Java et SOAP, Google à 200% and Java plus rapide, plus léger.
- Author of articles and news on Edition O’Reilly website.
Articles Series for Oracle Magazine:
- Starting with Ant and More with Ant published inn november-december 2002 and january-february 2003 issues.
- A Junit Step by Step published in may-june 2003 issue.
Java development for Editions O’Reilly and SdV Plurimédia:
- I developed 3 versions of the XML generator for the Editions O’Reilly website, and their catalog management application.
- Java game applets (Awele, Tangram, Cross Words and Chess Applet) and miscellaneous applets (menu and news).
- Application to produce weather charts.
Author and translator of XML articles for Quelm.
1993-1996 : Physics and Chemistry Teacher
I have been Physics and Chemistry teacher for 7 years at Lycée technique Le Corbusier at Strasbourg.
Fond of computer science, I have developed many Open Source projects, that you may find on my Github account http://github.com/c4s4. You might notice:
- Bee: a build tool in Ruby.
- DB_migration: database migration tool.
- Miscellaneous tools: Ant tasks, DB access tools and Java installer generator.
I also maintain a personal website http://sweetohm.net that contains texts of my lectures, articles, game applets and other computer stuff.
I have been speakers at following lectures:
- Java and Linux at Linux Expo Paris in June 1999.
- XML and Java Development at Linux Expo Paris in February 2000 (moderator for session Java and Linux).
- XML and Java Development at Linux Expo Montréal in April 2000 (moderator for sessions Linux Application Development).
- Java and Linux and XML and Java Development at Journées du Libre III (in Strasbourg).
- XML and Java Development at Linux Expo Paris in January 2001.
- Open Source J2EE Tools at Linux Expo Paris in February 2002 in Paris.
- Bee at Rencontres Mondiales du Logiciel Libre in July 2010.
- Putting Go in Production at DevDays in October 2014.
- Putting Go in Production at BDX.IO in October 2014.
- Should you migrate to Python 3? at BDX.io in October 2015.
- Michel, 50 years old developer (keynote) at BDX.io in October 2016.
- Database Migration at BDX.io in October 2016.
- Quantum Computer: Myth or Reality? at BDX.io in November 2017.
- NeON build tool at RMLL Strasbourg in July 2018.
- Quantum Computer: Myth or Reality? at RMLL Strasbourg in July 2018.
- Quantum Computer: Myth or Reality? at Universite Bordeaux Montaigne in January 2019.
- Python 3 Migration at PyCon France in November 2019.
Few activities related to computer science:
- Core Developer on XSL-P project (Open Source XSLT processor) in 1999 and Mozilla Contributor.
- Developer of the XML documentation management system for Linux Users Group in Strasbourg.
- First prize in game category at JavaCup (Java programming contest) in 1998.
- Organization of a conference series about Java and a programming contest at Journées Européennes du Multimédia at Strasbourg in 1998.
- Program as a hobby since 1980 (4th at 4ème Championnats International de Programmation d’Othello at Sicob in 1983).
- Licence es Sciences Physiques, Capes de Sciences Physiques et Chimie at Université Louis Pasteur at Strasbourg.
- Training Développement d’applications avec serveur BEA Weblogic by BEA.
- English training for 5 years with CEL Bordeaux (level 5A on 6).
Born in 1966, father of two daughters.