Course · Interview foundations
DSA
DSA rounds in Data Engineering interviews are usually easy to medium problems on arrays, hashing, strings, two pointers and sliding windows, sometimes graphs or DP.
- Lessons
- 16
- Interview questions
- 67
- Projects & case studies
- 0
- Reading time
- ~5 h
About this course
Data Engineering interviews usually include at least one coding round. It is rarely the hardest part of the loop, but it is the easiest one to fail through lack of practice. Expect easy to medium problems built on arrays, hashing, strings, two pointers and sliding windows, with graphs (especially topological sort for dependency resolution) and dynamic programming appearing at some companies.
This course teaches each pattern once, properly: how to recognise it, a tested Python template, its complexity, the common bugs, and where the same idea shows up in real pipeline work. Start with the pillar guide, then work through the patterns in order.
Your progress
Saved in this browser onlyPractise
Course structure
Lessons
Work through the lessons in order. Completed lessons show a tick; lessons you have opened are outlined.
Start here
The complete overview of the course in one read.
Beginner
Core concepts you will use every day.
- Arrays and Hashing: Sets, Hash Maps, Prefix Sums and IntervalsThe most common coding-interview pattern: seen sets, value-to-index maps, counting, prefix sums, Kadane, intervals, matrices and bit tricks, with tested Python.
- Strings for Coding Interviews: Immutability, Scanning and ParsingHow Python strings work, the scanning and parsing templates behind string problems, and how they map to cleaning keys and parsing messy fields in pipelines.
- Two Pointers: Converging, Read-Write and Partitioning TemplatesUse two indices to replace nested loops: converging pointers on sorted data, read-write compaction, three-way partitioning, and the sort-merge join behind them.
- Queues: FIFO Buffers, Ring Buffers and Queue Design ProblemsHow queues work, deque versus list, building queues from stacks and a ring buffer, time-window counters, and the buffering ideas behind message queues and Kafka.
Intermediate
Patterns used in production pipelines.
- Sliding Window: Fixed, Variable and Monotonic-Deque TemplatesSolve contiguous subarray and substring problems in one pass with fixed and variable windows and a monotonic deque, and see how they power streaming metrics.
- Stacks: Matching, Evaluation and Monotonic Stack TemplatesUse Python lists as stacks for bracket matching, expression evaluation, min-tracking and monotonic stacks, with tested code and the pipeline jobs they map to.
- Binary Search: Exact Match, Boundaries and Searching the AnswerOne reliable binary search template for exact matches, first and last positions, rotated arrays and searching on the answer, plus as-of lookups and partition pruning.
- Linked Lists: Pointer Rewiring, Fast and Slow Pointers, LRU CacheReverse, merge, split and reorder linked lists safely with dummy nodes and fast and slow pointers, then build an LRU cache and a k-way merge in Python.
- Binary Trees and Tries: DFS, BFS and Prefix Search TemplatesTraverse binary trees with recursive and iterative DFS and level-order BFS, return values up the tree, build and serialise trees, and use tries for prefix search.
- Binary Search Trees: Ordering, Validation, Insert and DeleteUse the BST ordering rule to search, validate, insert, delete and find the k-th smallest value, and see how the same idea underlies B-tree indexes and range scans.
- Heaps and Priority Queues: Top-K, Scheduling and Running MediansUse Python's heapq for top-K, k-th largest, k-way merges, task scheduling and running medians, with the bounded-memory streaming patterns Data Engineers rely on.
- Greedy Algorithms and Intervals: Safe Local Choices and SweepsWhen a locally best choice is provably safe: reach, gas station, grouping and partition problems, plus interval sweeps used for sessionisation and time ranges.
Advanced
Performance, internals and edge cases.
- Backtracking: Subsets, Combinations, Permutations and Grid SearchOne choose-explore-unchoose template for subsets, combinations, permutations, partitions, word search and N-Queens, with duplicate handling, pruning and itertools.
- Graphs: BFS, DFS, Topological Sort, Union-Find and Shortest PathsModel problems as graphs and solve them with grid DFS and BFS, topological sort for DAG dependencies, union-find, Dijkstra, Bellman-Ford and minimum spanning trees.
- Dynamic Programming: States, Transitions and the Classic DP FamiliesA repeatable method for dynamic programming: define the state and transition, pick memoisation or a table, then solve 1D, grid, string and knapsack problems.
Resources
Related courses
- PythonPython glues pipelines together: ingestion, validation, orchestration and PySpark jobs. Focus on functions, generators, error handling and testable code.
- SQLSQL is the core language of data work: querying, transforming and modelling data in warehouses, lakehouses and Spark. Start here before any other tool.