Shippeo

Shippeo est un éditeur SaaS qui permet aux entreprises de tracker les livraisons de marchandises vers leurs dépôts et magasins.

Logo Shippeo

Shippeo

Lorsque vous faites vos achats sur votre site e-commerce préféré, en tant que particulier vous avez l'habitude de pouvoir savoir où en est votre colis. Vous savez quel jour il arrivera, quelle tranche d'heure le livreur passera et dans certains cas, vous pouvez même suivre la géolocalisation du livreur.

Or les entreprises, qui commandent de la marchandise par camion complet, n'ont pas cette finesse d'information concernant les arrivées de marchandises. C'est pourtant critique pour certaines entreprises afin d'organiser les équipes de manutention, rendre disponible les quais de déchargement et pouvoir prévenir les clients que la marchandise sera disponible en rayon à partir d'une date donnée.

Qui est Shippeo ?

Shippeo est un logiciel SaaS qui permet aux entreprises clientes de pouvoir suivre l'état de l'ensemble des livraisons en temps réel.

Mêlant Machine Learning, données en temps réel, haute disponibilité et fort volume d’activité, Shippeo évolue dans un environnement technique très riche au service d’une industrie en pleine mutation technologique.

Créé en 2014, Shippeo est devenu leader européen de l'outil de tracking et monitoring à destination des professionnels de la logistique. Avec une équipe tech de plus de 30 personnes, répartis entre les bureaux de Paris, Lyon et en full remote, Shippeo amène de la tech dans une industrie traditionnelle afin d'apporter de la valeur à ses clients en offrant une meilleure visibilité sur les flux de livraison.

Qui utilise Shippeo ?

Shippeo est utilisé par toutes les entreprises impliquées dans la chaîne de transport. Cela va de l'industriel, comme Coca-Cola par exemple, aux grands distributeurs, comme Auchan, et aux transporteurs qui feront les trajets entre ces deux acteurs.

Avant l'arrivée de Shippeo, ces acteurs n'avaient de visibilité que tant que la marchandise était dans un entrepôt. Dès lors que le camion quittait le quai, les aléas de la route étaient inconnus des inconnus des transporteurs, de l'expéditeur ou du client. Communiquer un retard allait dépendre du chauffeur, qui devait appeler sa société de transport, qui allait ensuite relayer l'information au destinataire. L'expéditeur n'était au courant qu'en cas de mauvaise nouvelle et lorsqu'il faut renégocier avec ses clients qui lui présentent les retards qu'ont ses expéditions.

Shippeo permet d'allumer la lumière et de fournir un Estimated Time of Arrival (ETA) mis à jour toutes les 3 minutes.

Les destinataires sont donc très au fait de chaque livraison en attente et sont capables de s'adapter en fonction. Cela leur permet de :

  • Réaffecter le personnel sur les livraisons ou sur d'autres tâches en attendant l'arrivée des camions
  • De prévenir les clients ayant réservé certains produits
  • D'adapter très rapidement la disponibilité des produits sur le site e-commerce

Aujourd'hui, Shippeo traite plus de 5 millions d'ordres de transports, est connecté avec plus de 140 000 transporteurs à travers 60 pays.

Voici une interview du directeur des transports chez Leroy Merlin qui explique qu'est-ce que Shippeo lui apporte:

Quelles sont les fonctionnalités clés de Shippeo ?

La fonctionnalité qui apporte le plus de valeur aux clients de Shippeo est le tableau de bord qui permet d'avoir une vision actualisée toutes les trois minutes de chaque camion avec son heure d'arrivée estimée.

Parce que les métiers de la logistique impliquent de gérer les imprévus, les clients qui utilisent Shippeo apprécient la visibilité sur les alertes. Dans leurs tableaux de bords, ou via des systèmes d'alertes, ils sont prévenus lorsqu'un camion a perdu le signal GPS ou lorsqu'un retard significatif survient. Cette fonctionnalité sert aux opérateurs afin de pouvoir communiquer avec les différentes personnes et services impliqués et se réorganiser en conséquence.

La Global Map est également une fonctionnalité qui plaît beaucoup aux utilisateurs de Shippeo. Cette vue permet de voir, en un coup d'œil, la localisation et l'état d'un camion via un code couleur. En cliquant dessus, l'utilisateur aura accès aux détails de chaque trajet. Cette vue, complémentaire au tableau de bord, est souvent projetée dans les entreprises sur des écrans à la vue de tous les collaborateurs.

Enfin, la dernière fonctionnalité très technique qui plaît également aux clients les plus équipés techniquement est la fonction "Publish Data". Puisque la logistique est une succession d'événements, Shippeo est capable de publier régulièrement des messages sur des Bus d'événements sur lesquels les clients peuvent se brancher directement.

Quel est l'environnement technique chez Shippeo ?

Bien que l'ensemble de l'entreprise suive un schéma de méthode Agile à la Scrumban (un mix entre Scrum et Kanban), chaque équipe est autonome et a la liberté d'adapter ses rituels. Aujourd'hui l'équipe tech chez Shippeo représente plus de 50 personnes réparties dans 4 tribes:

  • Connect & Go Live qui est en charge des connecteurs avec les transporteurs et pousser la data dans le SI de Shippeo, jusqu'aux connecteurs en aval qui vont nourrir les systèmes d'information des clients.
  • Track To React qui est principalement en charge des différentes vues et tableaux de bords que propose l'application Shippeo à ses utilisateurs.
  • Predict & Data qui travaillent sur les algorithmes propriétaires de calculs de temps de trajet et d'heure d'arrivée (ETA).
  • Slot bookings issus de l'acquisition de Phonego qui permet aux utilisateurs de réserver des créneaux sur les quais de chargement et déchargement.

