This repo was built for Iranian developers who are navigating a tough job market and need a focused, no-fluff resource to prepare for technical interviews at top companies. Everything here is practical: pattern-first explanations, real LeetCode problems, full system design walkthroughs, and honest career advice for the international job search.
Each file covers one algorithm pattern: the intuition behind it, a reusable template, and 3–5 representative problems solved step-by-step.
| # | Pattern | Key idea |
|---|---|---|
| 01 | Two Pointers | Reduce O(n²) pair search to O(n) on sorted arrays |
| 02 | Sliding Window | Track a moving subarray/substring without recomputing |
| 03 | Binary Search | Halve the search space on sorted or monotonic input |
| 04 | Hash Map / Set | Trade space for O(1) lookups; frequency counting |
| 05 | Stack & Queue | LIFO/FIFO order; monotonic stack tricks |
| 06 | Recursion & Backtracking | Explore all paths; prune early |
| 07 | Trees — BFS & DFS | Level-order vs depth-first traversal |
| 08 | Graphs | BFS/DFS on adjacency lists; cycle detection; topological sort |
| 09 | Dynamic Programming | Memoization and tabulation; state machine thinking |
| 10 | Greedy | Local optimal choices that guarantee global optimum |
| 11 | Heap / Priority Queue | Top-K problems; streaming medians |
| 12 | Linked List | Pointer manipulation; fast & slow pointers |
| 13 | Intervals | Sort-then-merge; sweep line |
| 14 | Bit Manipulation | XOR tricks; masking; power-of-two checks |
| 15 | Trie | Prefix matching; autocomplete |
| 16 | Math & Number Theory | GCD, primes, modular arithmetic |
Each file is a complete LLD interview walkthrough: requirements, class diagram, design patterns used, full Python implementation, and extension points.
| # | System | Highlights |
|---|---|---|
| 01 | Parking Lot | Strategy pattern for pricing, thread-safe spot assignment |
| 02 | LRU Cache | Doubly-linked list + hash map; O(1) get & put |
| 03 | Vending Machine | State machine pattern; inventory & payment flow |
| 04 | Notification Service | Observer pattern; multi-channel delivery, rate limiting, retry |
| 05 | Hotel Booking | Repository pattern; date-range availability; concurrency |
| 06 | Elevator System | Scheduler strategies (SCAN/LOOK); request queuing |
Distributed system design at scale — the architecture, trade-offs, data flows, and numbers. Each file covers a system asked at senior+ interviews.
| # | System | Scale & Focus |
|---|---|---|
| 01 | URL Shortener | 100M creates/day, 10B redirects/day; base62, KGS, CDN caching |
| 02 | Rate Limiter | Token bucket vs sliding window; Redis Lua scripts; distributed edge placement |
| 03 | Notification Service at Scale | 1B+ notifications/day; Kafka, priority queues, DLQ, provider failover |
| 04 | News Feed | 500M DAU; fan-out on write vs read vs hybrid; Redis sorted sets |
From schema fundamentals to advanced query patterns — covering the full range of database questions asked in backend interviews.
| # | Topic | What's covered |
|---|---|---|
| 01 | Schema Design | 1NF–BCNF normalization; 4 classic schema problems (e-commerce, social, hotel, Jira) |
| 02 | Indexing & Performance | B-tree internals, composite indexes, EXPLAIN ANALYZE, N+1, cursor pagination |
| 03 | Advanced Queries | Window functions, recursive CTEs, 8 classic interview problems, isolation levels |
Threading, multiprocessing, async, and channels — the patterns that show up in system design and coding interviews for backend roles.
| File | Language | What's covered |
|---|---|---|
| Python Concurrency | Python | GIL, threading, multiprocessing, asyncio, producer-consumer, dining philosophers |
| Go Concurrency | Go | Goroutines, channels, select, sync, pipeline, fan-out/fan-in, worker pool |
| File | What's covered |
|---|---|
| Behavioral Guide | STAR method, 12 common themes with real example answers, special section for Iranian/MENA developers on framing regional experience for international audiences |
| File | What's covered |
|---|---|
| Question Bank | 8 coding sessions, 6 LLD sessions, 4 HLD sessions, 4 behavioral rounds — all with collapsible hints and interviewer rubrics. Includes a solo mock interview ritual. |
| File | What's covered |
|---|---|
| Resume & LinkedIn | Resume bullet rewrites, framing regional experience, LinkedIn optimization, cold outreach templates, salary negotiation for remote/international roles |
- Start with LeetCode patterns — work through
/leetCodein order. Each pattern builds on the previous. Understand the template before touching a real problem. - Drill 2–3 problems per pattern on your own before looking at the solution.
- Move to LLD — attempt the design yourself first (draw classes, pick patterns), then compare.
- Study HLD — read once for the concepts, then re-read and ask: "why this choice and not that one?"
- Do SQL alongside HLD — schema design questions come up in almost every backend system design round.
- Run mock sessions from
/mock— set a timer, talk out loud, write before you type. - Read the behavioral guide before your first real interview, not after. Most engineers find out they needed it too late.
Pull requests are welcome. If you have a clean explanation for a pattern, an LLD problem, or real interview experience to share, open a PR. Keep the style consistent: intuition first, template second, examples third. No fluff.
Built with care for every developer who is restarting — hang in there.