Engineering
Le marché de la FinTech est l'un des plus exigeants qui soient : rapidité des innovations, évolution des réglementations, enjeux de sécurité, intégration avec de multiples infrastructures existantes souvent datées.
Dans ce contexte, la mission de notre équipe Engineering est double :
- Produire un code fiable, évolutif et résolument orienté vers les utilisateurs·rices, pour assurer la meilleure expérience possible à notre communauté.
- Construire une architecture robuste pour pouvoir poursuivre notre croissance et répondre aux exigences du secteur.
Afin que chacun·e puisse avoir un maximum d’impact et s’approprier son périmètre, nos ingénieur·es sont réparti·es dans plusieurs équipes (tribes), elles-mêmes subdivisées en squads :
-
Ces équipes sont composées de plusieurs squads de 5 personnes, accompagnées par un·e Engineering Manager. Elles travaillent en forte collaboration avec les équipes Product Management et Product Design pour développer, maintenir et faire évoluer les fonctionnalités de nos applications. Les 4 sujets qu'elles couvrent sont les suivants :
- “Leads” : nous voulons permettre à autant de nouvelles PME que possible de nous rejoindre, en leur présentant nos produits et en les accompagnant dans la création de leur compte Shine, de façon fluide et sécurisée.
- “Copilot” : nous voulons faciliter la vie quotidienne de nos utilisateurs·rices, en les aidant à gérer leur facturation, leur comptabilité et le suivi de leurs dépenses.
- “Banking” : nous voulons construire la meilleure banque pour les PME et les indépendant·es et améliorer l'expérience de paiement, en fournissant des méthodes de transaction sécurisées et en simplifiant la gestion des comptes bancaires.
- “User Success” : nous développons en interne les outils complexes dont nos opérateurs·rices ont besoin pour assurer la réussite de nos utilisateurs·rices.
-
Cette équipe est directement responsable de la partie centrale et transverse de notre système, tout en apportant le support et l’outillage nécessaires à l’autonomie des équipes Solutions. Elle se divise en 3 squads :
- “Infrastructure” : composée de Site Reliability Engineers, elle est responsable de la vision et de la gouvernance à long terme de l'infrastructure de Shine : elle gère et maintient l’infrastructure et la stack d'observabilité, en mettant l'accent sur la fiabilité et les pratiques de pointe.
- “Core Services” : composée de Backend Engineers, elle est chargée de construire et maintenir les fondations techniques et les principaux outils transverses, en priorisant la fiabilité, les standards de qualité et les utilisateur·rices finaux·les (que ce soit les développeur·ses, les client·es ou les partenaires de Shine).
- “Developer Experience” : en forte collaboration avec l’ensemble de l’Engineering de Shine, son rôle est de recueillir et de répondre aux besoins de nos développeurs·ses en termes d’outillage, de documentation et d’automatisation (CI/CD notamment).
-
Pilier stratégique de notre organisation, cette équipe a pour rôle de construire et d’exploiter une plateforme permettant de mettre des données fiable et actionnables à disposition de l’ensemble de Shine. Pour cela, elle est répartie en 2 spécialités :
- Les Data Engineers conçoivent les pipelines qui permettent de collecter, traiter et visualiser les données, afin d’automatiser les traitements (détection de la fraude notamment) et d’alimenter les activités de Shine. Ils·elles développent au quotidien de nouveaux outils et algorithmes nécessaires au lancement des prochains produits (scoring de crédit, analyse des transactions...).
- Les Data Analysts mesurent l'activité de Shine pour permettre aux autres équipes de prendre les meilleures décisions pour leur développement.
-
Fort·es de leurs différentes spécialisations, nos Staff Engineers interviennent de façon transverse sur tous les sujets en lien avec notre architecture, et apportent leur expertise technique aux équipes en les accompagnant dans leurs choix quotidiens. Leur rôle est également d’impulser des projets de transformation (changements structurels dans notre approche du développement, mise en place de nouvelles technologies…), tout en garantissant la cohérence de notre système au global.
Une particularité de l'organisation de nos équipes est la fluidité qui existe entre les squads. En effet, les membres d'une équipe peuvent :
- passer d'une squad à une autre facilement ;
- avoir des OKRs alignés sur la même vision ;
- unir leurs forces en cas de projets majeurs, d'enjeux importants.
En résumé, notre organisation permet d'élaborer une stratégie à plus grande échelle et de se concentrer sur des objectifs vastes, tout en conservant la flexibilité et l'efficacité d'équipes à taille humaine. Par ailleurs, une grille de progression de carrière a été définie pour aligner l'évolution de nos collaborateur·ices sur notre vision et notre culture d’entreprise, en tenant compte des principes suivants :
- offrir une progression de carrière significative à chaque ingénieur·e ;
- contribuer à unifier les attentes entre les équipes ;
- permettre aux managers de prendre des décisions en toute autonomie sur la progression de leurs subordonné·es direct·es ;
- mettre en avant la réussite collective avant la réussite individuelle.
Notre stack
Notre architecture est structurée en microservices et cloud functions, et nous utilisons React, React Native, Node.js, TypeScript, GraphQL, CircleCI, GitHub Actions, Kibana, et Docker. Notre système est hébergé chez Google Cloud Platform.
Nos prochains défis à courts, moyens et longs termes
- la poursuite de l’expansion de notre produit pour apporter une solution complète en développant de nouvelles offres et de nouvelles fonctionnalités ;
- la distribution des responsabilités de reliability à travers les équipes ;
- le regroupement de notre logique métier et le découplage de notre système ;
- l’amélioration de la parité femmes/hommes dans nos équipes ;
- l’amélioration de l’expérience de développement chez Shine.
Gabriel - Engineering Manager - Copilot