Un dev senior pour moi (j'en suis pas un mais c'est ce que je vois avec mes collègues plus expérimenté) c'est :
- Quelqu'un qui sait répondre à une énorme série de problème. (Ou trouve une solution rapidement)
- Maitrise la POO du bout des doigts.
- Connais et sais mettre en place les designs patterns qui vont bien avant de coder.
- Il sait prendre du recul, optimiser son code correctement (Que ce soit dans la performance les requêtes etc).
- Il arrive à comprendre rapidement la logique de code effectué par quelqu'un d'autre.
- Arrive rapidement à s'adapter à un contexte, framework etc grâce à ces connaissances en POO.
- Arrive à pondre une algorithmie complexe assez facilement.
- Arrive à controller les points d'entrée et sortie de la fonctionnalité. Eventuellement à devancer l'arrivé d'un bug. (En gros quand tu code pas mal de ligne et que tu te relis, bah avant de voir si ça pête ou pas une erreur, tu sais que la ça passera pas).
- Arrive à mettre en place une sécurité suffisante sur l'application qu'il développe.
- Connais quasi toutes les fonctions PHP par coeur (du moins les plus courantes avec leurs options et savoir que les autres fonctions existent, sauf cas un peu plus complexe comme la date cité plus haut :p )
- Qu'il arrive à comprendre d'autre langage serveur.
- Sais mettre en place des plans de tests.
- N'a besoin que d'autres dev que pour des avis, et non pas de l'aide (sauf cas très complexe ou des domaines qu'on maitrise pas complètement faut être souple un peu ! :p (Bah oui parce que si tout le monde compte sur le voisin pour l'aider on est tous dev senior... NOUS NE FAISONS QU'UN ! Ahem pardon)
- Connais les architectures web.
- Est capable d'aiguiller l'apprentissage du développement à un dev junior.
Après ma liste n'est pas complète, et peut être déjà très longue. Mais pour moi un dev senior doit être capable d'être un mentor (non pas qu'il soit obligé de l'être, mais je me dis que si tu connais la POO, les bonnes pratiques tout ça, tu es capable de donner des pistes à quelqu'un pour qu'il progresse), sinon c'est que lui même doit encore grandir. (Même si en dev on apprend toujours)
Pour moi c'est la différence entre un dev junior, un dev avec de l'expérience et un developpeur sénior.