Autoévaluez votre niveau : quelques exemples entre ingénieur junior et expérimenté

12963604_10154056415739356_803185988041792536_n

Mon équipe à Amazon AWS

Les titres de SDE (Software Development Engineer) sont très disparates entre les entreprises.

Google démarre à SDE II, Microsoft propose un SDE II très accessible, Uber donne le titre senior avec seulement 1 ou 2 ans d’expérience… Bref on s’en fou un peu des titres, cela change trop d’une entreprise à une autre.

 

Même si être dans les GAFA est souvent un gage de qualité, les équivalences entre les entreprises du top 5 ne sont pas officiellement écrites noir sur blanc.

J’avais déjà expliqué que la différence de niveau entre un ingénieur I (apprentis) et III (senior) est surtout tout ce qui touche la taille du projet et les principes de leadership.

 

Du coup, je voulais partager avec vous ma « barre » d’où se trouve un junior d’un expérimenté. C’est en tout cas avec cette barre que je gère mon équipe.

Mais je voulais aller plus loin, et donner quelques détails sur les hard et soft skills que je pense nécessaire à chaque niveau. Je vais énoncer une liste, ce n’est pas exhaustif et ce n’est pas noir/blanc mais ça peut vous permettre de vous auto-évaluer avant de postuler, histoire de démystifier un petit peu la chose !

 

Voici le fichier example pour SDEI. J’ai différencié SDE I junior qui sort de l’école et celui avec 3 ans d’expériences.

Et le même pour SDEII. SDEII est pour la plupart là où un développeur arrêtera sa carrière. Ça ne me choque pas de voir des gens de 40/50 ans SDE II.
Ceux qui sont prédestinés à devenir senior reste en moyenne 4 à 6 ans SDE II. J’ai donc séparé le jeune SDE II, du plus expérimenté.

Je n’ai pas écrit de description pour senior. Comme je l’ai expliqué dans mes posts précédents, ce n’est plus vraiment les hard skills qui comptent mais plutôt la façon de faire, les principes, et le scope que la personne peut supporter.

Alors, après avoir lu tout ça, vous vous voyez à quel niveau ?

FacebookLinkedIn
  • olivier

    Beau travail d’encadrement, avoir le feeling est une chose, savoir mettre des mots sur chaque aspect est toujours plus difficile. Rien à redire à tes définitions. Mais on voit que tu bosses depuis un moment pour des grosses boîtes qui ont des critères très sélectifs.
    Très honnêtement je ne vois que rarement (hélas) des ingés respecter tes critères de la définition de SDE 1 que je trouve très raisonnables par ailleurs.
    Par exemple les points 1, 5 et 6 pour le code sont respectés par peu de gens. Pour la qualité les 1 et 2 qui me semblent essentiels ne sont faits que dans 5 à 10% des cas et je suis généreux. Quant aux CR, la pratique est véritablement confidentielle et est presque vécue comme une insulte ou du flicage.
    Profite d’évoluer dans un environnement si parfait ! 🙂
    Ce que j’aime beaucoup chez toi c’est cette constante volonté à chaque poste que tu occupes d’en tirer le maximum d’enseignement, et de le faire avec plaisir, ça se voit.

  • Ehouarn Perret

    SDE I avec un peu plus de 4 ans d’XP. Je me retrouve dans certains points de SDE II mais c’est encore (tres, treeees) loin d’etre le cas pour tous. De toutes facons a partir du moment ou je fais ce que je peux pour m’ameliorer (et je vois la montagne qu’il me reste a escalader) je me dis que c’est plutot bien parti, peu importe l’etiquette et le temps que ca me prendra =]

    • L’essentiel c’est de se rendre compte de la montagne et de marcher en cette direction. C’est pour ça que j’ai posté ca

      • Ehouarn Perret

        Je l’avais avant cette article peut-etre avec des categories un differentes mais ca m’a permet desormais de mettre un alias dessus et de beneficier d’un angle de vue legerement different.

        • J’ai pas dit que c’etait necessairement pour toi 😛

  • Essadiq Baich

    Voici une une matrice de compétences sympa même si je trouve que quelques points sont redondants ou manquent de précision.

    http://sijinjoseph.com/programmer-competency-matrix/

  • Neoncyber

    Pour rassurer certaine personne comme moi.
    Il y a plusieurs de type de développeur voici une liste sympa:

    http://blog.codestart.com/types-of-computer-programmers/

    Julien parle je pense souvent de “développeur système” sans le préciser, qui est une sous catégorie de développeur.

    • Pas vraiment.
      En ce moment je parle de dev systeme certes, mais avant quand j’etais chez MS je parlais de dev mobile, firmware, software…
      Je prefere parler de dev systeme car je trouve que c’est la ou la complique est superieur.
      Apres, au dela du “domain knowledge”, la fondation/niveau de coding etc reste le meme.