40 points par spilist2 2022-12-30 | 3 commentaires | Partager sur WhatsApp

L’histoire du développement frontend étant relativement courte, beaucoup d’organisations veulent de bons ingénieurs frontend seniors mais ont du mal à en trouver ; de nombreux CTO de startups de petite et moyenne taille se posent donc des questions similaires.

  • Le niveau technique exigé en frontend n’est pas si élevé, ce qui réduit la motivation des ingénieurs à faire progresser leurs compétences
  • Il y a peu de modèles de rôle autour de soi ayant construit une belle carrière à partir d’un parcours d’ingénieur frontend, ce qui rend la planification de carrière difficile
  • En l’absence d’ingénieurs frontend seniors dans l’organisation, on demande davantage de leadership aux profils intermédiaires

Cet article a été écrit pour les ingénieurs frontend confrontés à ces questions, ainsi que pour les team leads et CTO qui se demandent comment les accompagner. J’espère qu’il servira de guide utile sur les directions dans lesquelles un ingénieur frontend peut spécialiser son expertise et construire une carrière de senior.

1. Devenir un ingénieur d’exception

La phrase « Je veux devenir un excellent ingénieur frontend senior » peut être interprétée sous trois angles.

  • Je veux devenir un excellent ingénieur (frontend senior).
  • Je veux devenir un excellent ingénieur frontend (senior).
  • Je veux devenir un excellent senior (ingénieur frontend).

Selon l’article What Makes a Great Software Engineer?, un ingénieur d’exception écrit du bon code, maximise la valeur actuelle de son travail, prend des décisions fondées sur les données, aide ses collègues à prendre des décisions efficaces et apprend en continu. En s’efforçant de développer ces cinq compétences, on devient un bon ingénieur.

J’ajouterais qu’avec le renforcement progressif de l’IA, les compétences en communication et en écriture sont devenues bien plus importantes. Plutôt que de se faire remplacer dans les tâches de développement par l’IA, mieux vaut l’utiliser comme assistant pour travailler efficacement ; dans cette optique, il est utile d’étudier l’écriture en anglais ou les techniques d’entretien du point de vue du Prompt Engineering.

2. Devenir un excellent ingénieur frontend

En plus des fondamentaux ci-dessus, j’ai réfléchi à trois trajectoires dans lesquelles un ingénieur frontend junior peut développer sa spécialisation. Ces trajectoires sont complémentaires : une personne déjà solide dans l’une d’elles pourra beaucoup plus facilement développer son expertise dans une autre, et il est naturel que certaines évolutions de carrière senior se recoupent entre elles.
(La « trajectoire opérationnelle » inclut à la fois l’aspect DevOps et l’aspect processus/exploitation organisationnelle, mais il n’est pas nécessaire de maîtriser absolument ces deux dimensions ensemble pour construire une bonne carrière. J’ai aussi envisagé de créer une trajectoire distincte de « spécialisation processus », mais je n’ai pas encore assez de recul pour en faire une quatrième trajectoire réellement pertinente, je les ai donc regroupées pour l’instant.)

Trajectoire spécialisée web (Software Engineer)

  • Caractéristiques principales
    • Comprend et exploite en profondeur Internet, les navigateurs web, HTML/CSS/JS
    • Connaît les avantages et limites des différents outils qui composent l’écosystème web, et a de l’expérience en troubleshooting dans divers environnements
    • Est attentif aux nouvelles technologies du web et essaie de les utiliser directement
  • Avantages et limites
    • Jusqu’à un certain niveau, il est relativement facile de progresser seul
    • Dans les organisations où la complexité ou la maturité produit n’est pas assez élevée, il y a peu d’occasions de faire reconnaître cette expertise
  • Moyens de progresser
    • Étudier à partir des mots-clés de la roadmap, avec des livres et du contenu en ligne, puis les utiliser dans des side projects
    • S’abonner à des newsletters, contribuer à l’open source, tester de nouvelles technologies, comprendre le fonctionnement et les limites des outils utilisés, et parfois inventer soi-même des outils
    • Faire du troubleshooting dans des environnements variés et chercher à améliorer les performances
  • Évolutions de carrière possibles en senior
    • Formateur donnant des cours pour faire progresser les compétences web
    • Software engineer (dans une organisation qui crée des outils de l’écosystème web)
    • Software engineer (dans une organisation qui traite des produits très complexes)
    • Tech lead frontend

