Highlights of Snowcamp 2022

Criteo R&D
Criteo Tech Blog
6 min readMay 5, 2022

--

Authors: Antoine Le Marie, Arnaud Becquet, Belkacem Lahouel, Georgi Ajaeiya, Luiza Cicone, Pierre-Emmanuel Boiteau, Vincent Michau

Last month, 7 engineers from Criteo attended the SnowCamp in Grenoble, 2 of us coming all the way from Paris. SnowCamp is unique concept because it’s a 3-day technical conference (Workshops on Wednesday and Talks on Thursday and Friday) with a bonus day in the snowy mountains around Grenoble on Saturday. This 6th edition gathered more than 800 attendants coming from various backgrounds (freelancers, companies, researchers etc.) and from all around the country.

Given the past years’ sanitary restrictions, it was awesome to finally attend a non-virtual conference once again. It allowed us to talk to previous colleagues and also meet new people and talk about technologies, organisation and, of course, about Criteo. To attend the event you were required to have a sanitary pass, masks were worn at all times (except in the photo below ^^) and there were limited seats for conferences and for lunch.

During the 2 days of talks, there were 4 different tracks in parallel with diverse topics regarding: Architecture, Web, Machine Learning, Design, Security, Performance, etc. Here is the full agenda if you want to know more. Every one of us chose the most appealing conference each time, so we could cover more than one track and we could discuss our impressions during the breaks.

From left to right: Arnaud, Georgi, Pierre-Emmanuel, Luiza, Antoine, Vincent and Belkacem

Let’s dive into our “coup-de-coeur” talks, it’s a good preview for the full event and maybe it will inspire you to join us next year.

Antoine’s favorite: “Y a-t-il un copilote dans mon IDE?”

There were a many great talks but my favorite was Tiffany Souterre’s demonstration of the VSCode Copilot plugin. The demo gods were angry that day and Copilot was unfortunately down for the demo but Tiffany bounced back really well and it made for a very nice demo with a good mix of fun and informative content.

Copilot is a plugin for VSCode that leverages AI to make advanced “autocomplete” suggestions from finishing the sentence you started to write (when writing documentation or comments for example) to writing full algorithms from a few comments. the GitHub page of the project gives a good overview of the possibilities the plugin opens GitHub Copilot · Your AI pair programmer.

The project is currently in technical preview but if I get a chance I’d definitely like to give it a try. Some questions were raised concerning the intellectual property of the code that Copilot suggests (can you use and monetise it) and the code that Copilot reads from your project (how much is shared, who can access it and what can they do with it). That would definitely something to consider before using it at Criteo.

Pierre-Emanuel’s favorite: “Notre recette de l’équipe parfaite”

That was my first time to the snow camp and I loved it. A lot of interesting topics, with a good balance between technical and soft skills.

I appreciated a lot “Notre recette de l’équipe parfaite“, thanks to the funny presentation of Estelle Landry and Yvonnick Frin which gave a good example of an organisation that sounds to work. Here are the slides if you want to know more.

Arnaud’s favorite: ”Chaos in your front-end”

Chaos engineering is the discipline of experimenting on a software system in production in order to build confidence in the system’s capability to withstand turbulent and unexpected conditions. [https://principlesofchaos.org]

The idea behind the talk of Thibaud Courtoison was to apply this approach at front level. He experiments and demonstrate several way to put Chaos in a frontend application as network failures, random user actions and pseudo-localization.

Benefits of this approach are certain for the reliability of frontend applications which are more and more critical, complex and so subject to failures.
Thibaud releases a dedicated npm package: GitHub — Errorname/chaos-frontend-toolkit: A set of tools to break your web apps and, in doing so, find ways to improve them and a chrome extension: Chaos Frontend Toolkit to ease the chaos testing process for developers.

The remaining question is how to automatise chaos testing to ensure the robustness of our applications to unpredictable failures. This topic which will for sure become a threading topic in the software industry in the coming years.

Belkacem’s favorite: “Cognitive bias applied to project management”

Sylvain Coudert presented the idea is that we cannot trust our brains for many tasks due to cognitive bias. Our brains process information too fast and use cues we don’t even know about that may distort the reality. This also happens during coding:

  • we always take more time than planned
  • we tend to overestimate our capabilities
  • we tend to follow in-place traditions and we don’t want to change even if

The talk gives us ideas about how to counter those cognitive biases to be more effective in our work.

Georgi’s favorite: “Digital Decentralised Identity and the right to be yourself”

The idea of having a decentralised ID over the internet is a way that allows people to don’t rely on big tech companies to be identified over the Internet. The users will have full control over their ID with a well defined security relying on the state-of-the-art cryptographic processes.

In a new article I will dive deeper in the presentation by Antoine Cailly and Adrien Wattez.

Luiza’s favorite: “Web-Types : des types pour vos templates HTML !”

One of my favorite’s was Gaëtan Maisses talk on Web-Types. I may be impartial, as I know Gaetan from a previous job and we shared more than one line of code and one beer together.

Web-types is a JSON format introduced by JetBrains ❤ in order to support advanced code completion and validation for modern front-end libraries in the IDEs (see on Github). If you are working with Angular, all these features were already supported for a long time in the IDEs, but if you are using Web Components or some new cool-and-hip library, you might want to take a deeper look into this. You can even add or complete the documentation yourself and share it with the community.

Gaetan’s talk was both informative and entertaining, his speech was clear and he did a live coding session (not without the -un-expected demo effect) to show us the power of WebStorm and Web-Types. Prior to this presentation, we could see that he did a thorough research, and even chatted with the main contributor on the repo, Piotr.

If you want to know more about Web-Types, here are Gaetan’s slides and the link to the sources.

Vincent’s favorite: “La Clean architecture”

Technologies are evolving quickly, especially in the web during the last 15 years. For big application, the maintenance and evolutivity is key. The goal of an architecture is to gain time during development, make sure what we do is testable and extensible and in our case make sure following evolution are facilitated. “Clean Architecture” comes from a book from Robert C. Martin in 2017 and combines hexagonal architecture, Onion architecture and SOLID.

At Criteo in my team we started a new application using Onion architecture and it was really interesting to be able to take a step back during this presentation, check what matters and which advantages Martin Choraine sees in this way of organising the code and the components.

A big thanks to the whole organisation team (additional :wink: to our former colleague Yohan Lasorsa) and to the sponsors. The event went smoothly with a good vibe, great people, tasty food and a perfect timing!

--

--

Criteo R&D
Criteo Tech Blog

The R&D team building the Commerce Media Platform for the Open Internet.