An Expert Community Where Every Voice Matters


Join Us

Highlights of Devoxx 2022


Devoxx is over and yet we already miss it! It was 3 intense days of meets, talks and fun! Devoxx is one of the biggest developer conferences in the Paris area with over 3000 attendees per day coming from Paris and all over the country. This conference is almost exclusively in French but some talks are in English.

Since 2015, Devoxx is held in Palais des Congres in Paris, a very nice venue with a big amphitheater able to hold more than 800 people at once and talks being transmitted to other rooms. We were approximately 15 engineers attending the conference alongside 15 more Criteos from other parts of the business. Here is what we experienced during these 3 days. It felt good to live inside this energy again, sometimes with and sometimes without mask on.

We had 3 types of talks

  • The technical stuff (How to use the latest functionality in Java? How to use this DB type? How does Ethereum work?)
  • The implementations (How did we solve this particular scaling issue in our company? Why did we do this particular choice of technology in our team?)
  • The people-centered things (How to manage your career? How to build a good team? How to work better together? How to build diversity?)

There was also hands-on activities that lasted half a day (like “How to split your monolith?”). You can check the full program here.

One big theme in this year’s edition was the rise of concerns related to the ecological impact of our line of work. We don’t realise it because our computers don’t emit CO2 but well, in a way they do. And they have other sorts of ecological impacts like for the components inside.

More below in this article, in which we picked each a topic we liked and did a small recap of it.


Criteo booth

Devoxx is the time to make new contacts and Criteo was in place welcoming participants that wanted to know more about our work.

Devoxx is one of the must-attend conferences of the ecosystem. And Devoxx 2022, the 10th edition after a 2 years break of the full edition, was THE conference not to be missed.

In 3 days, we were able to talk to hundreds of attendees who came to learn, discover, get information, network, and several things stood out:

The importance of corporate culture

During our exchanges, the questions that came up frequently were mainly centered around the company culture. After various discussions, we realised that what the participants are looking for is mutual aid, team spirit, benevolence, and training — rightly so.

https://careers.criteo.com/who-we-are#CULTURE

The need for flexibility in terms of telecommuting

Within 5 minutes of each discussion, one question was recurrent: Where are your offices located? And when we answered that we have offices (in France) in Paris, Grenoble and Bordeaux, but that our employees can work from anywhere remotely, many people answered that this should be the new norm following Covid.

We agree on this, even if we love to meet to spend days exchanging and working in a group.

Working at Criteo | Experience Criteo | Careers at Criteo

Experience Life at Criteo. Our workforce has grown because we make taking care of our employees a priority. Take a tour…

careers.criteo.com

The essential character of autonomy and the balance between personal and professional life

When we asked the participants how they had lived through the Covid crisis, many answered that it had gone relatively well.

The most challenging part is now. The post-Covid period is hard because you have to reconcile your professional life with outings, sports…

For 2 years, many people have worked from home (because of Covid) and have constantly pushed back their work schedule.

And so, little by little, you have to come back to a life balance, which is not necessarily obvious if you are not well accompanied.

In any case, we were pleased to participate in Devoxx. I think the smiles on the faces of the team speak for themselves.


The Talks

Victor’s favorite: “Comprendre les enjeux de consommation de resource et d’énergie dans le secteur numerique” by Quentin Adam & Pierre Beyssac

This talk was about energy consumption in the digital sector. The speaker deconstructed many popular beliefs such as “deleting your e-mails saves carbon”, or why we shouldn’t switch off the box when we going on holiday. The main idea is that the biggest cost is on the production side: once a device runs we should try to use it for the maximum amount of time. As a consequence, switching off a box is wrong because it diminishes the global lifetime of the product, same for the emails since a database full or empty consumes the same energy.

The speaker wanted to show us that our job is not destroying the planet (The digital sector is 3% of global energy consumption vs 30% for transport) and that the new advances in the sector contribute to reducing the carbon footprint of other sectors (fewer commuters since people can now work from home with zoom, etc…).

Finally, for the speaker, there are a few simple things people should do to reduce their carbon footprint: not throwing away old devices but putting them on the second-hand market, working more often from home, and compiling the binary we use for our own machines.

If you are interested, you should have a look at La Fresque du Numérique

