-

ClrMD Part 3 — Dealing with static and instance fields to list timers —
This third post of the ClrMD series focuses on how to retrieve value of static and instance fields by taking timers as an example. The next post will dig into the details of figuring out which method gets called when a timer triggers. As an example, the associated code lists all timers in a dump…
-

RyuJIT and the never-ending ThreadAbortException — Criteo Labs
When you see this, you know for sure that something is wrong with a server: This chart counts the number of first-chance exceptions thrown by the server. We have here an average of 840K exceptions thrown per minute, or 14K exceptions per second. That’s a lot, especially considering that this server only processes about 400…
-

ClrMD Part 2 — From ClrRuntime to ClrHeap or how to traverse the managed heap
This second post in the ClrMD series details the basics of parsing the CLR heaps. The associated code checks string duplicates as sample. Part 1: Bootstrapping ClrMD to load a dump. From ClrRuntime to ClrHeap or how to traverse the managed heap In the previous post, we have boostrapped the code needed to load a memory dump…
-

ClrMD Part 1 — Going beyond SOS — Criteo Labs
A little bit of context Thousands of servers are closely monitored at Criteo and when inconsistent behaviors are detected, an investigation is started based on these deviant machines. The level of details provided by the monitoring is close to what is provided by performance counters. Our team is using them to guess where the problem could…
-

Criteo at NIPS 2016
As a Gold Sponsor of the NIPS Conference, Criteo was more than excited to be part of the 30th Annual Conference on Neural Information Processing Systems in Barcelona from the 5th to the 9th of December 2016. This conference is THE conference for Criteo researchers, data scientists and engineers working on machine learning on a…
-

Machine Learning in the Real World
Criteo is organizing the Machine Learning in the Real World workshop. This workshop aims at bringing together people from the industry and from academia to better understand which machine learning algorithms are used in practice and what we can do to improve them. Anyone who is involved in applying machine learning on real world data is…
-

Open Source at Criteo
Criteo is committed to contributing to the open source community. We use ample open-source software internally (Cassandra, Chef, Couchbase, Gerrit, GitLab, Graphite, Hadoop, Kafka, …). We publish the tools we believe to be of general interest, and contribute bug fixes and improvements to the open-source software we use. Our projects are split between two GitHub entities:…
-

Interviewing at Criteo: Just do it!
Being interviewed for a job is always a stressful experience. Trust me, even for a recruiter, it is tough! It takes courage to voluntarily go out there to be challenged and evaluated. As an R&D Recruiter, I often hear candidates stating : “ the process is too long, I am busy”, “ I am not good enough…
-

Criteo at RECSYS 2016 — Criteo Labs
Criteo was in full force at the 2016 RECSYS edition in Boston. With 10 people from our Paris office and 1 from Palo Alto, it was the place to be for the Reco team. The researchers were also in the spotlight with 2 Criteo papers published, (Thanks Elena, Flavian & Yu-Chin!) We also had members…
-

Product Recommendation at Criteo
As we said time and again, performance is everything. The performance of our ads depends a lot on the content we put in them. We’ve found that personalized product selection makes for better ads: people tend to click more and buy more when we display content that’s tailored for them specifically. We’re able to gather…
