Skip to content

miladj3/interview

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interview Prep — Algorithms, System Design & Career

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.


What's inside

LeetCode Patterns (/leetCode)

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

Low-Level Design (/LLD)

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

High-Level Design (/HLD)

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

SQL & Database Design (/SQL)

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

Concurrency Patterns (/concurrency)

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

Behavioral Interview Guide (/behavioral)

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

Mock Interview Question Bank (/mock)

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.

Career & Job Search (/career)

File What's covered
Resume & LinkedIn Resume bullet rewrites, framing regional experience, LinkedIn optimization, cold outreach templates, salary negotiation for remote/international roles

How to use this repo

  1. Start with LeetCode patterns — work through /leetCode in order. Each pattern builds on the previous. Understand the template before touching a real problem.
  2. Drill 2–3 problems per pattern on your own before looking at the solution.
  3. Move to LLD — attempt the design yourself first (draw classes, pick patterns), then compare.
  4. Study HLD — read once for the concepts, then re-read and ask: "why this choice and not that one?"
  5. Do SQL alongside HLD — schema design questions come up in almost every backend system design round.
  6. Run mock sessions from /mock — set a timer, talk out loud, write before you type.
  7. Read the behavioral guide before your first real interview, not after. Most engineers find out they needed it too late.

Contributing

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors