EssilorLuxottica
Three years in R&D: 7 internal applications, shared libraries, and teams given better tools
- Context
- R&D, EssilorLuxottica, Créteil (hybrid)
- Role
- Developer, design and build
- Period
- 2022 to 2025
- Stack
- Angular, Node.js, Express, Docker, Azure DevOps, AWS, Microsoft Entra ID, LDAP
The context
More than three years in R&D at EssilorLuxottica, in Créteil, from 2022 to September 2025. Seven internal web applications built and maintained, two of which I ran single-handedly, from gathering the need to going live. And, in between, everything that serves several teams at once: shared building blocks and tooling.
The subjects
Two projects run end to end
On these two projects I gathered and analysed what users needed, chose the architecture and the technologies, built, shipped, then kept improving from their feedback. Regular conversations with the users rather than a frozen specification.
Applications people want to use
One of the applications was losing its users: raw Angular Material, very long forms, tabs inside tabs inside tabs. The problem was not a missing feature; the interface made you want to close the tab.
I replaced the nested tabs with a side navigation, which gives all the vertical space back to the forms, and rebuilt it on a new design system.
Building blocks shared, not copied
Every application handled its own connection to Microsoft Entra ID and to the LDAP directory, each in its own way. I designed and built a shared authentication service, and a JavaScript library to plug into it without knowing anything about Entra ID or LDAP. Today it serves R&D and the department’s applications, more than ten of them.
Same logic for the other needs that kept coming back from one application to the next, such as PDF generation: one internal library, maintained in one place.
Pipelines rebuilt, not copied over
The migration from GitLab to Azure DevOps was the chance to start from scratch rather than translate the pipelines line by line. Every project follows the same path: tests, build, Docker image, then a script that starts the images on the AWS machines.
Bringing the teams along
A migration only holds if people follow. I organised and ran Git training sessions for around a hundred colleagues.
I also mentored an apprentice: splitting up the work, code reviews, signing off what was done.
Result
- internal applications built and maintained
- 7
- internal applications built and maintained
- users a month after the redesign
- 150 → 250
- users a month after the redesign
- colleagues trained in Git
- ~100
- colleagues trained in Git
What I would propose today
The in-house authentication service answered an internal request. Today I would push for something that already exists: Keycloak or Authentik. Less security code to write, and above all less to maintain. Authentik is, as it happens, what handles sign-in on my own cluster.