← all categories
C

Computer Science Fundamentals

Data structures, algorithms and complexity theory — the foundation of every great engineer.

Computer Science Fundamentals9 min

Data Structures Every Backend Engineer Should Know

A practical tour of the data structures backend engineers actually use day to day — and how to pick the right one.

read →
Computer Science Fundamentals7 min

Arrays vs Linked Lists

When to choose an array (or ArrayList) over a LinkedList in Java — with benchmarks, big-O analysis, and cache-friendliness explained.

read →
Computer Science Fundamentals7 min

Stacks and Queues Explained

Stacks vs queues vs deques in Java — when to use each, big-O behavior, and real backend examples like task queues and expression parsing.

read →
Computer Science Fundamentals10 min

HashMaps and Hash Tables Deep Dive

How HashMap works internally in Java — hashing, buckets, collisions, treeified bins, and the performance pitfalls to avoid.

read →
Computer Science Fundamentals9 min

Trees and Binary Search Trees

Trees, binary trees and binary search trees explained — properties, traversals (in-order, pre-order, post-order), and Java implementation.

read →
Computer Science Fundamentals8 min

Heaps and Priority Queues

How a binary heap works, why it powers PriorityQueue in Java, and where you'll use it — schedulers, top-k problems, Dijkstra.

read →
Computer Science Fundamentals9 min

Graphs Explained for Developers

Graph data structures for developers — adjacency list vs matrix, directed vs undirected, weighted vs unweighted, and the algorithms you'll actually use.

read →
Computer Science Fundamentals8 min

Tries and Prefix Trees

How a Trie works, when to use one, and a Java implementation — the data structure behind autocomplete, spell-check and IP routing.

read →
Computer Science Fundamentals8 min

Choosing the Right Data Structure

A decision framework for picking the right data structure — based on operations, size, ordering and concurrency requirements.

read →
Computer Science Fundamentals7 min

Big O Notation Explained for Developers

Big O notation in plain English — what O(n), O(log n) and O(n²) really mean, with examples and an intuitive ranking of complexities.

read →
Computer Science Fundamentals9 min

Sorting Algorithms Explained (Bubble, Merge, Quick Sort)

The sorting algorithms every developer should understand — Bubble, Merge and Quick Sort — with Java implementations and complexity analysis.

read →
Computer Science Fundamentals7 min

Searching Algorithms (Linear Search vs Binary Search)

Linear search vs binary search — when each applies, Java implementations, off-by-one pitfalls and how to verify correctness.

read →
Computer Science Fundamentals8 min

Recursion Explained with Java Examples

Recursion in Java made simple — base case, recursive case, the call stack, and how to convert recursive solutions to iterative ones.

read →
Computer Science Fundamentals10 min

Dynamic Programming for Beginners

Dynamic programming explained from scratch — memoization vs tabulation, the Fibonacci and Coin Change problems, and when DP is the right tool.

read →
Computer Science Fundamentals8 min

Greedy Algorithms Explained

Greedy algorithms with Java examples — when local choices yield the global optimum, classic problems, and when greedy fails.

read →
Computer Science Fundamentals9 min

Breadth-First Search (BFS) and Depth-First Search (DFS)

BFS and DFS in Java — when to use each, iterative and recursive implementations, and the problems they solve in real backends.

read →
Computer Science Fundamentals8 min

Sliding Window Technique

Master the sliding window technique — fixed and variable windows, with Java examples for substring, subarray and stream problems.

read →
Computer Science Fundamentals7 min

Two Pointer Technique

The two-pointer pattern in Java — opposite ends, fast/slow pointers, and how to turn O(n²) brute force into O(n) elegance.

read →
Computer Science Fundamentals10 min

Common Backend Engineering Algorithm Questions

The algorithm questions that show up most often in backend engineering interviews — with Java patterns and what interviewers actually look for.

read →