Skip to content
Business Agile
← Work
API · Rail transport, large organisation · 2020-2024

SNCF

Back end and DevOps technical lead in a rail data team.

Key figures

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

From September 2020 to September 2023 I worked for SNCF Réseau 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 the technical lead on the Python back end, 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.

The relationship continued beyond this mission: from September 2023 to October 2024 I worked with Groupe SNCF on partnerships and the funding of rail innovation, a mission without development that this case study leaves aside.

In October 2023 the engagement changed in nature and in counterpart: I joined the SNCF group on the co-funding of artificial intelligence research, around the chair held with École polytechnique. A year of work, until October 2024, on very different ground: no longer shipping services, but assessing and following applied research.

One note on what this page does not contain. The code from this engagement lives on the group's internal repositories, behind its network, and the data it handles is confidential. That is why no SNCF page on this site gives a commit count, a volume of lines or a screenshot, where other case studies do: the difference comes down to who owns the repository, not to how significant the work was. The engagements themselves can be described without difficulty, and the paragraphs above do describe them: what cannot be published is the code and the measurements, not the nature of what was built.

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 September 2020 to September 2023, Alexandre BERREBI was the back end and DevOps technical lead for SNCF Réseau, 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