Être développeur chez marmelab
Chez marmelab, le rôle du développeur n'est pas que de coder, mais plutôt de transformer les idées de nos clients en véritable produit. Pour ce faire, il s'appuie sur des technologies de pointe, un processus agile, une communication permanente avec le client, et une responsabilité complète de la partie technique du produit.
Une stack à la pointe
Nous choisissons toujours l'outil le plus adapté au besoin de chaque client. Et même si nos technologies de prédilection sont aujourd'hui orientées JavaScript full-stack, nous avons également des projets en Symfony, Python et Go.
Nous prenons au sérieux les évolutions du web : nous réservons un temps dédié à la veille afin de tester les nouvelles approches, les nouveaux langages, ou les nouvelles librairies les plus prometteuses. Nous n'hésitons d'ailleurs pas à utiliser des technologies récentes dans nos projets en production, quand elles apportent un vrai bénéfice client. Ainsi, nous avons intégré Node.js en 2012, d3.js en 2013, React.js en 2015, Serverless en 2016, GraphQL en 2017, TypeScript en 2018. et ça continue !
Ici les passionnés de technique web et mobile ont de quoi trouver leur bonheur.
React
Node.js
GraphQL
PostgreSQL
AWS
De l'agilité et de la communication
Pour livrer des fonctionnalités qui apportent beaucoup de valeur, nous favorisons un contact direct et permanent avec le client et ses équipes métier, fondé sur les méthodes agiles.
Nous organisons les développements en sprints courts, dont le contenu est planifié avec le client toutes les 2 semaines. Chaque nouvelle fonctionnalité est conçue en collaboration avec le client, qui affine sa vision au fur et à mesure que son application se construit. Et les retours des utilisateurs, au travers des métriques métier, nous aident à parvenir plus rapidement à des produits efficaces. De cette façon, nous nous assurons que chaque développement réalisé est pertinent et résoud un problème.
Nous faisons un point rapide chaque matin avec le Product Owner côté client, par visioconférence. A la fin de chaque sprint, nous faisons un bilan en face à face. Grace à ces échanges, nous sommes toujours connectés à la réalité terrain. En plus, nous pouvons faire valoir notre travail en le présentant en direct au client.
Responsabilisation et Autonomie
Ici, les développeurs proposent des solutions correspondant aux besoins des clients. Ils choisissent les technologies les plus adaptées en tenant compte du contexte client, avec pragmatisme.
Comme pour tous les développements, ces choix se font en équipe, et sont assumés par tous. Cette autonomie engendre une responsabilisation et une implication forte dans les projets de nos clients. Elle nous permet d'avoir un impact important sur la direction qu'ils prennent.
Nous faisons fréquemment des choix pour nos clients et écrivons nos apprentissages dans notre blog, regardez par vous-même.
Veille technologique
Marmelab se tient a jour des technologies du web et du mobile. Et pour ça, nous allons régulièrement assister à des conférences sur divers sujets, cela fait partie de notre travail.
L'objectif est de s'informer et d'en tirer quelque chose d'utile, généralement sous la forme d'un article publié pour la communauté.
Nous intervenons aussi régulièrement comme conférenciers. Si un sujet vous tient à coeur, marmelab vous encouragera à en parler en public.
Un jour par sprint, nous organisons un hackday. Il s'agit de choisir un sujet technique, sans lien avec le projet sur lequel on est affecté, et de passer la journée à travailler dessus.
Cela peut être un nouveau langage à tester, un outil utile à développer, une méthodologie à étudier. L'objectif est d'apprendre quelque chose, et bien sûr de pouvoir en faire profiter les autres, au travers d'un article ou d'un projet open-source par exemple.
Vous vous voyez développeur marmelab ?
La principale qualité que nous cherchons chez un développeur est l’amour du travail bien fait. Peu importe le langage de programmation que vous maîtrisez. Vous apprendrez à nos côtés les technos du moment, et la bonne manière de les mettre en oeuvre.
Nous recherchons des développeurs qui, au-delà de l'expertise d'un langage en particulier, ont acquis l'expérience de la programmation web en général, et sauront transposer cette expérience dans d'autres langages.
Attention, nous recherchons des développeurs confirmés, avec au moins 5 ans d'expérience. Vous maitrisez notamment:
- Un langage de programmation (TypeScript, PHP8, C#, Java, Ruby, Python)
- Un framework MVC (Nest.js, Symfony, .Net, Spring, RoR, Django), utilisé en production sur un projet d'envergure
- Les architectures API-centric (REST, GraphQL, protobuf)
- Les design patterns (PoEE, DDD, hexagonal architectures, clean code)
- Les tests automatisés (unitaires, d'intégration et end-to-end)
- Les aspects Front (HTML, CSS, DOM, data fetching, webperf, animations, accessibilité)
- Une base de données relationnelles (PostgreSQL, MySQL, MSSQL, Oracle)
- Une base NoSQL (ElasticSearch, Redis, MongoDB, Cassandra)
- Linux et Docker
- L'optimisation de performance (profiling, cycle de vie d'une page web, gestion mémoire)
- Le Software craftsmanship (TDD, Refactoring, CI/CI, code reviews, propriété collective du code)
- La résolution de problèmes complexes (debug, algorithmes, structures de données)
- Les méthodes agiles (SCRUM / KANBAN / Lean Startup)
- Le travail en équipe
- Le français et l'anglais