Aller au contenu
Business Agile
Réalisations
API · Transport ferroviaire, grand compte · 2021-2023

SNCF

Développeur back-end Python et DevOps dans une équipe de données ferroviaires.

En chiffres

durée de la mission2021 à 2023
microservices dans la plateforme~10
déploiement de chaque service, piloté par HelmKubernetes

De 2021 à 2023, j'ai travaillé pour la SNCF au sein d'une équipe qui construit des outils numériques pour l'exploitation du réseau ferré. Le contexte : une plateforme de données ferroviaires composée d'une dizaine de microservices, développée par une grande équipe mixte réunissant des salariés, des indépendants et des consultants de plusieurs cabinets. Il s'agit d'une mission au sein d'une équipe client, pas d'un produit Business Agile, et les services décrits ici ont été construits à plusieurs.

Le projet en détail

J'y intervenais comme développeur back-end Python senior, avec une forte composante DevOps. J'ai développé des API REST en Django et Django REST Framework, dont une partie sur des données géographiques du réseau, stockées dans PostGIS et manipulées avec GeoDjango. J'ai aussi écrit des traitements asynchrones avec Celery et Redis, et sécurisé des points d'accès entre services.

Tous les services de l'équipe partaient d'un gabarit de projet commun. Je l'ai fait évoluer : passage à Django 4, hooks de qualité exécutés dès la génération d'un nouveau service, séparation des réglages de déploiement et d'intégration continue. Une amélioration apportée au gabarit profitait ainsi à chaque nouveau service.

L'essentiel de ma contribution tenait à l'industrialisation : pipelines GitLab CI organisés en étapes de tests, images Docker réorganisées, déploiements Kubernetes pilotés par Helm, gestion des secrets et suivi des erreurs avec Sentry. J'ai également installé l'outillage de qualité (pytest et mesure de couverture, Black, isort, Flake8, mypy) pour que chaque service réponde aux mêmes exigences avant d'être livré.

Le travail au quotidien suivait un cadre précis : un ticket par évolution, une branche par ticket, une merge request relue par un autre membre de l'équipe, puis un déploiement automatique sur les environnements de recette avant la production. Les données géographiques demandaient une attention particulière aux performances des requêtes spatiales et au volume des tables, que l'équipe traitait par partitionnement et par tâches asynchrones.

Cette mission m'a appris à avancer vite dans une grande organisation sans renoncer à la rigueur : conventions partagées, revues de code systématiques, livraisons fréquentes et traçables. C'est la même exigence que j'applique aujourd'hui aux projets de Business Agile, à une échelle plus petite et avec un interlocuteur unique.

Ce qui a été fait

  1. 01

    API REST Django et Django REST Framework sur données géographiques (PostGIS)

  2. 02

    Traitements asynchrones Celery et Redis

  3. 03

    Évolution du gabarit de projet commun à tous les services

  4. 04

    Pipelines GitLab CI, déploiements Kubernetes avec Helm, suivi Sentry

  5. 05

    Outillage qualité partagé : pytest, couverture, mypy, Black, Flake8

Questions fréquentes

Business Agile a-t-il l'expérience des grands comptes ?

Oui. De 2021 à 2023, Alexandre BERREBI a travaillé comme développeur back-end Python et DevOps pour la SNCF, au sein d'une plateforme d'une dizaine de microservices déployés sur Kubernetes.

Pouvez-vous intervenir au sein d'une équipe existante ?

Oui. La mission SNCF s'est déroulée dans une équipe mixte de salariés, d'indépendants et de consultants, avec des conventions partagées, des revues de code et une intégration continue commune.

Que peut apporter un développeur DevOps à une équipe de développement ?

Des livraisons plus sûres et plus fréquentes : pipelines d'intégration continue qui testent chaque modification, images Docker reproductibles, déploiements automatisés et suivi des erreurs en production. Sur cette mission, ces outils étaient partagés par tous les services grâce à un gabarit de projet commun.

Autres réalisations

Un projet ? Parlons-en cette semaine.

Un brief court, une réponse sous 48 h, une estimation ferme après cadrage.

Décrire mon projet