Trajectoire spécialisée produit (Product Engineer)

  • Caractéristiques principales
    • Peut produire des résultats sur un produit en phase initiale en combinant plusieurs outils avec relativement peu de code
    • Comprend bien le marché et les clients, et sait appliquer dans la pratique différentes méthodes pour approfondir cette compréhension
    • Communique fréquemment avec les équipes marketing et commerciales pour leur faire comprendre le produit
  • Avantages et limites
    • Est accueilli avec enthousiasme par les startups en phase initiale qui cherchent à valider leur produit sur le marché
    • Si l’on reste seulement dans une zone de confort, on peut finir par être écarté de l’organisation produit que l’on a soi-même aidé à faire grandir
  • Moyens de progresser
    • Utiliser de manière analytique d’excellents produits dans son domaine, observer les clients et développer son product sense
    • Ne pas s’obstiner dans des combinaisons d’outils familières et faire évoluer continuellement sa boîte à outils
    • Tenir bon jusqu’au moment où le produit initial que l’on a piloté obtient des résultats et impose de refondre l’architecture et le code, autrement dit changer les roues pendant que le véhicule roule
  • Évolutions de carrière possibles en senior
    • Software engineer (dans toute organisation à la recherche du PMF)
    • Growth engineer, growth consultant
    • Tech lead frontend, technical program manager
    • PM, PO, CPO

Trajectoire spécialisée opérations (Full-Stack Engineer)

  • Caractéristiques principales
    • S’intéresse beaucoup à la structure des projets, à l’intégration, aux tests et au déploiement
    • Sait créer lui-même des API simples et mettre en place l’infrastructure nécessaire
    • Repère les zones grises et inefficacités qui apparaissent quand l’organisation grandit, met la main à la pâte et améliore les processus
  • Avantages et limites
    • A l’occasion d’être reconnu en couvrant un large périmètre de travail et en collaborant avec de nombreuses personnes
    • Sans effort conscient, on peut prendre du retard techniquement, se retrouver cantonné à des tâches répétitives et finir en burnout
  • Moyens de progresser
    • Élargir son champ d’action en implémentant des API backend d’administration et en mettant en place l’infrastructure frontend
    • Répondre à de gros volumes de trafic et à des incidents dans une organisation en hypercroissance
    • Étudier en profondeur les processus opérationnels et guidelines des grandes entreprises, ou suivre du mentorat/des conférences, puis les adapter à sa propre organisation
  • Évolutions de carrière possibles en senior
    • Software engineer (dans une grande organisation avec des produits variés)
    • Tech lead frontend, technical program manager
    • Engineering manager, coach agile, VP of Engineering
    • CTO

3. Devenir un excellent ingénieur senior

Comment une personne ayant développé son expertise comme ci-dessus peut-elle devenir un ingénieur senior d’exception ? En m’appuyant sur la manière dont j’ai moi-même fini par assumer un rôle de senior, ainsi que sur ce qui caractérisait les excellents ingénieurs seniors que j’ai rencontrés, je voudrais souligner trois points pour le devenir.

  • Faire l’effort de rester fidèle aux fondamentaux : les cinq compétences d’un ingénieur d’exception s’appliquent évidemment de la même manière à un ingénieur senior.
  • Agir comme un leader même sans être un leader officiel : le leadership peut tout à fait s’exprimer sans titre explicite, et parfois le comportement exemplaire d’un collègue a plus d’impact que les innombrables paroles d’un leader officiel. Si vous vous efforcez d’avoir une influence positive sur le produit, l’équipe et l’organisation dans son ensemble, quel que soit votre rôle, vous finirez par être reconnu comme senior.
  • Produire un fort impact dans n’importe quelle situation : même dans une petite action comme le debug, un senior exerce une influence bien plus grande qu’un junior. Si vous ne vous contentez pas de terminer correctement le travail confié, mais que vous examinez le contexte avant et après, communiquez avec différentes personnes et créez un impact important, vous deviendrez un senior à qui l’on peut confier sereinement une partie du produit, de l’équipe ou de l’entreprise.

3 commentaires

 
devsepnine 2023-01-03

Je suis encore un développeur junior avec tout juste 3 ans d’expérience, et clairement, selon la difficulté des tâches ou l’environnement de l’entreprise, j’ai l’impression que ce n’est pas si simple d’essayer de nouvelles choses... Du coup, j’essaie d’accumuler ce genre d’expérience avec des side projects, mais ce n’est pas facile de rester assidu... haha

 
hohpark 2023-01-02

C’est un excellent article. Je me suis retrouvé un peu par hasard dans le web frontend, et cela fait déjà largement plus de 10 ans. Au-delà de mes propres interrogations sur ma carrière, il m’a toujours été très difficile de donner des conseils d’orientation aux juniors. Je pense que cette feuille de route de carrière pourra être très utile comme guide.

 
spilist2 2023-01-02

Je l’ai écrit en pensant à la fois aux juniors et aux seniors, donc je suis heureux que cela puisse être utile. Merci pour votre commentaire !