MyUnisoft - l'aventure Node.js
Tags: myunisoft, node, javascript
Published: 2021-09-13 06:46:31

Bienvenue voyageur(se) 👋

Aujourd'hui je viens vous conter mon aventure chez MyUnisoft en tant que lead technique back-end (API & [Node.js](https://fr.wikipedia.org/wiki/Node.js)). C'est aussi celle de mon équipe qui continue de grandir en embarquant des ingénieurs très talentueux 😍.

Si vous êtes un (expert-)comptable alors je vais vous embarquer dans un récit qui s'éloigne probablement de ce que vous avez l'habitude de lire 📰. Mais pas d'inquiétude je ferais l'effort de vous vulgariser au maximum mon univers.

## Qui suis-je ?

Moi c'est Thomas, j'ai 27 ans et je développe depuis l'âge de dix ans 🐤. Je suis un amoureux du code et j'entreprends des projets depuis mon plus jeune âge.

![gif](https://c.tenor.com/y-Z6sLQbm2kAAAAC/umaru-kawaii.gif)

Je suis un expert Node.js et JavaScript. Fort aise sur des sujets comme la sécurité, le monitoring et l'architecture logicielle. Si mon parcours vous intéresse 👀 je vous invite à consulter mon [LinkedIn](https://www.linkedin.com/in/thomas-gentilhomme/).

## Chapitre 1

Découvrons sans attendre le premier chapitre 💃.

### Genèse

J'ai rejoint MyUnisoft en aout 2020 pour m'occuper de la maintenance et évolution du back-end Node.js 🐢. À ce moment-là je suis le seul développeur et ma première préoccupation est évidemment de faire mes preuves auprès de [Cyril](https://www.linkedin.com/in/cyril-mandrilly/) (CTO) et [Régis](https://www.linkedin.com/in/r%C3%A9gis-samuel-3a910b18/) (CEO). 

J'ai commencé par travailler sur la mise en place du connecteur [Quickbooks](https://quickbooks.intuit.com/) pour ensuite très vite m'attaquer à l'évolution de l'[API partenaires](https://github.com/MyUnisoft/api-partenaires) (qui servira aussi de fondation plus tard pour l'accès cabinet).

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0bozkoxe62njsyo0lkqh.png)

L'écriture d'une documentation a été évidemment un des gros points pour garantir une meilleure expérience à nos partenaires (expérience que nous continuerons d'améliorer dans le temps).

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zo2tlqe506ws96o33q3m.png)
 
Ces premiers chantiers m'ont permis d'avoir une première approche du domaine de la comptabilité en abordant plusieurs notions comme les journaux, le plan comptable, les écritures, etc 😵.

> Par ailleurs, je souhaite remercier Leon Souvannavong qui m'a beaucoup aidé sur les sujets métiers depuis mon intégration (ainsi que les autres développeurs de l'équipe back-end comptabilité 💖).

### Novembre 2020

Quelques mois passe et nous intégrons un second développeur en alternance 👯. Ayant déjà une forte expérience en mentorat je ne m'inquiète pas sur le fait de réussir à accompagner convenablement un débutant. Nous recrutons donc [Nicolas Hallaert](https://www.linkedin.com/in/nicolas-hallaert/) qui ne cessera de me surprendre dans sa vitesse d'adaptation et d'apprentissage ⚡.

Lui et moi avons travaillé ensemble sur divers sujets comme MyDataRH, le SSO, ou encore des interfaces génériques que vous retrouverez dans nos diverses interconnexions partenaires.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u7snluks4lhuk2bh74zr.png) 

Mon périmètre s'étend de plus en plus et je monte rapidement en confiance. Dans la même période [Oleh Sych](https://www.linkedin.com/in/oleh-sych-41245116a/) rejoint l'équipe Node.js (développeur non francophone).

> 📌 Le seul développeur que je n'ai pas personnellement choisi. Au début j'avais un peu peur mais j'ai été très rapidement étonné par son niveau technique et sa réactivité à mes remarques.

Nous convenons très rapidement qu'il travaillera sur la mise à jour et migration de code "legacy" (écrit par des développeurs qui ne sont plus là). J'essaye de l'accompagner et de l'intégrer le mieux possible pour que la barrière de la langue ne soit pas un frein pour lui ✔️.

En écrivant ces lignes aujourd'hui je peux témoigner du chemin parcouru avec lui. Nous allons de l'avant sur plusieurs projets (Gestion Électronique des Documents, Discussion, Crédit-bail entre autres).

