Sweetohm

Michel Casabianca


Here is my complete resume. Resumes by technology are available for Golang, Python, Java and XML/XSLT.

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.

Michel Casabianca
110 cours Saint Louis
Bat B App 44
33300 Bordeaux
France
+336.86.99.63.89
casa@sweetohm.net
https://sweetohm.net
https://github.com/c4s4
http://linkedin.com/in/casabianca

Mastered Technologies

  • Programming Languages: Python, Go, Java, Ruby, Shell, PHP, C and C++, Lua, Lisp and some dead languages (Perl, Pascal, Assembler X86, Basic, LSE, HP41).
  • Web Technologies: Django, Flask, Web Services (Rest, XML-RPC and Soap), Ruby on Rails, Sinatra, JavaScript (JQuery), Servlets, JSP (JSTL).
  • Streaming: Kafka and Pubsub.
  • Databases: SQL on MySQL, Bigtable, 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.

Specific Skills

  • 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.

Professional Experience

2022-present: Architect at SFBX

My first task involved rewriting two highly critical applications. They handled a significant load but were extremely fragile: incomplete and outdated documentation, no tests (neither unit nor integration), unnecessary and unmanaged complexity.

I began by writing a set of integration tests to understand how these applications interacted with the external world. I ensured coverage of around 80% to rewrite these applications with a sufficient level of confidence.

Subsequently, I reworked these applications to simplify them and enhance their performance. I managed to achieve a respective gain of x2 and x7, which was quite unexpected given that I used the same programming language, GO.

Finally, I optimized the performance by profiling the code with Pprof. This led me to replace GO’s default JSON library with a more efficient version since the application needed to parse and generate large volumes of data in JSON format.

While writing the integration tests, I developed a tool for integration testing by reusing components I had previously developed during my contribution to the open-source project, Venom.

Additionally, I worked on developing functionalities for the open-source project Swagin, particularly a limiter capable of adjusting the server’s number of simultaneous requests based on available memory.

Afterward, I developed new functionalities for these applications, including a geolocation system based on the processing of RIR files.

2021-2022: Backend Lead Dev at Intercloud

As Lead Backend developer, I develop microservices with Golang and Gin + Gorm + SwaGin frameworks. I drive technical decisions based on POCs and team consensus. I also contributed some open source projects to fix and improve these tools:

I have made presentations on technical subjects, such as Git, Docker Compose, Gobinsec, Message Broker, Document Databases, SwaGin, Go Generics, NeON. I have also offered technical challenges to the team and written articles for the Intercloud technical blog (at https://blog.intercloud.com).

2020-2021: CTO at DESKi

Development and maintenance of a medical image annotation tool with Python, Flask, SQLAlchemy and an interface using JavaScript and Cornerstone.

Development of an Android Kotlin application to guide echocardiography with a machine learning algorithm.

Development of a Django application for the administration of the patients, exams and operators of the Androïd application along with a viewer for echocardiographic images by cardiologists. Synchronization is performed with a Go REST webservice. Development of a web viewer for cardiac echographies with Cornerstone library.

Rationalization of DESKi platform (put behind a reverse proxy to get rid of an iFrame) with Docker Compose, moved C++ code into the Python webservice. Deployment automatization, with automated database backups and rollback implementation. Setup of a staging platform.

Alerting on security issues, implementation of a security chart and good practices.

Git training on branches for the team and cheat sheet publication.

2019-2020: 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 the Vodoo team (2008-2009) I worked on the video on demand project in a large team located in Bordeaux, Paris and Lille. I developed software in Java (on servers) and JavaScript (on set-top boxes).

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 https://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:

  • Jitsu : unit test framework for JavaScript.
  • 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.

Personal Activities

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.
  • Jitsu: unit test framework for JavaScript.
  • DB_migration: database migration tool.
  • Miscellaneous tools: Ant tasks, DB access tools and Java installer generator.

I also maintain a personal website https://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).

Education

  • 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).