Senior Javascript Front-end Engineer - remote

Posted 3 years ago  • Paris, France

Leveraging your experience in building and maintaining complex business applications, you will participate in the development of both SDKs and user interfaces.

We are looking for someone who is eager to:

  • Collaborate with other developers to ship new features
  • Be in charge of the overall architecture of applications you build
  • Ensure that we have proper tests and structure to move quickly without breaking everything
  • Share your knowledge of front-end 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


What we are looking for

  • Solid knowledge of JavaScript
  • Experience with modern JavaScript tooling and libraries
  • Experience with front-end applications in React
  • Experience with e2e testing
  • 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 building SDKs
  • Experience with mobile development (iOS or Android)
  • Experience with TypeScript
  • Experience with AMP

What will you do?

Our SDKs provide customizable UI elements that can be used to collect user consent on websites and apps. They allow companies to easily deploy consent collection workflows without re-building every element of the user interface. We have SDKs for multiple platforms: Web (desktop and mobile), Mobile (Android and iOS), TV (Android TV and tvOS), AMP, and Unity. Our Web SDK uses Preact and Redux Zero for state management.

Since our SDKs are integrated on many websites and applications, we take testing seriously, and we always make sure all new features are covered with unit and E2E tests before we ship them. The Web SDK uses Jest for unit tests and TestCafe for E2E tests.

Even though this role is for the Web SDK, you will have to work with different wrappers on top of it and be able to understand how those pieces work together as well as how they impact each other. You will maintain documentation for new features and/or any updates on regulations. You will also work directly with Google and other partners on integrations and regulations.

Want to try our product out and see how our API looks like? You can check out our documentation here: https://developers.didomi.io/cmp/web-sdk/getting-started

How do we build our products?

We have adopted the micro-frontends architecture for the dashboard used by our clients to configure and interact with our products. Each team has the freedom to pick a framework (Angular/React) to create an independent SPA and develop the part of the web application they required. All these SPAs use our UI library and get plugged into the Shell.

For the backend, we have multiple services (APIs and Lambdas) written in JavaScript and TypeScript. We leverage PostgreSQL and DynamoDB as our main databases and manage our infrastructure with Terraform and Cloudformation. The principles of infrastructure as code are very important to us, and we commit everything, including KMS-encrypted secrets. Our most important services have 100% code coverage, and we deploy our pipeline runners on GCP on a Kubernetes cluster.

We process hundreds of millions of requests per day and are building our analytics platform on Kinesis Firehose, AWS S3, EMR jobs, and TimescaleDB to provide performant analytics for our clients. Internally we use Athena and Redash.

We rely on a multitude of AWS/GCP 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 the 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, create a post-mortem and learn from our mistakes.


Recruitment Process

  • An intro call with a Tech Lead or the CTO
  • A code challenge to build a simple SPA. This is used as the basis of discussion for the next step. You can find our challenges on our GitHub page (https://github.com/didomi/challenges/tree/master/frontend). We also accept suitable open source projects in place of the challenge.
  • A 1h code review session with 3-4 Didomi engineers
  • A set of 1:1 30-minute calls with the CTO, engineers, and (occasionally) a product manager

We understand you already have a job, obligations (and maybe a personal life!) so we'll work with you to make sure it doesn't take up too much of your time while still providing a good basis for a very concrete discussion.