### Janvier 2021

Après avoir démontré mes capacités et acquit la confiance de la direction **je prends officiellement le lead de l'équipe Node.js** 🎉. C'est un rôle qui me convient bien et j'ai toujours apprécié ce genre de responsabilité.

![gif](https://c.tenor.com/DGj-M4ERIo0AAAAC/cat-ready-cool-cat-ready.gif)

J'interviens de plus en plus sur des sujets en lien avec l'authentification 🔑 et je prends rapidement la main dessus.

Le reste de mon temps est dédié à la création d'un nouveau connecteur API avec [Dext](https://dext.com/fr).

### Février 2021

Une période chargée puisque nous avons embarqué deux nouveaux développeurs expérimentés dans l'équipe.

1. Le premier étant mon associé de longue date [Alexandre MALAJ](https://www.linkedin.com/in/alexandre-malaj-6062b0a6/) avec qui je travaille en binôme depuis maintenant plus d'une décennie 😲.

2. Le second est [Cédric LIONNET](https://www.linkedin.com/in/cedric-lionnet-578845121/) qui nous a été recommandé en interne. Il entame une transition vers Node.js après plusieurs années de C++. C'est un ingénieur rigoureux ainsi qu'un amoureux de la qualité de code 💎.

Ces deux intégrations ont été le point de départ de ce qui est aujourd'hui la fondation de l'équipe Node.js.

**Alexandre** a investi des centaines d'heures sur la création d'une couche ORM (contenant +500 tables et +2,000 relations). **Cédric** de son côté à grandement contribuer à l'ajout de tests unitaires et abstractions qui sont aujourd'hui activement utilisées au travers de nos services http.

![carbon (3)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wfhuxnuo01n55en30xu5.png)

Fort de mon expérience de plus quatre ans en gestion d'équipe remote, nous travaillons rapidement à la mise en place de conventions et d'un modèle de communication efficace.

Il est primordial de construire une bonne entente ainsi que diverses habitudes de communication orale pour pouvoir rapidement acquérir une symbiose des compétences techniques et humaines. 

### Mars 2021

Je commence à travailler sur l'intégration d'un nouveau connecteur avec [EmaSphere](https://www.emasphere.com/fr/).

Quand Nicolas n'est pas en cours il travaille sur l'intégration SSO avec Zendesk (support) et 360 learning (MyAcademy). Sur le côté il travaille sur le Google sheet (les liens dynamiques).

Avec Alexandre nous avons décidé de lancer une initiative DDD ([Domain Driven Design](https://blog.octo.com/domain-driven-design-des-armes-pour-affronter-la-complexite/)) au sein de MyUnisoft.

Amener de la qualité et de la rigueur dans les échanges et la conception du logiciel est pour moi très important. Insuffler une meilleure compréhension du métier aux équipes techniques apporteraient énormément de valeurs à nos clients.

### Avril 2021

J'accompagne très activement de plus en plus de partenaires 😎. Le catalogue des connecteurs ne cessent de grandir ce qui me fait vraiment plaisir 😇.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tv41itzdhq6v2cvq6r1r.png)

Et **encore beaucoup d'autres** intégrations sont à venir d'ici fin 2021. Nous travaillons en ce moment même sur une mise à jour conséquente qui aura pour objectif d'apporter un ensemble de fonctionnalités manquantes (paramétrages, logs ...).

---

Avec l'équipe nous participons à la [ludum dare](https://ldjam.com/) 48 qui consiste à créer un jeu vidéo en 72h. Nous avons créé un jeu web utilisant le moteur Pixi.js ([projet ici](https://github.com/fraxken/yu-gi)).

Une expérience très enrichissante qui nous aura permis de mieux nous connaître et de renforcer nos liens.

### Mai 2021

L'équipe intègre deux développeurs supplémentaires:

1. [Tan Karasu](https://www.linkedin.com/in/karasu-tan-12641447/) qui nous rejoint pour un stage de six mois. Développeur en reconversion qui a su me convaincre par son mental et son investissement.

2. [Mark Malaj](https://www.linkedin.com/in/mark-malaj-99b1b8b7/) cousin d'Alexandre. Nous avions déjà eu l'occasion de collaborer ensemble pendant une année, période pendant laquelle je l'ai formé à Node.js. C'est naturellement un plaisir pour moi de pouvoir recollaborer avec lui au sein de MyUnisoft.

Alexandre et Mark travailleront en collaboration avec [Jean-Claude FORTIER](https://www.linkedin.com/in/jeanclaudefortier/) sur la conception et le développement de la Gestion Interne MyUnisoft. Un chantier qui est donc entre de bonnes mains.

Tan de son côté aura investi énormément de temps sur la création de nouvelle abstractions pour communiquer avec notre base de données [Redis](https://redis.io/). Par ailleurs, nos projets utiliseront l'excellent package [ioredis](https://github.com/luin/ioredis#readme).

### Juin 2021

J'ai eu l'occasion de travailler sur l'implémentation et l'intégration du format [Factur-X](https://fnfe-mpe.org/factur-x/) pour nos partenaires (actuellement utilisé en production par [EBP](https://www.ebp.com/)).

Une bonne occasion de jouer avec les nouveaux types de TypeScript 4 pour convertir dynamiquement les structures XML en type JSON propre.

![carbon (1)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vq6flhw4u6mhufn3beph.png)

J'éprouve une certaine fatigue à cause des différents onboardings. C'est une première pour moi de gérer autant d'intégration en si peu de temps (même si cela reste une excellente expérience).

![gif](https://c.tenor.com/NcibGDKTKQAAAAAd/status-tired.gif)

Il est parfois difficile de jongler entre ma vélocité personnelle qui me permet d'avancer des sujets métier critique et investir du temps en accompagnement de mon équipe (ce qui améliore probablement la vélocité à moyen-long terme).

### Aout 2021

L'équipe continue de se structurer 🔨 dans le bon sens et nous avançons positivement sur nos sujets. La période est relativement calme à cause des différents départs en vacances 🌞.

Nous intégrons néanmoins encore deux développeurs expérimentés:

1. [Quentin Lepateley](https://www.linkedin.com/in/quentin-lepateley/) travaillant sur le frontend MyUnisoft depuis un an et demi. Ce n'est donc pas un petit nouveau et il arrive dans l'équipe en étant déjà familier avec les membres de l'équipe.

2. [Tony Gorez](https://www.linkedin.com/in/tonygorez/) nous venant tout droit de [Payfit](https://payfit.com/fr/). Je travaille depuis maintenant une bonne année avec lui sur des projets open source comme [NodeSecure](https://github.com/NodeSecure). C'est vraiment un grand plaisir de pouvoir travailler avec lui au sein de la même équipe!

Quentin travaille activement sur notre migration vers le framework [Fastify.js](https://www.fastify.io/). L'idée est de rapidement mettre en place un monorepo utilisant la fonctionnalité de [workspace npm 7](https://docs.npmjs.com/cli/v7/using-npm/workspaces) pour héberger les différents plugins utilisés sur nos services.

Tony quant à lui va rapidement venir m'épauler sur les intégrations partenaires. À court terme il travaillera sur la stabilisation du connecteur Quickbooks.

{% youtube 4DxyjZH45Jk %}

## Mon sentiment sur l'équipe

Il reste du chemin à parcourir c'est une certitude. Nous devons apprendre à mieux nous connaître et comprendre qu'elles sont les forces et faiblesses de chacun.

Nous devons définir qu'elles seront nos pratiques et méthodologies tout en prenant évidemment en compte le contexte et les équipes qui nous entourent.

Mais je suis très enthousiaste. Nous avons beaucoup d'appétence pour notre métier et une grande motivation à faire devenir réalité les ambitions de MyUnisoft.

![image](https://c.tenor.com/KeWDHG0FMYUAAAAd/redline-james-punkhead.gif)
 
## En avant pour un second chapitre ?

Nous continuons de grandir et nombreux sont les challenges devant nous. **De belle intégration sont encore à venir** et je pense que MyUnisoft constitue l'une des meilleures équipes Node.js francophone 💪.

C'est pour moi une fierté d'être à la tête d'un groupe d'ingénieurs que j'apprécie et respecte 🙇. J'ai vraiment hâte de voir ce que nous allons accomplir dans les prochains mois 🚀.

---

🙏 Merci à vous de m'avoir lu. 

Cet article a été volontairement épuré de beaucoup de détails techniques (mais j'espère tout de même avoir réussi à accrocher un peu de votre attention).

Nous écrirons certainement plus d'articles à l'avenir pour vous parler de nos innovations et avancement technique.

🚀🚀🚀