L'informatique est pour moi une passion depuis l'enfance. Autodidacte, j'ai appris à programmer, créer des sites web et administrer des serveurs sur mon temps libre d'abord - par le bidouillage et mes lectures, puis lors de mes études, et enfin en emploi.
Convaincu que la réussite est collective, je participe au développement de produits open source et à des conférences (speaker/attendee) lorsque j'en ai la possibilité.
Conscient que le logiciel change le monde, et profondément attaché à toute forme d'émancipation, je m'intéresse à des sujets aussi vastes que la philosophie, l'économie, le management, etc. afin de m'enrichir personnellement et, je l'espère, me permettre de faire du bon travail.
Maintenant fort de plus de 10 ans d'expérience, encore loin de tout savoir, j'occupe le role de Tech Lead. Partager mes connaissances, définir une vision/architecture technique (DevOps), et animer une équipe (de manière Agile) font de ce role un métier qui me passionne.
Formation de 6 semaines sur les technologies Java / JEE utilisées par l'entreprise: Java 6, Java EE 6, Maven, Spring, Hibernate, Log4J. Cette formation s'est terminée par la création d'une application d'ebanking réalisée en groupe avec la méthode agile eXtreme Programming. http://github.com/BluePyth/patricks-bank
Création de l'outil de test de charge Gatling avec le directeur technique de l'entreprise. Cette mission a duré le reste de mon stage (et s'est poursuivie ensuite).
Ecrit en Scala, Gatling propose une nouvelle approche du test de charge en terme de performances, son architecture est basée sur l'utilisation d'acteurs et d'I/O non bloquantes.
Cette formation était un cours de 7 semaines sur Coursera.org donné par Martin Odersky, créateur de Scala. J'ai obtenu la note maximale sur l'ensemble des exercices du cours.
Une vision/architecture ne sert pas si personne ne la connait/comprend :)
Congruence avec la vision produit/UX
Il est nécessaire de faire coïncider les trois visions afin de pouvoir adresser la dette technique, et les nouvelles features de manière incrémentale et cohérente
Architecture Distribuée
Je puise beaucoup dans BDD et les bonnes pratiques micro services pour construire mes architectures
KISS, YAGNI, Single Source of Truth
Ce sont les principes qui me guident. Cela rend le design plus difficile à créer, mais résoud énormément de problèmes potentiels en amont.
Détruire les silos, faire travailler/parler les devs et les ops ensemble, pour améliorer la production du logiciel et les conditions de travail. Pour moi, c'est une extension de l'Agile prenant en compte Ops et Sec en plus
Dev + Ops
Bien que principalement développeur, j'ai de solides connaissances en infrastructure/opérationnel. De plus, je considère qu'on ne peut pas faire un bon logiciel sans en maitriser (au moins comprendre) la chaine de production complète (des sources à la prod)
Connaissance du Cloud
Notions sur Docker, Kubernetes, AWS, CoreOS, etcd, nomad, etc. Bien que non attaché à une technologie particulière, je comprends à quel besoin répondent ces outils et leur place dans l'écosystème.