
Senior Fullstack (PMP)
DidomiPosted 4/28/2025

Senior Fullstack (PMP)
Didomi
Job Location
Job Summary
Didomi is seeking a Senior Fullstack Engineer to join their Engineering team in Paris, France. The ideal candidate will have 5+ years of experience with JavaScript and Typescript, as well as knowledge of back-end applications in Node.js with Feathers or NestJS and front-end applications in React. They will work on the Preference Management Platform, ensuring the development of user-facing web applications built with React, along with their associated backends developed in Feathers and NestJS. The team values quality-oriented mindset, testing, code reviews, and performance considerations. Remote work options are available, and the company offers a competitive salary, travel stipends, and equity in a fast-growing company.
Job Description
Responsibilities :
- Be in charge of part of the architecture of our web applications
- Ensure that we have the right tests and structure in place to make sure that we can move quickly without breaking everything
- Share your knowledge of software development principles and best practices with the team
- Keep learning new technologies and be on the look-out for new ideas that we should try out
- Work closely with product owners to help refine product requirements and convert them into technical specifications and ensure what we are building is feasible and maintainable
Qualifications :
- At least 5 years of experience with solid knowledge of JavaScript and Typescript
- Experience with modern JavaScript and Typescript tooling and libraries
- Experience with back-end applications in Node.js with Feathers or NestJS
- Experience with front-end applications in React, or similar frameworks
- Quality-oriented mindset: testing, code reviews, code quality, etc.
- Awareness of performance considerations
- A passion for simple, maintainable, and readable code that balances pragmatism and performance
Bonus points :
- Experience with AWS, or other cloud providers
- Experience with the micro-frontends architecture
- Experience with the micro-services architecture
- Experience with Snowflake
Recruitment process :
- HR Interview (15 min)
- A technical interview with an Engineering Manager or the CTO
- A code challenge to build a simple API or a SPA. This is used as the basis of discussion for the next step. You can find our challenges on https://github.com/didomi/challenges/tree/master/frontend and https://github.com/didomi/challenges/tree/master/backend.
- A 1h30 code review session and architecture discussion with 3-4 Didomi engineers
- A set of 1:1 30-minute calls with the CTO, engineers, and a product manager
How do we build our products?
- For the frontend, we have adopted the micro-frontends architecture with single-spa for building our user interface.
- For the backend, we have multiple services (APIs and Lambdas) written in Javascript and Typescript. We leverage PostgreSQL and Snowflake as our main databases and manage our infrastructure with Terraform. The principles of infrastructure-as-code are very important to us and, since a couple of years, our only way to manage our resources. Our most important services have 100% code coverage.
- We rely on a multitude of AWS services for building, deploying, serving, monitoring, and scaling our services. We use Gitlab for our code and CI/CD. To manage our issues we use Jira.
Our vision as a team :
- We are building a product and engineering team that is strongly committed to a high level of quality in our products and code. We believe that automation is the key to consistently achieving that along with velocity of development, joy and pride in what we deliver.
- At Didomi we are organized into feature teams and work with 2-week sprints. We do our best to avoid pointless meetings. The majority of the engineering team works remotely from all over the world, the only hard requirement is a 4-hour overlap with CET working hours.
- We rely on automated tests of all sorts (unit, integration, linters, you-name-it!) and continuous integration/delivery to build flexible applications that are able to evolve without breaking. We trust that it enables engineers to focus on the quality of their code and iterate fast without fears of breaking stuff. And when we break stuff, we fix it and learn from our mistakes.