Les missions du développeur Python s'orientent sur l'exploitation du langage Python dans le domaine du développement web. Il peut participer à la migration vers le langage Python 3. Le développeur Python est en charge du maintien et de l'amélioration de la solution d'analyse de données réseau. Il peut également assurer la mise en oeuvre des tests unitaires et l'élaboration du design et de l'intégration de nouvelles fonctionnalités des sites web.
Le développeur Python doit avoir des connaissances solides dans le développement web. Il doit maîtriser toutes les versions du langage Python. Le développeur Python doit également être capable d'exploiter Git dans un environnement professionnel et être familier avec l'environnement Linux. D'autre part, une connaissance du Big Data peut aussi être un atout important pour le développeur Python.
Les développeurs Python sont très demandés. Cela est non seulement dû à la popularité et à l'utilisation très large du langage, mais aussi au fait que Python soit devenu une solution dans plusieurs domaines différents. Des applications web à la science des données et à l'apprentissage automatique, Python est utilisé partout.
Il ne suffit cependant pas d'avoir une bonne maîtrise du langage lui-même. Il s'agit étonnamment de l'étape la plus facile pour devenir un développeur Python freelance. Voici d'autres éléments à prendre en compte si vous voulez faire de cela votre métier.
Bien que Python ne soit pas le langage programmation le plus utilisé sur le web, il est en constante progression, surtout dans un environnement de start-up où le temps et le budget sont parfois limités. C'est un langage de programmation orientée aspect.
Il existe de ce fait des modules avec diverses fonctionnalités. Le développeur full stack doit donc d'abord créer les modules. Il s'occupe en général des composants backend, de la connexion des applications avec des services web tiers et de l'assistance aux développeurs frontaux dans les applications web.
Il va sans dire que Python est le principal langage que vous utiliserez. Heureusement, si vous avez une maîtrise d'autres langages, le changement de langage peut facilement se faire. Python est un langage polyvalent, et la demande ne cesse de croître.
Grâce à son apprentissage relativement aisé, il est adapté aux novices et aux développeurs expérimentés. La maîtrise de chaque module n'est pas requise. Il convient toutefois de connaître, indépendamment de la syntaxe et de la sémantique de base, les différences entre Python 2 et 3.
Un bon développeur freelance peut s'y adapter en douceur, mais ce n'est pas un problème, car la distinction est rarement nécessaire. Il est aussi recommandé de connaître les structures de données de Python. Savoir ce qui se cache sous le capot d'un ensemble sera utile aussi bien pour les petits que pour les grands projets.
Il est crucial de connaître les frameworks Python, mais cela ne signifie pas qu'un développeur Python freelance doive tous les connaître. En fonction du projet, l'on peut vous demander de connaître l'un ou l'autre, mais les plus utilisés sont Python Django, CherryPy et Flask.
Il va sans dire que si vous connaissez déjà Python, vous avez eu l'occasion de travailler avec au moins d'un des frameworks les plus populaires. La structure de base et bien définie offerte par les frameworks est en général appréciée des développeurs quand ils cherchent à définir la logique basique de l'application.
Vos compétences sont tout d'abord votre arme. Elles vous permettront de décrocher un meilleur projet, un meilleur poste et naturellement un meilleur salaire. De plus, en programmation, vous pouvez toujours en apprendre plus.
L'acquisition de compétences additionnelles n'est donc pas seulement bénéfique, mais rend aussi le parcours professionnel d'un développeur Python freelance stimulant et intéressant. Qu'il s'agisse d'apprendre de nouvelles bibliothèques ou de participer à des conférences Python, il existe diverses façons de s'améliorer.
Contexte Fonctionnel :
Sophia est une plate-forme Cloud développée et hébergée par Sewan permettant l’accès à tous les services (tel mobile, fixe, Hébergement) du catalogue Sewan avec deux modes de ventes : en direct auprès des entreprises ou via des partenariats. Ses fonctionnalités sont disponibles via son interface ou ses nombreuses API et offrent un accès temps réel complètement automatisé aux offres Sewan, Toute l’activité est intégrée au sein d’un gros SI qui permet aux clients (centaine de milliers par jour) d’avoir accès aux services.
Mission principale :
➤ Implémentation de correctifs sur des incidents remontés par les utilisateurs.
➤ Ajout de nouvelles fonctionnalités sur le SI.
➤ Analyse des tickets remontés par les équipes du support.
➤ Gestion des incidents.
➤ Supervision des déploiements que ce soit au niveau production ou bien test.
➤ Implémentation de script de test d’intégration et unitaire en utilisant les mocks .
➤ Code review, refactoring de code.
➤ Validation de tickets incidents.
Contexte Fonctionnel :
Développement intégral ( from scratch) d’un outil ZTC CLOUD sous forme d’une plateforme permettant de réserver, orchestrer, monitorer, reporter et analyser des tests sur simulateurs pour des éléments unitaires ou de bout en bout. La plateforme offre une interface web développée en Python, dont l’aspect user friendly a été particulièrement étudié, cet outil permet aux utilisateurs de faire des déploiements d’OS et aussi des softwares sur des équipements d'accès 5G qui sont soit physiques ou virtuels.
Mission principale :
➤ Ajout de correctifs sur la bibliothèque ssh library.
➤ Automatisation de déploiements de Tests Lines.
➤ Implémentation de tests unitaire.
➤ Conception et implémentation d’APIs pour les Airphones(équipement physique d'accès 5G).
➤ Implémentation de tests unitaires pour les différentes APIs réalisées.
➤ Réalisation de End-to-End tests dans le but d’effectuer de l'intégration en zone production.
➤ Upgrade des différents serveurs sur lequel l'outil(ZTC CLOUD) est déployé (serveur de production, serveur de développement).
➤ Suivie des différents déploiements effectués par les utilisateurs de l’outil.
➤ Support pour le compte des utilisateurs
➤ Traitements des différents bugs rapportés par les utilisateurs.
➤ Création et traitement de tickets Jira.
➤ Intégration de hardware sur velocity.
➤ Gestion de différentes ressources matérielles et virtuelles allouées aux différents déploiements effectué par les utilisateurs.
➤ Gestion des ressources virtuelles au niveau du Titanium.
➤ Factorisation de code pour rapporter plus de robustesse.
➤ Application de commissioning sur les différents déploiements réalisés.
➤ Gestion des ressources matérielles via l’outil Velocity.
➤ Réalisation de la documentation.
➤ Analyse de différents logs côté serveurs et correction des remontées d’anomalies.
➤ Gestion de différents daemons.
➤ Intervention au niveau du serveur de prod pour mise à jour de différentes fonctionnalités.
➤ Intervention au niveau de l’outil Titanium pour gérer les différentes ressources virtuelles.
➤ Code review et refactoring.
Contexte Fonctionnel :
Développement intégral ( from scratch) d’un outil ZTC CLOUD sous forme d’une plateforme permettant de réserver, orchestrer, monitorer, reporter et analyser des tests sur simulateurs pour des éléments unitaires ou de bout en bout. La plateforme offre une interface web développée en Python, dont l’aspect user friendly a été particulièrement étudié, cet outil permet aux utilisateurs de faire des déploiements d’OS et aussi des softwares sur des équipements d'accès 5G qui sont soit physiques ou virtuels.
Mission principale :
➤ Ajout de correctifs sur la bibliothèque ssh library.
➤ Automatisation de déploiements de Tests Lines.
➤ Implémentation de tests unitaire.
➤ Conception et implémentation d’APIs pour les Airphones(équipement physique d'accès 5G).
➤ Implémentation de tests unitaires pour les différentes APIs réalisées.
➤ Réalisation de End-to-End tests dans le but d’effectuer de l'intégration en zone production.
➤ Upgrade des différents serveurs sur lequel l'outil(ZTC CLOUD) est déployé (serveur de production, serveur de développement).
➤ Suivie des différents déploiements effectués par les utilisateurs de l’outil.
➤ Support pour le compte des utilisateurs
➤ Traitements des différents bugs rapportés par les utilisateurs.
➤ Création et traitement de tickets Jira.
➤ Intégration de hardware sur velocity.
➤ Gestion de différentes ressources matérielles et virtuelles allouées aux différents déploiements effectué par les utilisateurs.
➤ Gestion des ressources virtuelles au niveau du Titanium.
➤ Factorisation de code pour rapporter plus de robustesse.
➤ Application de commissioning sur les différents déploiements réalisés.
➤ Gestion des ressources matérielles via l’outil Velocity.
➤ Réalisation de la documentation.
➤ Analyse de différents logs côté serveurs et correction des remontées d’anomalies.
➤ Gestion de différents daemons.
➤ Intervention au niveau du serveur de prod pour mise à jour de différentes fonctionnalités.
➤ Intervention au niveau de l’outil Titanium pour gérer les différentes ressources virtuelles.
➤ Code review et refactoring.
OUTSCALE (Saint Cloud) : Outscale est une société française spécialisée dans le cloud computing, la mission s’est effectuée au sein de l'équipe QA (quality assessment).
Contexte Fonctionnel : Participation à l’automatisation des Tests techniques des logiciels Outscale, AWS, IaaS
Mission principale :
➤Développement et implémentation de frameworks de tests de différentes API, correspondants aux différents produits Outscale.
➤ Spécifications et exécutions des différents scénarios de tests sur les différentes API des produits outscale.
➤ Implémentations de différents scripts de tests sur les différents composant de l’infrastructure cloud de Outscale
➤ Lancement et déploiement de différents tests sur jenkins.
➤ Traitement de différents tickets JIRA.
Contexte Technique : Python, Pytest, Boto, Bpython, linux, Jira, jenkins, logmatic, PyCharm.
Salarié (Consultant junior) : Développeur Python fullstack