Senior Software Engineer
SpaceFill en quelques mots
Pionnier de la logistique digitale, SpaceFill est en train de construire le premier réseau européen d’entrepôts,
embarqué sur un logiciel SAAS.
SpaceFill permet aux PME ou grands groupes de mieux gérer leurs stocks et flux de marchandises en quelques clics. Ils
peuvent ainsi construire des chaînes logistiques plus efficaces, vertes et résilientes au plus proche de leurs marchés.
Descriptif du poste
Ta mission sera de renforcer l'équipe IT pour créer et améliorer les différentes applications de SpaceFill à usage interne et externe.
Tu travailleras pour la partie produit avec Gustave (CPO), Momoko (PD), Thibault (PM), Tristan (PM), Xavier (Head of Product) et pour la partie Tech avec Matthias (VP Engineering), Stéphane (CTO) et 12 autres Développeurs FullStack (Alexandre B (Engineering Manager), Belkacem, Brice, Elias, Elouan, Frédéric, Stanley, Thibaut, Timothée, Vincent, Jordi (Lead Tech) et Younes).
En pratique, chez SpaceFill, un "Senior Software Engineer" joue le rôle de maintainer, un peu comme dans l'univers Open Source (clique ici pour en savoir plus...).
Répartition approximative du travail de l'équipe : 60% Frontend, 30% Backend et 10% DevOps.
Tes activités quotidiennes en tant que Senior Software Engineer :
- Coder en React et un peu en Node.JS
- Écriture de query et mutation GraphQL
- Faire évoluer la base de données PostgreSQL
- modélisation des données (tables)
- écriture de migration de données
- écritures de triggers en pgSQL
- ...
- Écriture de fonctions pgSQL pour implémenter des Queries ou Mutations GraphQL customs
- Rédiger, améliorer et commenter des issues
- Prendre soin de tes Merge Requests afin de les pousser le plus rapidement possible en production
- Faire de la revue de code
- Écrire des spécifications techniques et parfois participer aux specifications produits
- Guider un nouveau développeur dont il est le parrain
- Améliorer continuellement la documentation du projet
- Écrire des tests UI
- Des interventions ponctuelles DevOps (Terraform / Ansible)
- Écrire, faire évoluer quelques scripts Python
Quel est le projet ? Qu'est-ce qu'il faut développer ?
Quelques informations à propos des projets de l'équipe Tech de SpaceFill :
- continuer l'amélioration d'une market place d'espace de stockage (B2B) à destination de toute l'Europe
- continuer l'amélioration de notre Order Management System (solution en SaaS)
- intégration de notre Order Management System avec les différents WMS et ERP du marché
- et de nombreux autres services liés à la logistique
D'un point de vue tech, en dehors de l'implémentation de nouvelles fonctionnalités :
- continuer à améliorer la stabilité de nos développements
- amélioration de nos fixtures
- amélioration des tests end2end
- amélioration de l'UX et du "look" de nos applications
- du refactoring de code frontend
- ...
Méthode de travail
L'équipe Tech de SpaceFill essaie autant que possible de suivre la méthode Scrum.
Ce que nous avons déjà mis en place :
- Sprints : 2 semaines
- Daily Scrum : entre 5 et 15 minutes tous les matins
- Sprint Retrospective + Sprint Planning : une après midi en fin de Sprint
- Session de Planning poker
- Scrum Team : entre 3 et 6 personnes organisées en Feature Team
- Definition of Done : un template de Merge Request de GitLab contient la checklist de notre "définition of done"
- Une journée de « Spike and learn »
Nous utilisons GitLab pour :
- la gestion des issues
- le suivi des sprints, via les fonctions milestones et boards
Tout changement dans le code ou la documentation passe par une Merge Request avec un process de review.
Stack actuelle
- Backend :
- PostgreSQL 12, utilisation de :
- du langage PL/pgSQL
- des Trigger Functions
- des extensions :
- PostGraphile (Extensible high-performance automatic GraphQL API for PostgreSQL)
- graphile-worker (Job queue for PostgreSQL running on Node.js)
- PostgreSQL 12, utilisation de :
- Frontend :
- React JS (State Hook)
- react-router
- emotion
- Apollo GraphQL
- Leaflet
- mineral-ui (sans doute un refactoring vers Chakra-UI)
- Formik (refactoring en cours React Hook Form)
- ...
- Utilisation de Storybook
- React JS (State Hook)
- Testing :
- Infra As Code :
- Terraform
- Ansible
- Hosting on AWS et Scaleway Dedibox
- Ubuntu
- Docker
- Sentry
- GitLab (pour les Git repository et pour les issues et merge requests)
- GitLab Review App pour toutes les Merge Requests
- GitLab-CI
Quelques informations supplémentaires concernant le fonctionnement du backend :
L'API GraphQL est auto générée par Postgraphile qui est un serveur OpenSource écrit en NodeJS qui se connecte "au dessus" de PostgreSQL.
Cela ressemble à Hasura, Supabase ou Firebase.
Les paramétrages, adaptations peuvent se faire soit via des commentaires sur des ressources PostgreSQL (tables, champs), soit via la création
de Views ou de functions PostgreSQL.
Les tâches qui ne peuvent pas être effectuées par PostgreSQL, comme par exemple l'envoi de mails, la génération de PDF… sont effectuées par un "service worker", avec du code NodeJS "classique".
Environnement de développement
L'environnement de développement est documenté pour MacOS.
Il est possible sans difficulté de développer sous GNU/Linux.
Par contre, l'environnement de développement n'est pas compatible avec Microsoft Windows.
Profil recherché
- Bonne maitrise de Git (tu devras jongler tous les jours entre plusieurs Merge Request, faire des Git Squash, Git Rebase…)
- Maitrise ReactJS et PostgreSQL (PL/SQL, Triggers, migrations…)
- Bonnes connaissances théoriques des technologies web : HTML5, DOM, CSS3, Javascript, HTTP, API Rest, GraphQL etc
- A une expérience en développement web front avec un framework du type AngularJS, VueJS, ou encore mieux ReactJS
- Bonne maitrise de la communication écrite
- A au minimum 6 ans d'expériences professionnelles, si possible dans au moins deux entreprises différentes, dans une équipe agile (Scrum ou autre) de 4 à 10 personnes
- A une maitrise pratique du modèle inner source / open-source : Git, GitLab Merge request, revue de code, documentation…
Informations complémentaires
- Type de contrat : CDI
- Bureau : dans le 2ième arrondissement de Paris
- Équipement : 1 Macbook Pro 16" M1Pro 32Go Ram ou ThinkPad + 250€ de budget de set up de bureau
- Tranche de salaire : entre 42K€ et 60K€ brut / an
- Carte tickets restaurant Lunchr de 8 € / jour
- Assurance santé Alan
- Télétravail possible, plus d'informations : La pratique du télétravail chez SpaceFill
- Convention collective : Syntec
- Période d'essai : 2 fois 4 mois
Voir aussi le document : le processus de recrutement