| π 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