Engineering
-

How We Cut HAProxy Fleet GCP Cost in Half by Moving from N2D to C4D
When you run a large production footprint in Google Cloud, changing a VM family is never just a hardware refresh. In our case, HAProxy sits on a critical path of the platform, serving as part of the traffic layer that hundreds of downstream systems quietly depend on every day. That means even a seemingly straightforward…
-

Readable Unit Tests: make tests you actually want to write (and read)
You’ll read this test five times more than you’ll write it. Future-you will thank present-you for mocking it readable. This article distills and expands the talk I gave internally at Criteo: Readable Unit Tests. It’s aimed at developers who know unit testing but avoid it because tests feel hard to write, hard to maintain, and — let’s…
-

AuthZilla, Rethinking Authorization For The Modern Era
Authorization is a cornerstone of the Identity and Access Management (IAM) stack. Yet, despite its critical role in securing digital systems, it suffers from a lack of standardized mechanisms, protocols, and formats to communicate authorization-related information across platforms. This gap has real consequences. According to the OWASP Top 10, Broken Access Control is the #1…
-

Introducing AppChecker: The Guardian of Software Quality at Criteo
In a world where distributed systems have become the norm and development cycles are accelerating, software quality can no longer be left to chance: it must be measured, verified, and integrated into the daily work of teams. At Criteo, this requirement is even more critical because services are numerous, interdependent, and essential to the proper…
-

Building an Internal Developer Portal: Insights from the Journey So Far
At Criteo, the Platform department in R&D provides the set of common technical building blocks used to build all Criteo products and shared services. The main users are all the software engineering and analytics teams across Criteo. Over the past few years, the Platform teams have made significant strides in enhancing self-service capabilities to improve…
-

Importance of Graceful Shutdown in Kubernetes
Have you ever deployed a new version of your app in Kubernetes and noticed errors briefly spiking during rollout? Many teams do not even realize this is happening, especially if they are not closely monitoring their error rates during deployments. There is a common misconception in the Kubernetes world that bothers me. The official Kubernetes…
-

Enhancing Service Reliability with Feature-Based SLOs: A Comprehensive Approach
In recent years, our focus has been on defining Service Level Objectives (SLOs) for HTTP API endpoints. While this approach has proven beneficial for development teams, it has also had less impact on external customers and product teams. Users typically expect SLOs to be associated with features rather than individual endpoints or services. Communicating the…
-

DevXDays’23 — How to have fewer incidents with Hexagonal Architecture
A new article from the Criteo Developer eXperience Days 2023 edition Hexagonal Architecture is a 20-year-old pattern ideally suited for implementing and maintaining APIs. Its primary objective is to completely isolate the core business logic from external dependencies, utilizing “ports” and “adapters” as connections to the outside world. At Criteo, several teams have adopted this…
-

BigDataFlow: Continuous Delivery of data pipelines
A new article in the Criteo DevXDays series. You can find all the articles about Developer Experience at Criteo here. Data at Criteo is a core asset and the source of reports we provide to both audiences, external and internal. We are talking about a massive amount of data daily and need a proper workflow…
-

PETs in Advertising: Scenarios for Trusted Execution Environments
Introduction In our first article, we introduced and compared in a high-level manner two privacy-enhancing technologies (PETs) that are currently being investigated by major browser vendors [1,2] (e.g. Google Chrome & Mozilla Firefox) to address advertising use cases while meeting privacy guarantees. Our second article focused on detailing how some key advertising use cases such…
Fabian Höring & 2 others
