Guide recrutement data
Test technique Airflow : ce qu'on évalue vraiment en entretien
Airflow orchestre la plupart des pipelines data. Mais entre enchaîner trois tâches et concevoir des DAGs idempotents, reproductibles et monitorés, l'écart de fiabilité est énorme. Voici ce qu'on évalue.
Data Builder·Juillet 2025·10 min de lecture·Data Engineer
Un bon profil Airflow pense d'abord fiabilité : que se passe-t-il quand une tâche échoue à 3h du matin ? L'idempotence et la reprise séparent les profils solides des autres. Cinq dimensions.
1DAGs et scheduling
Question discriminante
Qu'est-ce que le catchup, et pourquoi la date logique compte-t-elle plus que la date d'exécution ?
- Un DAG décrit des tâches et leurs dépendances, planifiées par
schedule. - La date logique (intervalle traité) pilote la logique, pas l'heure d'exécution.
catchup — rejouer les intervalles manqués ; à activer en connaissance de cause.- Écrire des tâches paramétrées par la date logique pour être rejouables.
2Tâches et dépendances
Question discriminante
Comment structurez-vous les dépendances d'un DAG lisible et maintenable ?
- Operators (Bash, Python, KubernetesPod…) et la TaskFlow API moderne.
- Dépendances explicites (
>>) et task groups pour la lisibilité. - Sensors avec parcimonie (préférer deferrable pour ne pas bloquer un slot).
- Découper : une tâche = une unité de travail claire et rejouable.
3Idempotence et reprise
Question discriminante
Une tâche échoue à 3h du matin puis est relancée. Que doit-il se passer ?
- Idempotence : relancer une tâche produit le même résultat, sans doublon.
retries + délai, et alertes en cas d'échec.- Backfill pour rejouer une plage de dates proprement.
- Écritures atomiques (remplacer une partition plutôt qu'insérer en aveugle).
Signal d'alerte : une tâche non idempotente qui insère sans dédoublonner crée des données en double à chaque retry — un piège classique en production.
4XComs, connexions et secrets
Question discriminante
Comment passez-vous des données entre tâches, et comment gérez-vous les identifiants ?
- XCom pour de petites métadonnées, jamais de gros volumes.
- Hooks et Connections pour parler aux systèmes externes.
- Variables et secrets backend — jamais de secret en dur dans le DAG.
- Passer les gros volumes par un stockage (S3/GCS), pas par XCom.
5Production et bonnes pratiques
Question discriminante
Un DAG est lent, instable ou surcharge le scheduler. Par quoi commencez-vous ?
- Pas de logique lourde au niveau du DAG (parsé en continu par le scheduler).
- Choisir l'executor adapté (Celery, Kubernetes) selon l'échelle.
- Monitoring, SLA et alerting sur les tâches critiques.
- DAGs dynamiques avec parcimonie (lisibilité et coût de parsing).
6Grille par niveau
| Niveau | Maîtrise attendue | Signal GO | NO-GO |
|---|
| Junior | Écrire un DAG simple, operators de base | Enchaîne des tâches, comprend le scheduling | Met de la logique lourde au niveau du DAG |
| Confirmé | Idempotence, retries, backfill, connexions | Écrit des tâches idempotentes et rejouables | Écrit une tâche non idempotente (doublons au retry) |
| Senior | Executors, monitoring, secrets, deferrable | Diagnostique un scheduler surchargé, sécurise les secrets | Fait transiter de gros volumes par XCom |
| Lead | Architecture d'orchestration, standards d'équipe | Définit les conventions de DAGs et la stratégie de reprise | N'a pas de stratégie de reprise sur incident |
Data hiring guide
Airflow technical interview: what we really assess
Airflow orchestrates most data pipelines. But between chaining three tasks and designing idempotent, reproducible, monitored DAGs, the reliability gap is huge. Here's what we assess.
Data Builder·July 2025·10 min read·Data Engineer
A good Airflow profile thinks reliability first: what happens when a task fails at 3am? Idempotence and recovery separate strong profiles from the rest. Five dimensions.
1DAGs and scheduling
Key question
What is catchup, and why does the logical date matter more than the execution date?
- A DAG describes tasks and their dependencies, scheduled by
schedule. - The logical date (processed interval) drives the logic, not the run time.
catchup — replay missed intervals; enable it deliberately.- Write tasks parameterized by the logical date to be replayable.
2Tasks and dependencies
Key question
How do you structure the dependencies of a readable, maintainable DAG?
- Operators (Bash, Python, KubernetesPod…) and the modern TaskFlow API.
- Explicit dependencies (
>>) and task groups for readability. - Sensors sparingly (prefer deferrable to avoid blocking a slot).
- Split it up: one task = one clear, replayable unit of work.
3Idempotence and recovery
Key question
A task fails at 3am and is retried. What should happen?
- Idempotence: rerunning a task yields the same result, no duplicates.
retries + delay, and alerts on failure.- Backfill to replay a date range cleanly.
- Atomic writes (replace a partition rather than blind insert).
Warning signal : a non-idempotent task that inserts without de-duplicating creates duplicate data on every retry — a classic production trap.
4XComs, connections and secrets
Key question
How do you pass data between tasks, and how do you manage credentials?
- XCom for small metadata, never large volumes.
- Hooks and Connections to talk to external systems.
- Variables and secrets backend — never a hard-coded secret in the DAG.
- Pass large volumes via storage (S3/GCS), not via XCom.
5Production and best practices
Key question
A DAG is slow, unstable or overloads the scheduler. Where do you start?
- No heavy logic at DAG level (continuously parsed by the scheduler).
- Choose the right executor (Celery, Kubernetes) by scale.
- Monitoring, SLAs and alerting on critical tasks.
- Dynamic DAGs sparingly (readability and parsing cost).
6Level grid
| Level | Expected proficiency | Signal GO | NO-GO |
|---|
| Junior | Write a simple DAG, basic operators | Chains tasks, understands scheduling | Puts heavy logic at DAG level |
| Mid-level | Idempotence, retries, backfill, connections | Writes idempotent, replayable tasks | Writes a non-idempotent task (duplicates on retry) |
| Senior | Executors, monitoring, secrets, deferrable | Diagnoses an overloaded scheduler, secures secrets | Passes large volumes through XCom |
| Lead | Orchestration architecture, team standards | Sets DAG conventions and the recovery strategy | Has no incident-recovery strategy |