Citi Data Engineer Interview Questions (2026)
Prepare for your technical rounds at Citi with 39+ reported questions across SQL, Apache Spark, Python, and System Design. Compare typical candidate answers against FAANG 9/10 benchmarks, and test your own solutions with instant AI feedback.
Interview Topic Weightage at Citi
Based on verified interview loopsUnlocked FAANG-Calibrated Answer Rubric (Top 3 Tested Questions)
- •Structured delivery following Problem Formulation -> Execution Plan -> Failure Recovery
- •Concrete parameters: partition keys, join strategies, memory limits, and I/O costs
- •Explicit trade-off evaluation (e.g. storage cost vs query latency, exactly-once overhead)
Complete Citi Question Vault (36 Questions)
Showing 15 of 36What strategies can you use to handle skewed data in Spark?
**1. Salting**: Add random suffix to skewed keys to spread load; requires two-phase aggregation. **2. Two-phase aggregation**: Aggregate with salted key, then aggregate again without salt. **3. Broadcast**: For small dimension tables, broadcast to avoid shuffle. **4. Custom partitioning**: Pre-partition by known skewed keys. **5. Increase partitions**: Spreads work but doesn't fix root cause. **6. AQE Skew Join (Spark 3.0+)**: Automatically splits skewed partitions....
What is the difference between Managed and External tables in Hive/Spark?
Managed and External tables in Hive/Spark differ fundamentally in their ownership and lifecycle management of the underlying data. Core Difference Managed tables (also known as Internal tables) mean…
What is a window function? Explain with an example.
**Architectural Logic:** Window functions compute values over a set of rows related to the current row (defined by OVER) without collapsing rows like GROUP BY. **Why windows over self-joins:** Single scan, no explosion; optimal for rankings, running totals, period-over-period. **Scalability:** PARTITION BY and ORDER BY affect sort/spill; large windows with RANGE BETWEEN UNBOUNDED PRECEDING can spill to disk. **Cost:** ROWS vs....
Explain the concept of checkpointing in Spark and why it is important.
Checkpointing breaks RDD lineage by materializing to storage, trading storage I/O for DAG truncation. **Why it exists**: Long lineage (e.g., 1000+ stages in iterative algorithms like PageRank or ML) causes stack overflow in the driver and makes fault recovery expensive—Spark would replay the entire DAG. **Scalability trade-off**: Checkpoint is a full write; at scale, this is costly (network, disk). For batch, prefer persist/cache when lineage is < ~50 stages....
Agile methodologies used?
**Scrum**: 2-week sprints, standups, planning, retros, refinement. Jira for epics, stories, bugs. **Kanban**: For support and incidents—continuous flow. **Data**: Sprint on pipeline features, schema changes, quality; incidents through Kanban....
An existing job running longer suddenly: how to analyze the issue?
**STAR approach**: **Situation**: Job ran 2 hr, now 6 hr. **Task**: Find root cause. **Analysis**: (1) Data volume growth—compare input size. (2) Skew—Spark UI shows uneven partitions. (3) Resource contention—other jobs. (4) Source throttling—DB or API limits. (5) Partition pruning—missing partitions? **Actions**: Add partitions; salting for skew; increase resources; fix source limits. **Result**: Document in runbook; add monitoring....
How is Oozie called?
Oozie workflows are primarily invoked via its Command Line Interface (CLI), REST API, or integrated user interfaces like Hue. They can also be triggered by external schedulers or as sub workflows…
Oozie workflow files (how many used)?
Oozie uses workflow.xml (DAG), coordinator.xml (scheduling), bundle.xml (multi-coordinator). One workflow.xml per workflow; 1–10+ per org depending on pipeline complexity. WHY: Oozie is XML-based, Hadoop-native; Airflow has largely replaced it for Python DAGs and ecosystem. SCALABILITY: Modular workflows and parameterization scale; version control in Git....
Shell commands for renaming a file?
The primary shell command for renaming a file is mv (move), which can also be used to rename files within the same directory. For batch renaming based on patterns, the rename command (often Perl…
Shell: change permissions?
To change file or directory permissions in a Unix like system, use the chmod (change mode) command. It allows specifying permissions numerically (octal) or symbolically, controlling read, write, and…
Shell: command to check processes running in the background?
To check processes running in the background, use the jobs command for processes launched from your current shell session, or ps (Process Status) for a system wide view of all processes. Interactive…
Using shell, how to find the difference between two files?
diff file1 file2 (line-by-line). diff -u (unified). diff -r dir1 dir2 (recursive). cmp (byte-by-byte; exit 0 if identical). comm -3 <(sort f1) <(sort f2) for sorted common lines. Large files: md5sum/sha256sum first to skip diff if identical. WHY: diff for review; checksums for binary or quick equality....
What type of wrapper is used, or which language is used?
**Choice depends on context.** Python (subprocess, requests)—scripting, APIs. Shell—Unix pipelines. Java/Scala—Spark jobs at scale. Node.js—event-driven. **Best practice:** Native to platform—Python for Databricks/Glue, Scala for Spark. Wrappers thin; logic in tested libs. **Scalability:** Document deps; containerize (Docker) for consistency....
Amazon Deequ usage and what sort of quality checks are done using it?
**Deequ**—AWS data quality library. **Checks:** Completeness (non-null), uniqueness, consistency (constraints), statistics. **Example:** customer_id unique; age 0–120. **Output:** CloudWatch metrics. **Glue:** Profiling integration. **Why:** Code-defined checks; CI integration. **Scalability:** AnomalyDetection for drift. **Cost:** Minimal—runs with Glue....
Given 1TB of a file, how to check word count?
For a 1TB file, checking word count necessitates a distributed processing framework like Apache Spark or Hadoop MapReduce due to the sheer volume of data exceeding typical single machine memory…
Stop Guessing If Your Answers Clear the Bar at Citi
DataEngPrep’s AI evaluates your real answers against strict FAANG hire rubrics. Check accuracy, optimize shuffle partitions, detect edge case omissions, and receive an instant 9/10 rewrite before stepping into your real interview loop.
Similar Tier Companies Hiring Data Engineers
Explore interview loops with overlapping system design and SQL standards.
Frequently Asked Questions About Citi Data Engineering Interviews
What topics are asked most frequently in Citi data engineering interviews?▼
Technical interviews at Citi heavily emphasize Spark/Big Data and General/Other, accounting for the majority of technical questions in our repository of 39+ verified interview questions. Candidates should expect hands-on rounds testing query optimization, data skew mitigation, and end-to-end pipeline architecture.
How deep do Citi interviewers go on Apache Spark, SQL, and system design?▼
Interviewers at Citi probe far beyond syntax. They expect candidates to discuss Spark DAG execution plans, shuffle partitions, join selection strategies (broadcast hash vs shuffle sort-merge), and handling un-even data distributions. In system design, emphasis is placed on fault tolerance, backfilling, and SLA preservation under high data volume.
What is the typical technical interview loop format for Data Engineers at Citi?▼
The Citi interview process typically consists of: 1) Initial Recruiter Screen (30 mins), 2) Technical Phone Screen focusing on live SQL and data manipulation (45-60 mins), followed by a 4-5 round Virtual Onsite covering SQL & Coding, Distributed Pipeline Architecture, Data Modeling, and a Behavioral/Bar-Raiser session.
How can I practice Citi data engineer interview questions with AI feedback?▼
You can practice directly on DataEngPrep.tech. Select any question from the Citi library, submit your answer, and receive an instant FAANG-calibrated evaluation scored across accuracy, technical depth, communication, and completeness, complete with an interview-ready model answer rewrite.