| 📚 Resources | 🎥 YouTube Channels | 📖 Books | 🌐 Platforms | 🤖 AI/ML Section |
|---|---|---|---|---|
| 150+ | 15+ | 20+ | 25+ | ✅ NEW |
- 🎯 FAANG Interview Essentials
- 📺 Top YouTube Channels 2025
- 💾 Data Structures & Algorithms
- 🎓 Object Oriented Programming
- 📚 Must-Read Books 2024-2025
- 💻 Online Coding Platforms
- 🤖 AI & Machine Learning Interviews
- 🏗️ System Design Resources
- 🎁 Additional Resources
| Resource | Description | Difficulty | 🌟 Rating |
|---|---|---|---|
| NeetCode 150 | 🏆 Most popular for 2024-2025! Curated list with video explanations | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| LeetCode Grind 75 | Structured study plan, time-optimized | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Blind 75 | Classic must-do problems | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Tech Interview Handbook | Complete interview guide | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| System Design Primer | 200K+ stars on GitHub! | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
🎓 NeetCode 150 Course on freeCodeCamp [38+ hours]
└─ All 150 problems explained with optimal solutions
📚 Data Structures and Algorithms in Python [12+ hours]
└─ Complete beginner to advanced coverage
🚀 Google Engineer's Full Tutorial [10+ hours]
└─ Real-world problems from a Googler
- 🎥 NeetCode 150 Course on freeCodeCamp - 38+ hours masterclass
- 📘 Data Structures and Algorithms in Python - Full course for beginners
- 🎯 Google Engineer's Tutorial - Easy to advanced course
Learn from the best! These channels have helped thousands land FAANG offers 🎓
|
NeetCode 👤 360K+ subs 🏢 Google Engineer ⭐ Best LeetCode explanations |
Clement Mihailescu 👤 500K+ subs 🏢 Ex-Google/Facebook ⭐ AlgoExpert Founder |
Back To Back SWE 👤 250K+ subs 💡 Clear explanations ⭐ Complex topics simplified |
TakeUForward 👤 600K+ subs 📚 Striver's A2Z DSA ⭐ Complete roadmap |
- 📺 Nick White - Live coding sessions and tutorials
- 🎓 William Fiset - In-depth algorithms and data structures
- 💙 freeCodeCamp.org - Full courses and tutorials (1M+ hours of content!)
| Channel | Focus Area | Subscribers | Must Watch |
|---|---|---|---|
| ByteByteGo | System Design | 500K+ | Alex Xu's channel 🔥 |
| tryExponent | Mock Interviews | 300K+ | Real interview practice |
| System Design Interview | Architecture | 200K+ | Design patterns |
| TechLead | Career Advice | 1M+ | Ex-Google/Facebook |
|
Big O Cheat Sheet ⏱️ Time & Space complexity reference |
VisuAlgo 👀 See algorithms in action! |
NeetCode Roadmap 🗺️ Structured learning path |
+ AlgoExpert → 160+ curated problems with video explanations ($99)
+ AlgoMonster → Pattern-based learning, very structured
+ Udemy Bootcamp → Complete Python DSA course
+ CodeBasics → Free Python DSA course- 🎯 AlgoExpert - 160+ curated problems with video explanations ($99)
- 🧠 AlgoMonster - Pattern-based learning approach
- 📖 Udemy - DSA Bootcamp in Python
- 🆓 CodeBasics - DSA in Python
| Resource | Type | Level | Link |
|---|---|---|---|
| 🐍 Real Python OOP | Tutorial Path | ⭐⭐ | Visit |
| 📺 Corey Schafer | Video Series | ⭐⭐ | Watch |
| 🎨 Design Patterns | Interactive Guide | ⭐⭐⭐ | Learn |
|
Beyond Cracking the Coding Interview 📝 Gayle McDowell ⭐⭐⭐⭐⭐ Get Book |
Coding Interview Patterns 📝 Alex Xu & Shaun ⭐⭐⭐⭐⭐ Get Book |
Generative AI System Design 📝 Alex Xu ⭐⭐⭐⭐⭐ Get Book |
📕 Cracking the Coding Interview (6th Edition) ⭐⭐⭐⭐⭐
├─ 189 programming problems
├─ Still #1 for FAANG interviews
└─ Solutions in multiple languages
📘 Elements of Programming Interviews in Python ⭐⭐⭐⭐⭐
├─ 250+ challenging problems
├─ Perfect for senior positions
└─ Deep algorithmic thinking
📙 Grokking Algorithms ⭐⭐⭐⭐
├─ Illustrated guide
├─ Great for beginners
└─ Easy to understand
| Title | Author | Focus | Amazon |
|---|---|---|---|
| Cracking the Coding Interview | Gayle Laakmann McDowell | 189 problems | 🛒 Buy |
| Elements of Programming Interviews | Aziz, Lee, Prakash | 250+ problems | 🛒 Buy |
| Grokking Algorithms | Aditya Bhargava | Illustrated guide | 🛒 Buy |
🔥 Most Recommended for 2025
| Book | Author | Level | Rating |
|---|---|---|---|
| 📕 System Design Interview Vol. 1 | Alex Xu | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ Get it |
| 📕 System Design Interview Vol. 2 | Alex Xu | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ Get it |
| 📘 Acing the System Design Interview | Zhiyong Tan | ⭐⭐⭐ | ⭐⭐⭐⭐ Get it |
| 📙 Designing Data-Intensive Applications | Martin Kleppmann | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ Get it |
- 📗 The Tech Resume Inside Out - Gergely Orosz ⭐⭐⭐⭐⭐
- 🎯 Behavioral Interview Questions - Free online guide
| Book | Focus | Link |
|---|---|---|
| 📕 Hands-on Machine Learning (3rd Ed) | Practical ML with Scikit-Learn & TensorFlow | Amazon |
| 📘 Machine Learning Interviews | Free comprehensive guide | GitHub |
| 📙 Deep Learning Interviews | 400+ questions and answers | Amazon |
|
LeetCode ⭐ #1 Platform 📊 3000+ problems |
NeetCode 🎥 Video solutions 🔥 Most popular 2025 |
HackerRank 🏅 Certifications 💼 Job matching |
CodeForces 🏆 Competitive ⚡ Contest rated |
CodeChef 🌍 Global contests 📈 Rating system |
💎 Premium Platforms (Worth the Investment)
| Platform | Price/Year | Focus | Best For | Rating |
|---|---|---|---|---|
| DesignGurus.io | $122 | Pattern-based learning | Visual learners | ⭐⭐⭐⭐⭐ |
| AlgoExpert | $99 | 160+ curated problems | Structured prep | ⭐⭐⭐⭐⭐ |
| AlgoMonster | $99 | Pattern recognition | Fast track | ⭐⭐⭐⭐⭐ |
| Educative.io | $199 | Interactive courses | Hands-on learning | ⭐⭐⭐⭐ |
| InterviewBit | FREE | Complete prep | Budget option | ⭐⭐⭐⭐ |
Practice with real people!
| Platform | Type | Price | Features |
|---|---|---|---|
| 🎭 Pramp (Exponent) | Peer-to-peer | FREE (5/month) | AI grading, transcripts |
| 💼 Interviewing.io | Anonymous | Paid | Real engineers from FAANG |
| 🎪 TechMockInterview | 1-on-1 | Paid | Personalized feedback |
- 📝 TestDome - Skills assessment & certifications
- 💻 DevSkiller - Technical screening for companies
- 🤖 Workera.ai - AI skills assessment
- 📊 DataCamp - Data science focused
|
|
ml_interview_topics = {
"Foundation": [
"Supervised & Unsupervised Learning",
"Model Evaluation & Metrics",
"Feature Engineering",
"Bias-Variance Tradeoff"
],
"Deep Learning": [
"Neural Networks Architecture",
"CNNs for Computer Vision",
"RNNs & LSTMs for Sequences",
"Training & Optimization"
],
"2025 Critical": [
"🔥 Transformers Architecture",
"🔥 Large Language Models (LLMs)",
"🔥 Prompt Engineering",
"🔥 RAG (Retrieval-Augmented Generation)",
"🔥 Fine-tuning & Transfer Learning"
],
"Production ML": [
"MLOps & Model Deployment",
"A/B Testing",
"Model Monitoring",
"Scalability Considerations"
]
}
⚠️ 2025 Alert: 80% of ML interviews now include questions about LLMs and Transformers!
|
System Design Primer 📖 Most comprehensive 🆓 Completely free |
ByteByteGo 📝 Alex Xu's platform 💰 Paid but worth it |
Grokking SD 🎯 Pattern-based 💡 Visual learning |
SD Interview ✍️ Practice problems 🎪 Mock interviews |
| Channel | Subscribers | Best For | Link |
|---|---|---|---|
| 🎥 ByteByteGo | 500K+ | System design concepts | Watch |
| 🎓 Gaurav Sen | 500K+ | In-depth explanations | Watch |
| 🏗️ System Design Interview | 200K+ | Architecture patterns | Watch |
| 💡 Tech Dummies | 300K+ | Simplified concepts | Watch |
🎪 Where to practice system design interviews
- 🎓 Exponent System Design - Comprehensive course with mock interviews
- 💬 HelloInterview System Design - Interactive learning
- 📊 DesignGurus.io - Pattern-based approach
| Repository | Stars | Description |
|---|---|---|
| Awesome Interview Questions | 60K+ ⭐ | Questions for all languages |
| Tech Interview Handbook | 100K+ ⭐ | Complete handbook |
| Coding Interview University | 280K+ ⭐ | Multi-month study plan |
| System Design Resources | 15K+ ⭐ | Curated SD resources |
|
Levels.fyi 📊 Real salary data 🏢 All major tech companies |
TeamBlind 💬 Anonymous community 🔍 Real employee insights |
Negotiation Guide 📖 Comprehensive guide 💡 Proven strategies |
- 📝 Resumake - LaTeX resume builder (ATS-friendly)
- 🎨 FlowCV - Modern resume templates
- 💼 LinkedIn Optimization - Get noticed by recruiters
graph TD
A[Start Here] --> B{Your Level?}
B -->|Beginner| C[NeetCode Roadmap]
B -->|Intermediate| D[LeetCode Grind 75]
B -->|Advanced| E[Blind 75 + System Design]
C --> F[Practice 50 Easy Problems]
D --> G[Practice Medium Problems]
E --> H[Mock Interviews]
F --> I[Move to Grind 75]
G --> J[System Design Study]
H --> K[Apply to FAANG!]
I --> J
J --> H
style A fill:#ff6b6b
style K fill:#51cf66
style B fill:#ffd43b
| Week | Focus Area | Resources | Hours/Day |
|---|---|---|---|
| 1-2 | DSA Basics | NeetCode Roadmap, VisuAlgo | 2-3h |
| 3-6 | Problem Solving | Grind 75 (Easy → Medium) | 3-4h |
| 7-10 | Advanced Problems | Blind 75, NeetCode 150 | 4-5h |
| 11-12 | System Design | ByteByteGo, System Design Primer | 2-3h |
| 13-14 | Mock Interviews | Pramp, Interviewing.io | 2-3h |
| 15-16 | Behavioral Prep | Tech Interview Handbook | 1-2h |
Want to improve this project? Here's everything you need!
This project uses modern Python tooling for production-grade quality. Here's how to get started:
- Python 3.11+ - Required for modern type hints
- Git - For version control
- Hatch - Modern Python project manager
# 1. Clone the repository
git clone https://github.com/umitkacar/awesome-faang-interview.git
cd awesome-faang-interview
# 2. Install Hatch (if not already installed)
pip install hatch
# 3. Install pre-commit hooks
pre-commit installThat's it! Hatch will automatically manage environments and dependencies.
All commands use Hatch for consistency and simplicity:
| Command | Description | Time |
|---|---|---|
hatch run test |
Run all tests | ~3s |
hatch run test-cov |
Run tests with coverage report | ~4s |
hatch run test-parallel |
Run tests in parallel (faster) | ~3s |
hatch run lint |
Check code quality with Ruff | ~0.05s |
hatch run format |
Format code with Black | ~0.2s |
hatch run type-check |
Type check with MyPy | ~0.8s |
hatch run security |
Security scan with Bandit | ~1s |
hatch run all |
Run everything ✅ | ~8s |
# Before making changes
hatch run all # Ensure everything passes
# Make your changes...
# Verify your changes
hatch run all # All checks must pass
# Commit (pre-commit hooks run automatically)
git add .
git commit -m "feat: your amazing feature"We maintain 93.50% code coverage with comprehensive tests.
# Quick test (sequential)
hatch run test
# With coverage report
hatch run test-cov
# Parallel execution (3x faster!)
hatch run test-parallel
# View coverage report
open htmlcov/index.html # macOS
xdg-open htmlcov/index.html # Linuxtests/
├── conftest.py # Shared fixtures
├── test_cli.py # CLI command tests (33 tests)
└── test_core.py # Core logic tests
# Example test
def test_resource_validation() -> None:
"""Test URL validation in Resource model."""
with pytest.raises(ValidationError):
Resource(
name="Invalid",
url="not-a-url", # Should fail
category="test"
)This project maintains zero-error production quality:
✅ Tests: 33/33 PASSED (100%)
✅ Coverage: 93.50% with branch coverage
✅ MyPy: 0 errors across 9 files
✅ Ruff: All checks passed
✅ Black: Code formatted
✅ Bandit: No security issues
✅ Speed: 3x faster with parallel testing
| Tool | Purpose | Configuration |
|---|---|---|
| Ruff | Linting (10-100x faster than alternatives) | pyproject.toml:114-156 |
| Black | Code formatting (100 char line) | pyproject.toml:158-161 |
| MyPy | Type checking (strict mode) | pyproject.toml:163-174 |
| Bandit | Security scanning | pyproject.toml:194-198 |
| pytest | Testing framework | pyproject.toml:200-210 |
Pre-commit hooks run automatically on git commit to ensure quality:
✅ Black - Auto-format code
✅ Ruff - Auto-fix linting issues
✅ MyPy - Check types
✅ Bandit - Security scan
✅ pytest - Run fast tests# Run all hooks on all files
pre-commit run --all-files
# Run specific hook
pre-commit run black --all-files
pre-commit run mypy --all-files
# Skip hooks (emergency only!)
git commit --no-verifyawesome-faang-interview/
├── src/
│ └── faang_interview/
│ ├── __init__.py
│ ├── cli.py # CLI commands (Typer)
│ └── core.py # Core logic (Pydantic models)
├── tests/
│ ├── conftest.py
│ ├── test_cli.py
│ └── test_core.py
├── .pre-commit-config.yaml # Pre-commit hooks
├── pyproject.toml # All configuration
├── README.md # This file
├── CHANGELOG.md # Version history
├── LESSONS_LEARNED.md # Technical documentation
└── LICENSE # MIT License
# ✅ Good - Full type hints
def filter_resources(
resources: list[Resource],
category: str | None = None,
) -> list[Resource]:
"""Filter resources by category."""
...
# ❌ Bad - No type hints
def filter_resources(resources, category=None):
...# ✅ Good - Comprehensive docstring
def process_data(data: dict[str, Any]) -> str:
"""Process data and extract name.
Args:
data: Dictionary containing resource data
Returns:
Extracted name as string
Raises:
KeyError: If 'name' key is missing
"""
return str(data["name"])# ✅ Good - Descriptive error messages
if not url.startswith(("http://", "https://")):
msg = f"Invalid URL format: {url}. Must start with http:// or https://"
raise ValueError(msg)
# ❌ Bad - Generic error
if not url.startswith(("http://", "https://")):
raise ValueError("Invalid URL")# Verbose pytest output
hatch run test -vv
# Show print statements
hatch run test -s
# Run specific test
hatch run test tests/test_cli.py::test_list_command -vv# Check specific file
mypy src/faang_interview/cli.py
# Show error codes
mypy src/ --show-error-codes
# Ignore specific errors (use sparingly!)
mypy src/ --disable-error-code=attr-defined- LESSONS_LEARNED.md - Deep technical insights and decisions
- CHANGELOG.md - Detailed version history
- Hatch Documentation - Build system guide
- Ruff Documentation - Linter reference
- pytest Documentation - Testing guide
Found a great resource? Have suggestions?
Simply:
- 🍴 Fork this repository
- ✏️ Add your resource to README.md
- ✅ Run
hatch run allto ensure quality - 📬 Submit a pull request
For code contributions:
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Ensure all tests pass (
hatch run all) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Speed up development:
# Use parallel testing by default
alias test="hatch run test-parallel"
# Quick format + lint
hatch run format && hatch run lint
# Watch mode for tests (install pytest-watch)
pip install pytest-watch
ptw -- -n autoIDE Integration:
- VS Code: Install Python, Pylance, Ruff extensions
- PyCharm: Configure Hatch as project interpreter
- Vim/Neovim: Use ALE or coc-pyright