Author: Criteo Tech

Grab ETW Session, Providers and Events
This post of the series shows how to easily listen to CLR events with the TraceEvent package. Part 1: Replace .NET performance counters by CLR event tracing. In the previous post, you saw that the CLR is emitting traces that could (should?) replace the performance counters you are using to monitor your application and investigate when…

Announcing the Criteo AI Lab
We are pleased to announce the launch of the Criteo AI Lab (CAIL), a new chapter in our journey on improving performance in computational advertising. CAIL joins together Criteo Research with the Machine Learning Platform Engineering team, bringing together two main arms of R&D at Criteo. Typical configurations of research labs treat it as a…

Replace .NET performance counters by CLR event tracing
This post of our new series shows why performance counters might not be the best solution to monitor your .NET application and why the CLR events will definitively be a better solution. Introduction At Criteo, each .NET application provides custom metrics to monitor deviation and trigger alerts. This is the first line of defense against misbehaviors. The…

Making Criteo Functional
Criteo uses a lot of Scala in its code-base. This originally started by experimentations with big data jobs and data science scripts, but quickly it became evident that Scala would be very useful for application development too. At the beginning, like in most companies, it was first used as a “shorter Java”. But eventually, as…

Extending the new WinDbg, Part 3 — Embedding a C# interpreter
In part 1 and part 2, we’ve seen in detail how to customize the WinDBG UI as we see fit. This time, we’ll apply this knowledge to cover a very specific use-case: running C# code as script directly inside of WinDBG. Why would you want to do that? If like us you often use ClrMD during…

Machine Learning Model Deployment
Web-scale ML: Learning is not the (only) point Machine Learning (ML) is all in the news these days to the extent that even government agencies are taking note. Behind the fanfare, ML has been playing a key role in many major businesses for years (e.g. search engines, online advertising, recommendation systems, machine translation, etc. ). At…

Hashcode 2018 Report
How to make it to the top. This year we took part in the Google Hashcode competition. This is a yearly competition where teams of 2 to 4 participants have to solve a real-life optimization problem. It starts with a 4 hours online contest, with thousands of teams participating worldwide. The top 50 teams then move…

Performance Counters Hell
On Windows, performance counters are the building blocks of most monitoring dashboards. When you need to corelate one counter with another counter, what could possibly go wrong? Let’s take an example: you have two instances of an application running such as two worker processes w3wp.exe spawned by IIS to run your application and you need to…

Aujourd’hui je code!
Teaching girls to code The last day of November 2017 was a special day: about 40 students came to visit Criteo, discover our company and learn to code with close monitoring from experienced programmers. Why holding “Aujourd’hui, je code!”? At Criteo, we are coders and we thoroughly enjoy the creativity that computer programming unlocks. Programming is a…

Extending the new WinDbg, Part 2 — Tool windows and command output
In the first part of the series, we saw how to extend the new WinDbg add a button to the UI, execute, and listen to commands. This time, we will push things a bit farther, and we’re going to add history and multiple editors support. The history feature will allow you to recall an old…










