Skip to content
Business Agile
Work
API · Rail transport, large organisation · 2021-2023

SNCF

Python back-end and DevOps developer in a rail data team.

Key figures

length of the engagement2021 to 2023
microservices in the platform~10
deployment of every service, driven by HelmKubernetes

From 2021 to 2023 I worked for SNCF within a team building digital tools for the operation of the rail network. The context was a rail data platform made of around ten microservices, built by a large mixed team of employees, freelancers and consultants from several firms. This was an engagement inside a client team, not a Business Agile product, and the services described here were built collectively.

The project in detail

I worked as a senior Python back-end developer with a strong DevOps focus. I built REST APIs with Django and Django REST Framework, partly on geographic network data stored in PostGIS and handled with GeoDjango. I also wrote asynchronous processing with Celery and Redis, and secured endpoints between services.

Every service in the team started from a shared project template. I evolved it: the move to Django 4, quality hooks run as soon as a new service is generated, and separate deployment and continuous integration settings. An improvement to the template thus benefited every new service.

Most of my contribution was about industrialisation: GitLab CI pipelines organised into test stages, reorganised Docker images, Kubernetes deployments driven by Helm, secrets management and error tracking with Sentry. I also set up the quality tooling (pytest and coverage, Black, isort, Flake8, mypy) so that every service met the same standards before release.

Day-to-day work followed a clear frame: one ticket per change, one branch per ticket, a merge request reviewed by another team member, then automatic deployment to acceptance environments before production. Geographic data called for special care with spatial query performance and table volume, which the team handled with partitioning and asynchronous jobs.

This engagement taught me to move fast inside a large organisation without giving up rigour: shared conventions, systematic code review, frequent and traceable releases. It is the same standard I now apply to Business Agile projects, at a smaller scale and with a single point of contact.

What was done

  1. 01

    Django and Django REST Framework APIs on geographic data (PostGIS)

  2. 02

    Asynchronous processing with Celery and Redis

  3. 03

    Evolution of the project template shared by every service

  4. 04

    GitLab CI pipelines, Kubernetes deployments with Helm, Sentry tracking

  5. 05

    Shared quality tooling: pytest, coverage, mypy, Black, Flake8

Frequently asked questions

Does Business Agile have experience with large organisations?

Yes. From 2021 to 2023, Alexandre BERREBI worked as a Python back-end and DevOps developer for SNCF, on a platform of around ten microservices deployed on Kubernetes.

Can you work inside an existing team?

Yes. The SNCF engagement took place in a mixed team of employees, freelancers and consultants, with shared conventions, code reviews and common continuous integration.

What can a DevOps-minded developer bring to a development team?

Safer and more frequent releases: continuous integration pipelines that test every change, reproducible Docker images, automated deployments and production error tracking. On this engagement, these tools were shared by every service through a common project template.

Other work

A project? Let's talk this week.

A short brief, an answer within 48 hours, a firm estimate after scoping.

Describe my project