En terme technique, nous retrouvons de nombreuses technos dans la stack utilisée par Shippeo.

L'équipe Predict & Data, constituée de data engineers, est principalement tourné sur de la manipulation de données et donc un grand utilisateur de Python.

La partie API de Shippeo a été conçue en PHP avec le framework Symfony. Les développeurs s'assurent de maintenir la stack à jour puisqu'aujourd'hui l'application reste très majoritairement sous le framework Symfony 4.4, soit la dernière version en date.

NodeJS a vocation à prendre de plus en plus de place dans les différents services qui constituent l'application suite à l'acquisition de la nouvelle tribe Slot booking ainsi que le souhait des développeurs chez Shippeo.

Comme l'a dit Khaled dans l'interview ci-dessous, rien ne contre indiquait ce choix technique et si l'équipe se sentait à l'aise avec cette techno, il n'y avait pas de raison de la forcer à développer ce service en Symfony simplement parce que c'était la stack historique.

L'architecture de l'application Shippeo repose sur des événements qui sont produits et consommés par différents services. RabbitMQ est le broker de messagerie utilisé dans la stack.

Les référentiels de données sont principalement sous MySQL suite aux choix historiques. Certaines briques, notamment côté de la tribe Data, sont sur du Postgres, bien qu'il y ait des prototypes en cours d'évaluation sur du Big Query (GCP) ou sur du Snowflake (AWS)

Côté Frontend, le produit a historiquement été conçu avec le framework AngularJS. Il vit actuellement une refonte avec son successeur Angular. Cependant, chaque équipe ayant son indépendance dans son choix de techno, on retrouve également certaines implémentations de React dans certains composants de l'application.

Côté Infrastructure, les containers sont orchestrés via Kubernetes et déployés sur Google Cloud Platform via le service GKE et partiellement sur Clever Cloud, un fournisseur Platform as a Service. Cette partie est supervisée par des Site Reliability Engineers en interne.

L'infrastructure est monitorée grâce à un Grafana et les logs sont aujourd'hui déversés chez Greylog, bien qu'il y ait pour projet de migrer vers un ELK afin d'avoir une meilleure gestion des logs par scope fonctionnel.

Quels sont les challenges liés au produit ?

En termes fonctionnels, Shippeo a validé l'intérêt du produit auprès de ses clients. Ces derniers en veulent plus de la plateforme, notamment avec le multimodal (transport maritime, fluvial, ferroviaire, aérien) et Shippeo connaît une croissance non négligeable de clients et donc de nombre d'utilisateurs, dont certains hors de l'europe.

Les challenges techniques chez Shippeo relèvent de plusieurs domaines. Il y a un challenge d'infrastructure, de scalabilité de l'application et de disponibilité dans de multiples zones. C'est pourquoi Shippeo renforce son équipe de SRE, notamment via l'embauche d'un Head of SRE.

La qualité du produit et de l'expérience client est aussi un levier important pour la fidélisation et la recommandation du produit entre les clients. En effet, lorsque Leroy Merlin devient client, Décathlon et Auchan s'y intéressent rapidement derrière si les retours des utilisateurs de chez Leroy Merlin sont bons. C'est pourquoi il y a un gros effort sur la QA qui est en train d'être fait. Guy-Pascal (ex Amazon) a rejoint Shippeo en tant que Head of QA et met en place des bonnes pratiques à travers les tribes afin de rendre le produit le plus solide possible. En tant que développeur, en rejoignant une tribe chez Shippeo, vous pouvez avoir la certitude que les User Stories seront bien conçues, avec des critères d'acceptations, et qu'il y aura un monitoring qualité sur les fonctionnalités déployées en production.

Enfin, les engagements clients sont les moteurs les plus forts de la roadmap. Le Head of Product et ses équipes se concertent régulièrement avec l'équipe commerciale afin d'aligner les priorités en termes de nouvelles fonctionnalités. Les challenges fonctionnels existent dans toutes les tribes et l'application est toujours à une phase de construction, travaillant conjointement avec les clients pour leur apporter toujours plus de valeur.

Que peut espérer un développeur en rejoignant Shippeo ?

Khaled le dit lui-même, il ne promettra pas une évolution au moment d'une embauche. Cependant, il est arrivé plusieurs fois que des développeurs aient pris du galon après avoir rejoint Shippeo.

Les perspectives se trouvent aussi bien en évolution horizontale en interne. Il existe de nombreux terrains de jeux techniques aussi bien en développement (Backend en NodeJS et en Symfony, Data et Machine Learning avec du Python, Frontend an Angluar et React), qu'en QA ou bien côté Ops.

Il y a également des opportunités d'évolution vers des postes de management, notamment ceux d'Engineering Manager, pour les candidats ayant cette fibre.

L'interview du CTO

Tu as envie d'en savoir plus ? Retrouve l'intégralité de l'interview dans le podcast ci-dessous ou sur ta plateforme de podcast préférée

Les challenges chez Shippeo

En rejoignant Shippeo, voici ce qu'un développeur peut espérer retrouver:

  • Une équipe mature techniquement avec
  • Un terrain de jeu comportant une stack variée et la possibilité d'évoluer d'une tribe à une autre afin de découvrir de nouvelles technos et disciplines.
  • Des challenges d'évolution fonctionnels comme structurels, il va falloir continuer à livrer plus de valeur aux utilisateurs tout en rendant la plateforme plus robuste afin d'accueillir de plus en plus de clients.

Les leaders tech

Découvre les profils des personnes clés au sein de l'équipe tech