
Citi Data Engineer candidates report SQL and Python screens, often run through Karat. Technical rounds cover Spark and PySpark tuning, Hadoop tools and pipeline design, followed by behavioral or managerial conversations.
$130K
Avg. Base Comp
$160K
Avg. Total Comp
Not reported
Typical Rounds
Not reported
Process Length
Candidates describe the Citi Data Engineer interview as technical, with SQL and Spark coming up repeatedly. Several mention a Karat screen run by a non-Citi engineer, and one reports a Codility online assessment before it. SQL questions mentioned include joins, self-joins, window functions, CTEs, CASE WHEN logic, and a top-N salary problem that avoids window functions. One Karat screen also included a timed Python task, and that candidate was told that coding in a language of their choice was mandatory even with an Ab Initio background. Another candidate was surprised that their first interview centered so heavily on Python.
The Spark questions are practical. One candidate reports being asked about partitioning, bucketing, salting, repartition versus coalesce, file formats, and how to diagnose a job that suddenly runs longer than usual. Another was asked how to process 10 TB in Databricks, based on a project from their resume. The in-person round that covered Spark tuning also focused on Hadoop topics: SCD Type 2 in Hive, Oozie coordinators and dependencies, shell or cron scheduling, and a live word count program.
Expect to defend your own projects. Candidates were asked to explain architecture, personal contributions, testing, performance tuning and design choices. Behavioral questions covered challenging projects, feedback, conflict and what you want in a job. One candidate described the final managerial round as more conversational than technical.
Outcomes in this set were mixed, with several offers and some rejections. Round counts varied by candidate, so ask your recruiter how your loop is structured and whether Python is a core focus.
Synthesized from 8 candidate reports by our editorial team.
Had an interview recently?
Share your experience. Unlock the full guide.
Real interview reports from people who went through the Citi process.
It was one structured Karat technical interview with three main areas: SQL, PySpark scenarios, and general data engineering analysis. The interviewer displayed the questions on screen, gave me time to read them, and expected me to explain my thinking while working through the solution.
The SQL problem involved grouping deposit transactions to identify the user who made the most deposits on a single day, while also calculating the total number of deposits made by everyone that day. I felt confident here because it involved CTEs, aggregation, ranking, and window functions.
The PySpark and data-engineering sections were more discussion-based. One scenario involved a large Spark job failing with executor-memory errors during joins and aggregations. I had to explain how I would use Spark UI metrics to identify skew, shuffle spill, oversized partitions, or an unsafe broadcast, and then suggest improvements without increasing the cluster size.
The part that surprised me was a code-review scenario involving Pandas and healthcare treatment data. I had to identify issues in existing code, including incorrect patient-name validation, scalability concerns from loading several files into Pandas, and privacy risks in a SQL view. There were also follow-up questions about flattened data models, referential integrity, reducing joins, masking patient information, and restricting researchers from accessing more data than they were authorized to see.
I felt strongest when discussing SQL, Spark optimization, data pipelines, and dimensional modelling. I had to slow down more during the code-review and healthcare-security questions because a technically working solution was not enough—the interviewer wanted me to consider data quality, privacy, access control, and the trade-offs between performance and integrity.
What made the interview challenging was the number of follow-up questions. The interviewer kept testing whether I understood why I chose an approach rather than whether I could simply provide a familiar answer. Overall, it felt practical and conversational, but it required me to think aloud, notice small defects, and defend my design decisions.
Questions asked: Question: Find the user who made the most deposits on a single day, along with the total number of deposits made by all users that day. Question: Design a PySpark pipeline for JSON files containing missing fields, additional fields, inconsistent types and malformed records. Produce a stable Parquet schema.
Share your own interview experience to unlock all reports, or subscribe for full access.
Sourced from candidate reports and verified by our team.
Topics based on recent interview experiences.
Featured question at Citi
Write a query to show the number of users, transactions, and total order amount per month in 2020
| Question | |
|---|---|
| Attribution Rules | |
| Size of Joins | |
| Real-Time Transaction Streaming | |
| Hurdles In Data Projects | |
| Replace Words with Stems | |
| Dijkstra implementation | |
| Seller Type Modeling | |
| String Palindromes | |
| Concurrent LLM Serving | |
| Index Fund Return | |
| Above Average Product Prices | |
| International e-Commerce Warehouse | |
| Text Editor With OOP | |
| Unified Event Pipeline | |
| Client Solution Pushback | |
| Why Do You Want to Work With Us | |
| Concentric Circles | |
| Your Strengths and Weaknesses | |
| Data Cleaning Experiences | |
| Singly Linked List | |
| Student Tests | |
| Measuring Text Difficulty | |
| 2nd Highest Salary | |
| Empty Neighborhoods | |
| Rolling Bank Transactions | |
| Employee Salaries | |
| Merge Sorted Lists | |
| Subscription Overlap | |
| Comments Histogram |
Synthesized from candidate reports. Individual experiences may vary.
Candidates report an initial recruiter or phone conversation covering background and basics such as visa status and salary fit. One candidate waited several weeks after applying through Workday before hearing back. It may also be a good time to ask whether Python is a core part of the technical evaluation.
Several candidates describe a screen run by Karat rather than Citi, and one reports a 90-minute online assessment with SQL, PySpark and general data engineering questions. Reported content includes joins, window functions, CTEs, live SQL output and a timed Python task. Candidates say interviewers are time-boxed, so practice explaining your thinking aloud.
Candidates report technical rounds, in person or by video, on Spark tuning, PySpark, Databricks scale scenarios, Hadoop tools such as Hive and Oozie, database design, and walkthroughs of their current project architecture. Interviewers probed why candidates chose an approach, so be ready to explain design choices and which parts of past projects you personally owned.
Candidates report behavioral questions on challenging projects, feedback, conflict and what they want in a job. One candidate reports a final managerial round that was more conversational than technical, with the offer following shortly after.