The LVMH group brings together 70 exceptional Houses, which create products that convey savoir-faire and preserved heritage while remaining firmly anchored in modernity. Operating in five different sectors – Wines & Spirits, Fashion & Leather Goods, Perfumes & Cosmetics, Watches & Jewelry and Selective retailing – the Group is the ambassador around the globe of the ultimate refinement in Western “art de vivre”.
A world leader in luxury, LVMH has enjoyed strong commercial momentum since its creation in 1987 and with a retail network of over 4,370 stores worldwide is now working actively to grow software development as a new metier within the group.
Our backend systems are written using modern languages such as Scala and Node. We use statically typed immutable data structures to ensure correctness of state at all times. Our APIs are documented with Swagger that is generated by the same code that handles the requests, ensuring that the contracts we publish actually reflect the systems they describe. This allows us to generate client side SDKs for a given service with confidence, minimising risk of error and enabling rapid iterations as APIs evolve.
We package our services as Docker containers facilitating local development and testing with the added benefit of portability across platforms. We currently deploy to AWS using Kubernetes to manage dynamic scaling of our services in response to load whilst ensuring efficient management of resources.
Our backend systems are instrumented with events published to InfluxDB which in turn provides data to Grafana for sophisticated and detailed monitoring and alerting. This allows us to visualise the internal state of our services and be alerted to errors within seconds enabling rapid response to production issues.
We also publish logs to a centralised logging system, Kibana, which allows us to get detailed information should we need to investigate an error. All requests are tagged with a trace-token allowing us to get a complete picture of an issue facilitating rapid diagnosis and resolution.
On the front end we write native iOS code using Swift4, and our dependencies are managed using cocoa pods. Our applications are styled using our own Design System, which we’ve called Fabric. This allows us to export styles directly from Sketch to Xcode to compiled iOS binaries allowing changes to the design to be applied to an application rapidly.
We write tests at every level of the system. Unit tests verify business logic at a fine-grained level. Acceptance tests ensure we’re delivering features that actually meet the requirements. Integration tests then allow us to prove the overall system ensuring we catch changes to external systems early.
We collaborate using Github which provides best in class version control and tooling including code reviews. We work in an Agile way that focuses on communication as the main tool for getting things right first time.