Belkacem‘s favorite: “Senior dev and after?” by Hugo LASSIEGE & Dimitri BAELI

This talk was about the career progression of Senior Developers, because often times developers stagnate at the Senior contributor level. After the Senior level, a dev can either move to the manager track or keep going on the individual contributor track but it can be very complicated.

Basically the idea is that we should target to have more impact for the company, for example the ROI-side in terms of added functionalities. The tech part of it is only the beginning. An engineer, to grow and get pass its role of a developer, must engage conversations with clients and colleagues. He must be aware of the priorities in his line of work and the tech part is only a tool for success that he must — of course — master.

To unlock the next level the engineer should work on soft skills:

  • Listen to users
  • Measure projects
  • Participate to setting up new goals
  • Convince a non-technical audience that your choice is the good one

Finally they describe a framework for leaders:

  • The company should act as 1
  • Aim to improve
  • Focus on actionable items
  • Disagree and commit — avoid I-told-you-so-s.

Just like a mason uses masonry to build houses, we should use software engineering techniques to build products to create impact.

Don’t be the brilliant jerk. — Girish Mathrubootham, CEO of Freshworks Inc.

Fernando’s favorite: “Why tech companies fail to attract and retain women!” by Marcy Ericka Charolloi

In this talk, Marcy Ericka Charollois explains how the habitus associated to the majority group (generally composed of cis white men) are at the center of several biased behaviors towards women, preventing company culture to become more inclusive. She then went through a list of simple actions to attract women to the company:

  • Be clear about the job description. For example, please avoid name-dropping tools and skills that are not really in the scope of the job. This can create confusion and be intimidating.
  • Use gendered wording in jobs descriptions
  • During interviews, be as clear and precise as possible, and present concrete facts about the job

And actions to retain them:

  • Build an inclusive culture in the company so you can talk about it 😉
  • Encourage women to speak and to become role models
  • Provide a supportive environment: psychological support unit, well-equipped restrooms, mother-friendly environment, flexible work schedule, etc.

Sketchnoter Amélie Benoit did an awesome summary of the talk (in French):

Source: Amélie Benoit

Herve’s favorite: “Gitpod: la fin des frictions inutiles pour contribuer à un projet OSS?” by Jean-Marc MEESSEN

In this talk Jean-Marc Meessen focused on one typical developper issue : As a user of an open source tool , we can sometimes figure out a simple bug to fix or an easy improvement. With the motivation to give back to the community, we start to open up Github source code, clone the project and …. struggle during multiple hours to set up a working developper environment ! Eventually if the set up time is too important most people will sadly lose their motivation and will not submit their change. Indeed you don’t want to spend 2 days of configuration for a 1 hour change.

How to solve this developer environment issue ?

One solution suggested by this talk is to use “developper environment as code” to be able to specify like a dockerfile a portable environment with needed git project to clone, tools, dependencies, initialisation tasks etc. And so a developper can just instantiate a dedicated and personalised session, do the change, make sure tests and compilation are green and simply push the change to review.

Demonstration of this workflow was done using gitpod.io SaaS and jenkins.io website source code that is containing a .gitpod.yml file to configure an environment.

As a result after one click, a totally usable VSCode editor in your browser with the website code with its console and recommended tools to build and run it ! And the demo only scratched the surface of the Gitpod tool as you can plug your own VSCode or intellij with your shiny personal configuration or also self host Gitpod to use it with your internal company source code.

An inspiring talk that shows lot of opportunities and a bright future for online integrated development environments especially improving developers happiness that can simply … just code !

Antonin’s favorite: “Save the date!” by Emmanuel REMY

Dates are a tool that we use in our daily lives as software engineers (saving log times, edits, creations…) but also as human beings of course. Dates are everywhere but we can have various ways of writing or speaking about them, the simplest example being the date 03/04/2022: 4th of March or 3th of April?

One of the key takeaways of Emmanuel’s talk was to underline the need of using the tools around date and not reinventing them.

Date usage have been formalized by the ISO 8601 norm and the RFC 3339. This should be how dates should be handled and stored, using the various implementations every programming language provides.

For example, dates should not be stored:

In summary, this talk was very interesting and raising awareness about the importance of representing dates properly. And please, don’t launch any processing between 2am and 3am, you could have a bad surprise when you go from summer time to winter time or the other way around!

