đȘđ "Je travaillais beaucoup moins et j'avais l'impression de donner beaucoup plus"
DĂ©veloppeur depuis âtout petitâ comme il dit, son mĂ©tier est Ă la fois sa passion et son art de vivre. Le parcours de Nicolas Besnard (passĂ© par Doctolib, Getaround, Capsens, lâAustralie, Berlin, Paris, âŠ) donne des clĂ©s pour comprendre ce quâest un dĂ©veloppeur sĂ©nior. Il nous raconte diffĂ©rentes façons de travailler, ses gems prĂ©fĂ©rĂ©es et lâĂ©volution de sa carriĂšre. Nâest ce pas la meilleure source dâinspiration et de ressource de que laisser un passionnĂ© se livrer Ă nous ?
Bonjour et bienvenue sur la 4Ăšme Ă©dition de Ruby Biscuit.
Vous ĂȘtes maintenant 71 abonnĂ©s đ„ł Si vous nâĂȘtes pas dĂ©jĂ inscrit :
Comment es-tu devenu développeur ?
J'ai commencĂ© Ă dĂ©velopper depuis tout petit, vers 14 ans parce que je devais faire un truc sur Excel mais ça me soĂ»lait, alors j'ai appris le PHP. Quant au Ruby, je l'ai dĂ©couvert en 2012/2013 Ă l'Epitech car il y avait un petit club de gens qui sâamusaient Ă faire des sites web et ils le faisaient en Ruby on Rails. A lâĂ©poque jây comprenais rien du tout, du coup comme je faisais du PHP jâavais appris Cake PHP qui ressemblait beaucoup Ă Rails. Je me disais que le RoR Ă©tait incomprĂ©hensible pour moi, notamment le systĂšme MVC.
Puis pour un stage j'ai postulĂ© chez "Pretty fun therapy" qui recherchait un dĂ©v Ruby pour leur app de dating "Play Me" basĂ©e sur un quiz. Ils m'ont recalĂ© parce que je ne savais pas en faire. Alors j'ai envoyĂ© un e-mail pour leur dire que j'Ă©tais mĂ©ga motivĂ© et que le Cake PHP ça ressemblait Ă Rails ce qui me permettrai d'apprendre plus vite. Ils ont donc fini par me prendre. J'ai beaucoup galĂ©rĂ© au dĂ©but, le CTO m'a bien accompagnĂ© et ça l'a fait. Donc finalement je suis devenu dĂ©veloppeur Ruby parce que je cherchais un stage et quâune boite a acceptĂ© de me prendre. Sinon jâaurai sĂ»rement fini dĂ©veloppeur PHP ou autre chose.
Maintenant jâen fais moins, dans ma carriĂšre il y a eu dâautres besoins, je mây suis adaptĂ©, aujourdâhui je suis principalement en node mais je garde le RoR pour mes projets perso.
Aussi c'est marrant, mais avant j'avais horreur du front (CSS et JS) et maintenant j'aime bien. De mĂȘme chez Capsens en 2016 je n'Ă©tais pas du tout intĂ©ressĂ© par le devOps mais quand j'ai travaillĂ© en Australie j'ai travaillĂ© avec un lead dev qui m'a montrĂ© ce qu'il savait faire et maintenant ça me fait bien kiffer. On Ă©volue tous...
Est-ce quâon peut dire que tu es devenu dĂ©veloppeur Ruby un peu malgrĂ© toi ?
Oui il y a pas mal de choses dans ma carriÚre qui ont eu lieu par hasard, mais au final ça se goupille bien.
Est-ce que maintenant que tu fais du Node le Ruby te manque ?
J'aime beaucoup le Ruby, je trouve ce langage super sympa. J'aime trop que tout soit objet, que tu puisses faire des monkey patch facilement et bien sĂ»r le cĂŽtĂ© verbeux de Ruby est trĂšs agrĂ©able, parfois on me reprochait mĂȘme dâen abuser trop. Je suis ultra fan des predicate avec des mĂ©thodes avec des â?â Ă la fin. Je trouve ça joli. Quand je vois un predicate je me dis "ahh j'adore ça".
Aussi ce qui est super avec Ruby c'est la communautĂ© qui s'entend sur des bonnes pratiques de sorte que les gems font consensus. Par exemple pour authentifier un user tu utilises Devise. Pour faire des backgrounds jobs tu utilises Sidekiq alors que quand tu fais du Node (souffle) il y a mille librairies. Le coĂ»t d'entrĂ©e est non seulement important mais en changeant de boite c'est jamais les mĂȘmes librairies pour authentifier un user par exemple. La librairie la plus courante câest passeport-js mais je ne l'ai retrouvĂ©e dans aucune boite oĂč j'ai bossĂ©. C'est chacun ses conventions. Alors qu'avec Ruby tu retrouves toujours Devise, ce qui est vraiment pratique. Idem en Ruby on retrouve Active Record alors qu'en JS il y a plein de solutions diffĂ©rentes. D'ailleurs en RoR on crache beaucoup sur Active Record mais c'est tellement pratique et tellement rĂ©pandu donc pas besoin de lire une nouvelle doc Ă chaque fois qu'on entre dans un nouveau projet.
La raison pour laquelle j'aime revenir sur Ruby c'est surtout Sidekiq parce que la librairie est super bien. J'ai aussi passĂ© Ă©normĂ©ment de temps sur les problĂ©matiques de scaling donc j'ai pas mal de snippets qui traĂźnent qui m'aident notamment pour le monitoring de Sidekiq, ce qui me permet d'ĂȘtre super efficient pour mettre en place un systĂšme de queue.
Par contre sur Ruby je suis un peu frustrĂ© de ne pas avoir de typage fort, ça existe mais la communautĂ© ne lâa pas adoptĂ©. Sur certains projets je commence en Ruby parce que je sais que je vais aller vite, et aprĂšs je veux refactor, mais jâai pas mes types pour sĂ©curiser mon app, du coup faut faire plus de tests, mais jâai pas envie car câest juste un side-project. BrefâŠ
Câest un truc qui est assez marrant, mais ma copine a fait le Wagon comme toi, et je la pousse Ă aller vers dâautres langages. Pour moi il faut pas avoir peur de sortir de son langage prĂ©fĂ©rĂ©, jâai beaucoup appris en voulant tester dâautres choses justement.
C'est fou la capacitĂ© des dĂ©veloppeurs Ă donner envie aux autres de devenir dĂ©veloppeurâŠ
Oui, dans mon couple c'est aussi parce que ce métier permet de voyager et on adore voyager. On vivait à Paris au départ, puis en Australie, maintenant à Berlin depuis un an et demi, et demain on ira vivre vers Oslo.
Mais je vois surtout avec ma copine que c'est super dur de devenir dĂ©v en faisant le Wagon, ça demande tellement dâĂ©nergie et de volontĂ© car aprĂšs 9 semaines on a appris beaucoup de choses mais on ne sait pas faire grand chose encore, donc il faut vraiment s'accrocher. Je l'ai beaucoup soutenue pour ça.
LĂ tu vis Ă Berlin, mais ta boite est-elle allemande ?
Non je suis Ă Berlin mais elle est amĂ©ricaine. Il y a beaucoup de salariĂ©s en full remote et dâailleurs on va bientĂŽt tous se retrouver Ă Denver pour skier tous ensemble.
Penses-tu que le métier de développeur est différent d'un pays à l'autre ?
C'est souvent assez similaire. Tu retrouves les tickets, le backlog, les sprints, mĂȘme si c'est chacun Ă sa façon. Mais ma meilleure expĂ©rience de travail c'est en Australie chez Realestate.com.au, l'Ă©quivalent de Se Loger lĂ -bas. DĂ©jĂ parce qu'ils finissent le travail Ă 16h30. C'est trĂšs dĂ©concertant au dĂ©part mais je peux t'assurer qu'on s'y habitue trĂšs vite ! On fait du sport, on boit des verres, etc. Et comme on finit tĂŽt on travail de façon trĂšs focus pendant la journĂ©e. Je travaillais beaucoup moins, mais jâavais lâimpression de fournir beaucoup plus ! Toute l'ambiance de la boite Ă©tait excellente, ça se ressentait au niveau des boss qui parlaient des gens avant de parler de leurs rĂ©sultats. Et il y avait de la bouffe tout le temps et j'adore manger. En plus on Ă©tait trĂšs libres sur les choix technologiques. J'y ai appris Ă faire du React notamment.
On voit bien qu'un poste ce n'est pas qu'un salaire mais aussi une formation, une ambiance, des avantages. à chacun de tes changements de poste ton salaire a augmenté ou as-tu parfois consenti à une baisse pour d'autres avantages ?
Personnellement mon salaire a toujours augmenté. Mais je n'ai pas changé de boite pour le salaire. C'était plus pour des choix de vie, pour quitter Paris, revenir en Europe, etc. J'ai aussi quitté Doctolib parce qu'il y avait beaucoup de mouvement dans mon équipe et que je recherchais plus de stabilité. Quant à Getaround ils ont licencié pas mal de développeurs à cause du premier confinement et j'y étais depuis moins d'un an.
Maintenant que tu as vu beaucoup de boites, quels sont tes critĂšres ou tes warnings ?
En vrai je ne suis pas quelqu'un qui cherche beaucoup. En général on me contacte pour un besoin précis et si ça fit je rejoins la boite, c'est pas plus compliqué. Et j'ai besoin de liberté au travail. Je suis un grand garçon, je ne veux pas de management trop rigide, sur les horaires notamment.
Est-ce que comme certains dĂ©veloppeurs, passĂ©e une certaine expĂ©rience, tu as envie d'arrĂȘter de dĂ©velopper pour manager ?
Au dĂ©but je ne voulais vraiment pas manager, je voulais juste rĂ©soudre des problĂšmes. Mais avec le temps j'ai compris que pour ĂȘtre un bon dĂ©veloppeur il faut aussi avoir la vision produit, participer activement aux spĂ©cifications et bien comprendre le reste du business pour avoir du poids dans les dĂ©cisions. Donc j'ai Ă©voluĂ© lĂ -dessus.
Crois-tu qu'un jour tu arrĂȘteras de coder pour manager ou faire du produit Ă 100% ?
C'est impossible ! J'aime trop dĂ©velopper ! MĂȘme en vacances je code sur des projets personnels. MĂȘme quand je flĂąne mon esprit divague vers un problĂšme de code rencontrĂ© au travail et je peux trouver de l'inspiration comme ça. In fine faire 50/50 code/produit ça m'irait.
Comment est-ce que tu continues Ă progresser ?
J'adore coder, donc le weekend je code et à force de bloquer face à des problÚmes puis à force de les résoudre, on progresse... Ce qui est particulier avec mes projets perso, c'est qu'aucun n'est parti en production donc on pourrait penser que tout ce temps passé n'a pas été utile mais c'est faux. D'abord j'y ai pris du plaisir et ensuite c'est grùce à ça que je me débrouille pas trop mal aujourd'hui.
Aussi pour progresser je teste de nouveaux frameworks, de nouvelles librairies, je lis hacker news, Twitter et Ruby Biscuit maintenant. Par exemple rĂ©cemment jâai dĂ©couvert Remix qui m'a beaucoup plus. C'est une sorte de framework autour de React, c'est passionnant.
C'est vrai que ça peut paraĂźtre bizarre tous ces projets perso qui ne finissent jamais en production. Tu nâas jamais prospectĂ© d'Ă©ventuels clients ou partenaires pour tes projets ?
Non jamais ! Peut-ĂȘtre que je devrais m'associer avec quelqu'un plus orientĂ© business. Mais je crois que mes projets sont avant tout des prĂ©textes pour rĂ©soudre des problĂšmes de code. Et il y a trop de choses qui m'intĂ©ressent donc j'abandonne souvent un projet perso au profit d'un nouveau sujet.
Le projet sur lequel j'ai le plus bossé c'est Avocado : un service pour les avocats qui permet de générer des contrats facilement à partir de templates et de les faire signer éléctroniquement. Ce qui m'éclatait c'est de faire remplir des formulaires complexes de façon simple pour l'utilisateur, c'est à la fois de l'UX et un challenge technique.
Pour finir peux-tu me dire quelles sont tes deux gems préférées en Ruby ?
D'abord Sidekiq dont je vous ai parlé. C'est vraiment top ! Et ensuite dry-monads. C'est inspiré de la programmation fonctionnelle en Scala que j'ai adoré. La gem s'en inspire beaucoup et permet de faire des services objets. Dry font plein de super gems d'ailleurs, dont le bien connu dry-transaction pour gérer ses états.
Pour découvrir des nouveaux tips Ruby on Rails tous les mercredis à 16h, ne cherche plus, tu es au bon endroit !
Rendez-vous la semaine prochaine đ
MĂ©lanie