Les détails techniques
- Équipe : Ingénierie
- Contrat : CDI
- Lieu : Télétravail (en Europe)
- Rythme : Temps plein
- Salaire : de 55 000 € à 70 000 €
- Statut : À pourvoir
- Publié le :
Back-end developer
Introduction
Nous recrutons une personne au poste de développeur.se back-end pour nous aider à concevoir et créer des produits bancaires de qualité.
Nous construisons depuis 5 ans une banque pour les entreprises européennes. De l’ingénierie, aux règles métier, en passant par le design, tout ou presque reste à inventer.
À propos du poste
Le rôle
Ce rôle consiste à travailler au sein de notre équipe Core Banking System (CBS), le cœur de notre infrastructure technique, écrit en Elixir (~10%) et Kotlin (~90%), et que nous avons choisi de développer intégralement en interne. En travaillant sur notre CBS, vous contribuerez au développement de notre système de gestion des transactions : connexion aux systèmes de paiement, au registre des opérations (ledger), détection de la fraude, gestions de nos utilisateurs, création de nouveaux produits bancaires, etc.
Plus largement, vous développerez également les API qui permettent de faire communiquer notre back-end avec nos applications (sur le web comme sur mobile). Vous intégrerez aussi les services tiers sur lesquels nous nous appuyons. Vous serez le premier interlocuteur technique sur nos projets, le point de départ de nos développements.
Notre équipe CBS travaille également au développement de l'infrastructure de nos outils de gestion de données, regroupés au sein de notre Data Management Platform (DMP). Ce DMP est la mémoire de notre système, ces données récoltées nous permettant de répondre aux exigences réglementaires, d'analyser et piloter notre banque. Par exemple, nous créons régulièrement des tableaux de bord afin de veiller à bien diversifier nos risques quand nous accordons des crédits ou de suivre nos flux entrants et sortants et ainsi faciliter la gestion de notre trésorerie.
Plus globalement, en tant que développeur.se back-end, vous alternerez entre des moments de discussion et des moments de création, entre conception et réalisation. Vous écrirez du code, bien sûr, mais pas que, vous écrirez aussi des tests et de la documentation pour aider vos collègues à suivre vos avancées — entre autres. Vous apprendrez de nous et nous apprendrons de vous : vous relirez le code de vos pairs, vous corrigerez des bugs, et vous nous aiderez à maintenir un haut niveau d’exigence technique.
Vous pourrez donner votre avis sur de nombreux sujets en utilisant nos canaux de discussion dévolus à la collaboration : Confluence, pour les discussions asynchrones, fouillées, documentées ; et Slack, pour les discussions brèves, rapides, informelles.
L’équipe
Nous construisons nos produits et notre organisation dans le calme, en ménageant à chacun des périodes de travail sans interruption, dans un environnement propice à la concentration. Notre organisation interne nous permet de pousser régulièrement du code en production.
Pour vous donner une meilleure idée des sujets sur lesquels travaillent nos équipes techniques, voici quelques liens vers des articles et des présentations :
Web Development at Margo Bank — Benoît de La Forest ;
Why Elixir? — Jérémie Martinez ;
Choosing an architecture — Joan Zapata ;
La communication dans une architecture orientée services — Joan Zapata
How we implemented a state machine framework — Joan Zapata ;
How we ensure eventual consistency in a distributed system — Joan Zapata
Nos premiers mois avec Elixir — Raphaël Lustin.
Bien que nous nous projetions sur plusieurs années, nous restons curieux et ouverts aux nouveautés, à tout ce qui permet de ne pas stagner. Si vous avez besoin d’un livre, nous vous le commanderons pour l’ajouter à notre bibliothèque. Si vous souhaitez assister à une conférence, nous pouvons vous payer les billets, le transport et l’hébergement sur place.
Les responsabilités
Dans les grandes lignes, vous aurez pour mission de :
Écrire du code élégant, calibré pour un fonctionnement en production à grande échelle. Ce que vous allez créer est appelé à durer.
Contribuer à la direction technique de nos produits, en prenant la responsabilité de certains projets.
Partager votre expertise avec vos collègues, en participant à des revues de code, en rédigeant de la documentation ou en organisant des présentations internes.
Proposer de nouveaux outils, de nouvelles approches de développement, dans le but d’améliorer notre façon de travailler.
Collaborer avec nos p*roduct designers* et nos développeurs, de la conception à la mise en production de fonctionnalités.
Documenter (en anglais) les API et les applications que vous contribuez à créer.
Prendre en compte les avis de nos banquiers et de nos clients pour améliorer les produits que nous leurs proposons. Voyez ça comme du service client par procuration.
À propos de vous
Profil recherché
Vous êtes une personne expérimentée et autonome. Vous appréciez les discussions et les compromis qu’implique l’ajout de fonctionnalités dans des applications complexes. Vous aimez vous concentrer sur votre code, mais vous savez aussi que votre travail ne s’arrête pas quand votre fonctionnalité passe en production. Vous prenez du plaisir à créer et à collaborer avec des product managers et des designers pour faire en sorte que vos créations soient utiles sur la durée.
Vous n’êtes pas infaillible et ne pensez pas l’être. Vous avez déjà cassé des environnements de production et redoublé d’efforts pour les réparer, sans paniquer. Vous savez utiliser Git et vous maîtrisez les grands principes du contrôle de versions, de l’intégration continue, des revues de code et de la documentation.
Nous embauchons des personnes curieuses, audacieuses et humbles, à qui nous accordons ensuite beaucoup d’autonomie pour apprendre et créer. Nous nous intéressons plus à ce que vous avez fait depuis votre sortie de l’école, qu’au diplôme que vous y avez obtenu. À nos yeux, des projets intelligemment menés en disent plus long que n’importe quel pédigrée académique.
Compétences attendues
Idéalement, vous avez :
Au moins 5 ans d’expérience avec des langages de programmation orientés objet. Nous utilisons Kotlin.
Des compétences en matière de système distribué, d’architecture logicielle, de montée en charge et d’optimisation des performances.
Une bonne connaissance des bases de données relationnelles et l’habitude d’écrire du SQL. Nous utilisons PostgreSQL.
Vous avez déjà travaillé sur des systèmes orientés événements. Nous utilisons Kafka et AMQP.
L’habitude de collaborer avec d’autres personnes sur du code (tests, revues, intégration continue, contrôle de versions, documentation).
L’envie de faire ponctuellement un peu de développement front-end, pour donner forme à vos données et permettre à vos collègues d’en saisir par le biais d’interfaces simples.
De l’empathie pour les personnes qui utilisent ce que vous créez — vous aurez régulièrement des interactions avec nos banquiers et nos clients.
Un bon niveau d’anglais à l’écrit — notre documentation est en anglais.
Note : vous n’avez pas besoin de posséder 100 % des compétences listées ci-dessus pour nous écrire. Si vous pensez avoir la plupart des qualités requises pour ce poste, à l’exception d’une ou deux, écrivez-nous quand même. Et si une petite voix vous dit que vous feriez mieux d’attendre, ignorez-la et envoyez-nous votre candidature malgré tout. Les personnes qui travaillent chez Memo Bank ne cochaient pas toutes 100 % de nos cases au moment où elles nous ont écrit. Elles ont simplement tenté leur chance en se disant qu’elles feraient de leur mieux si elles étaient prises. Vous êtes sans doute dans le même état d’esprit, alors allez-y.
Comment postuler
La candidature
Envoyez-nous votre CV (ou votre profil LinkedIn) et un texte (en français ou en anglais) nous expliquant pourquoi vous souhaitez nous rejoindre. Nous n’attendons pas une lettre de motivation formelle. Parlez-nous plutôt de ce que vous pensez pouvoir nous apporter et de ce que vous aimeriez recevoir en retour. Sans lettre de votre part, nous ne pourrons pas statuer sur votre candidature. Nous avons besoin de connaître vos attentes pour savoir si vous pourrez vous épanouir parmi nous. Vous allez peut-être nous trouver exigeant(e)s sur ce point, mais vous n’avez pas idée du nombre de candidat(e)s qui font l’impasse sur la lettre de motivation.
Les entretiens
Voici ce à quoi vous pouvez vous attendre si votre candidature est retenue :
Premier entretien téléphonique avec notre équipe de recrutement (45 minutes) ;
Test technique à faire chez vous à votre rythme (1 heure de travail environ) ;
Entretiens avec des membres de différentes équipes par visioconférence (3 heures).
Memo Bank est membre du collectif IDEA pact, une communauté dont les membres s’engagent à favoriser l’inclusion, la diversité, l’équité et l’accessibilité en entreprise — dès le recrutement. Nous avons à cœur d’offrir un environnement de travail inclusif, c’est-à-dire un espace où chaque personne peut exprimer son individualité de manière authentique, sécurisante et valorisante. Nous sommes convaincu(e)s que c’est la diversité de parcours, expériences, cultures et perspectives qui fait la richesse d’une équipe, et le succès d’un projet. Nous avons construit un processus de recrutement basé sur les compétences, dont vous trouverez le détail sur notre blog. Si vous avez besoin d’un aménagement au cours de l’une de ses étapes, faites-le nous savoir dans votre candidature ou lors de votre entretien téléphonique.