Benjamin’s favorite: “Art et entropie : du chaos dans ton frontend” by Thibaud Courtoison

Chaos engineering consists of deliberately breaking a component in a controlled manner, and seeing what happens. It’s an established practice on the back end. But what about the front end? An application might be perfectly robust, but if the front end fails, it quickly becomes unusable.

Speaker Thibaud Courtoison presented a number of areas in which chaos engineering might help on the front end, from HTTP requests, to localisation, to browser history. Best of all, he’s developed an npm package and a Chrome extension to help us apply all the techniques he talked about!

I am looking forward to trying some of these techniques in the near future with my team next time we need to stress-test a new feature.

Raphaël’s favorite: “Remèdes aux oomkill, warm-ups, et lenteurs pour des conteneurs JVM” by Brice Dutheil & Jean-Philippe BEMPEL

This university was about Java Virtual Machine (JVM) memory consumption. 
The JVM uses memory beside the infamous Xmx which control the maximum Heap size. We learned about compiler, garbage collectors, meta-space and other data-structures used by the JVM that can represent a significant amount of memory in addition to the heap and the tools to investigate those. 
Thanks to this knowledge we can avoid underestimating the RSS memory used by our JVMs, better configure them as well as the containers where we launch them.

S. C.’s favorite : Choosing Doctolib’s database by Bertrand PAQUET & David GAGEOT

Two leads from Doctolib explained their process for choosing their current database.
Their architecture vision is one of a “boring architecture”: They don’t like changing paradigms when unnecessary, and like to keep everything monolithic: one single PostgreSQL database, with a table containing 7 billion rows.
So far, they’ve been using the biggest Aurora machines from Amazon to run their single writer (96 cores, 68 Go RAM). Aurora enables them to benefit from multiple advantages :

  • The distributed storage layer that AWS has rewritten on top of PostgreSQL
  • Auto-scaling (one new machine can be spawned and ready to use in under 8 min (compared to the 14h it could take to load the schema and replicate the data without it)
  • Automatic failover
  • Very low replication lag (around a ms between when new data has been written and when all the readers have the updated data)

Doctolib’s team has a very specific expertise on PostgreSQL, having developped an applicative layer so that developpers don’t have to worry about reader/writer issues. They also don’t have any DBAs within their team, so nothing low-level and very specific to PostgreSQL has been developped.

Their monthly load test consist in cloning their prod and subjecting it to twice the traffic they got that month.

Due to the sudden traffic uptick they’ve had to handle during the COVID-19 vaccination, they’ve had to consider upgrading from their single writer on Aurora, to a bigger database compatible with PostgreSQL. Here are their findings:

Spanner: by Google

  • Pros: distributed storage, sharding, auto-scaling, high availability, good for handling millions of small requests
  • Cons: can only handle 20 joins (would require a big refactorization on their side), some queries take 1000 times longer than their single PostgreSQL on Aurora (20ms to 20sec), vendor lock-in on Google infrastructure

CitusMx: by Microsoft

  • Pros: automatically distributes connections (no coordinator), made for PostgreSQL, auto-sharding and live rebalancing, exists as open-source too (with less features)
  • Cons: joins are forbidden between local and distributed storage => requires a refactorization, better for analytics than transactional usage, no auto-scaling, lock-in Azure infrastructure, only enables them to do 150% more on their traffic

Yugabyte : according to them, this is basically Spanner without distributed storage

  • Pros : fully compatible with PostgreSQL, multi-cloud native (great for Disaster Recovery)
  • Cons: no auto-scaling, early stages, expensive

The result of their analysis was that so far, the Doctolib team feels like their monolithic PostgreSQL suits them and they’d rather continue developing their expertise on it, such as starting to use Foreign Data Mappers for instance.


Devoxx 2022 held so many interesting talks and speakers, it was hard to summarize all of them but we hope you enjoyed some of our insights! Head over to the Devoxx site for more information.

THANK YOU to the organisers for this event — You will see us again next year at our booth and at the conferences! Until next time!


Interested an being on the other side of our stand next year? Check out our open roles!

Careers at Criteo | Criteo jobs

Find opportunities everywhere.

careers.criteo.com