Florent CARREZ - CV

Mes motivations

Qu'est-ce qui me plait ?

La programmation :

Comme un linguiste s'intéresse aux langues, je suis très intéressé par les différents langages de programmation. L'expressivité, les syntaxes originales et concises des langages de programmation sont les principaux éléments qui me passionnent dans l'informatique. J'aime comprendre les rouages des langages, apprendre de nouvelles syntaxes et de nouvelles manières d'exprimer une même solution algorithmique.
Je me suis donc lancé il y a quelques années dans la construction de mon propre langage de programmation, que j'ai appelé Nu (𝛎).

Les langages de programmation m'attirent aussi pour leurs différentes utilités. En effet, lorsque je code, j'aime concevoir et créer une solution, qu'il suffit d'écrire pour qu'elle prenne vie.
D'une manière générale, la partie conception est la partie qui me plait le plus dans un projet.

Enfin, j'aime la clarté qu'apporte le code. Etant dyslexique, je suis plus à l'aise pour lire du code (propre) que n'importe quel texte. En plus, les IDEs apportent (presque) tous une coloration syntaxique qui m'aide énormément puisque j'utilise beaucoup le contexte dans mes lectures. Par ailleurs, les langages de programmation sont bien plus structurés que les langages naturels ; il est donc plus facile de les lire et les comprendre rapidement.

L'humain :

De nature extravertie, les relations humaines sont très importantes pour moi.
Je suis à l'écoute des gens, j'aime les aider à évoluer (tant sur le plan technique que émotionnel), ou simplement être là pour les rassurer quand cela est nécessaire.
D'ailleurs le rôle de manager / chef de projet semble être la suite logique de ma carrière sur du long terme.

Il est important pour moi qu'une entreprise ait des valeurs humaines qui se retrouvent dans la gestion des équipes. Cela passe par de la compréhension, mais aussi par un accompagnement moral et humain en cas de situations personnelles difficiles. Ainsi, si j'étais amené à gérer des collaborateurs, je préfèrerais dire "depuis quelques semaines, j'ai remarqué que tes performances n'étaient pas au top, est-ce que tout va bien ? Est-ce que tu veux qu'on prenne un peu de temps pour voir comment résoudre ce problème ?" et essayer de trouver une solution avec la personne, plutôt que simplement "depuis quelques semaines ça ne va pas niveau performance, il faut que tu te ressaisisses". Je pense que c'est là qu'un bon manager fait la différence dans la gestion de son équipe à long terme, et la productivité générale n'en est que meilleure.

Enfin, cela peut sembler paradoxal, mais j'aime beaucoup le télétravail. Je pense qu'avec les bons outils, il permet une plus grande liberté et de meilleures performances, sans que le côté "humain" auquel je fais référence soit perdu. En effet, ce n'est pas tant le côté physique que moral auquel je suis attaché. Au contraire même, le télétravail permet un meilleur équilibre entre la vie professionnelle et personnelle, la possibilité de vivre dans un endroit qu'on aime vraiment, et mets donc les équipes dans de meilleures dispositions.

Qui je suis ?

Curieux

J'aime apprendre, découvrir et tester de nouvelles choses. Grâce à cette curiosité que je cultive, j'ai développé une grande faculté d'adaptation et sais m'approprier rapidement de nouveaux sujets. C'est pour cette raison que je la considère comme une qualité qu'il faut exploiter dans un but d'enrichissement personnel.
En contrepartie, j'approfondis uniquement les sujets qui me passionnent le plus (sinon, il me faudrait plus d'une vie) ! Par exemple, j'aime beaucoup l'exploration des langages de programmation et n'hésite pas à créer des projets pour aller encore plus loin sur cette thématique, mais concernant les nouvelles technologies, je me contente de me tenir informé de ce qui se fait.

Prévoyant

Je suis quelqu'un qui se projette beaucoup dans l'avenir. Cette faculté d'anticipation se retrouve clairement dans ma manière de coder. Je m'efforce par exemple de rendre mon code propre pour que n'importe quel développeur qui passe après moi puisse comprendre facilement le code et la logique qui se trouve derrière. J'essaye également de le rendre facile à adapter pour éviter d'avoir à réécrire tout le code à chaque fois qu'il faut ajouter une nouvelle fonctionnalité. D'ailleurs, on retrouve aussi cet aspect-là sur mon projet de création de langage de programmation, puisque j'ai déjà en tête de nombreuses fonctionnalités que j'implémenterais dans les versions ultérieures. Cela m'aide à suivre une trajectoire cohérente et structurée dans l'élaboration de mon langage.

Sociable

Heureusement, puisque l'humain est quelque chose d'important à mes yeux, je suis de nature sociable. Je m'intègre bien dans les équipes et comme dit précédemment, je fais attention aux gens qui m'entourent. J'aime être en relation avec les gens, et cet aspect de ma personnalité me fait dire que le poste de manager/chef de projet me semble être adapté pour la suite ma carrière à long terme.

Environnement

Je suis profondément engagé pour l'environnement. Je ne lutte pas seulement pour défendre la Nature comme on pourrait le faire en terre du milieu, mais aussi parce qu'un monde plus sobre est un monde plus juste. Un monde plus écologique est un monde dans lequel les relations humaines prennent plus de place.
Par ailleurs, il ne me semble pas crédible de s'imaginer que l'impact du dérèglement climatique ne nous atteindra pas à l'avenir, et les solutions doivent être mises en place dès maintenant. Je suis donc persuadé qu'il ne faut pas avoir peur d'explorer toutes les options qui nous permettent d'aller vers un mode de fonctionnement plus respectueux du vivant.

Mon langage de programmation Nu (𝛎)

J'ai commencé à travailler sur mon langage il y a environ 5 ans pendant mes études. Cette idée a fait suite aux cours de théorie des langages et à l'implémentation du langage Tigger (un langage à but éducatif) dans le cadre de projet pour cette même matière.

J'ai décidé de faire mon langage en Go, car j'apprécie particulièrement ce langage, qui est une source d'inspiration importante pour la réalisation du Nu.
Il m'a fallu plusieurs années pour avoir une vision claire du langage que je voulais créer (tant en termes de syntaxe, que de fonctionnalités). Je me suis inspiré nombreux langages de programmation, et ça a été l'occasion d'en découvrir d'autres (comme le Pony ou le V). J'ai également dû me poser la question de ce que je voulais pour mon langage.
La réponse est la suivante :

- Un langage sûr, mais qui laisse le contrôle au dev - Un langage lisible et facile à écrire - Un langage efficace - Un langage qui puisse aller pour plein d'usage (serveur backend, cli, web, recherche, ...)

J'ai déjà écrit un lexer qui permet de tokeniser le texte. J'ai donc déjà tous les mots clés de mon langage.
Le parser (génération de l'AST — Abstract Syntax Tree) est la partie la plus compliquée. Certains détails de la grammaire peuvent encore un peu évoluer et j'ai dû itérer plusieurs fois en alternant parser/syntaxe (parfois la syntaxe n'était juste pas possible ou trop complexe). Aujourd'hui, j'ai une version de la syntaxe qui est relativement stable et j'avance bien dans mon parser. Il est encore possible que la logique de mon parser évolue pour que ce soit plus simple à coder ou pour s'adapter à un problème spécifique lié à la syntaxe. J'écris des tests au fur et à mesure, sans quoi il serait particulièrement compliqué de faire un projet de cette envergure, où tout prend son sens à la fin.

Voici quelques lignes de code simple dans mon langage Nu !

un hello world en Nu un programme nu qui montre une extension sur le type int