Skip to content

umitkacar/awesome-interview

Repository files navigation

πŸš€ Awesome FAANG Interview Resources

Your Ultimate Guide to Landing Your Dream Tech Job in 2025 🎯

GitHub stars Last Updated PRs Welcome License

Typing SVG

πŸ“Š Repository Stats

πŸ“š Resources πŸŽ₯ YouTube Channels πŸ“– Books 🌐 Platforms πŸ€– AI/ML Section
150+ 15+ 20+ 25+ βœ… NEW

πŸ“‘ Table of Contents


🎯 FAANG Interview Essentials

Start your journey with these battle-tested resources ⚑

πŸ”₯ Essential Interview Prep Paths

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! ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐

🎬 Top Video Courses (2024-2025)

πŸŽ“ 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

πŸ“Ί Top YouTube Channels 2025

Learn from the best! These channels have helped thousands land FAANG offers πŸŽ“

πŸ’» Coding Interview Channels


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

🎯 More Awesome Channels

  • πŸ“Ί 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!)

πŸ—οΈ System Design & Career Channels

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

πŸ’Ύ Data Structures & Algorithms

Master the fundamentals that 90% of interviews test πŸ“Š

🎯 Essential Resources


Big O Cheat Sheet
⏱️ Time & Space complexity reference

VisuAlgo
πŸ‘€ See algorithms in action!

NeetCode Roadmap
πŸ—ΊοΈ Structured learning path

πŸ“š Top DSA Courses

+ 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

πŸŽ“ Object Oriented Programming

Essential for system design and coding interviews πŸ›οΈ

Resource Type Level Link
🐍 Real Python OOP Tutorial Path ⭐⭐ Visit
πŸ“Ί Corey Schafer Video Series ⭐⭐ Watch
🎨 Design Patterns Interactive Guide ⭐⭐⭐ Learn

πŸ“š Must-Read Books 2024-2025

Invest in these proven resources πŸ’Ž

πŸ†• New Releases (2024-2025)


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

πŸ“– Coding Interview Classics

πŸ“• 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

πŸ—οΈ System Design Books

πŸ”₯ 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

πŸ’Ό Behavioral & Career

πŸ€– AI/ML Interview Books

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

πŸ’» Online Coding Platforms

Practice makes perfect 🎯

πŸ† Problem Solving Platforms


LeetCode
⭐ #1 Platform
πŸ“Š 3000+ problems

NeetCode
πŸŽ₯ Video solutions
πŸ”₯ Most popular 2025

HackerRank
πŸ… Certifications
πŸ’Ό Job matching

CodeForces
πŸ† Competitive
⚑ Contest rated

CodeChef
🌍 Global contests
πŸ“ˆ Rating system

πŸŽ“ Interview Prep Platforms

πŸ’Ž 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 ⭐⭐⭐⭐

🎯 Mock Interview Platforms

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

πŸ“Š Assessment Platforms

  • πŸ“ TestDome - Skills assessment & certifications
  • πŸ’» DevSkiller - Technical screening for companies
  • πŸ€– Workera.ai - AI skills assessment
  • πŸ“Š DataCamp - Data science focused

πŸ€– AI & Machine Learning Interviews

Critical for 2025! ML roles are exploding πŸš€

🧠 ML Interview Resources

πŸ“š Free Resources

πŸ’Ž Premium Courses

🎯 Key Topics to Master for 2025

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 Resources

The most challenging part of FAANG interviews πŸ’ͺ

πŸ“š Essential Resources


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

πŸ“Ί Video Resources

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

🎯 Practice Platforms

πŸŽͺ Where to practice system design interviews

🎁 Additional Resources

Everything else you need to succeed ✨

πŸ™ GitHub Repositories

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

πŸ’° Salary Negotiation


Levels.fyi
πŸ“Š Real salary data
🏒 All major tech companies

TeamBlind
πŸ’¬ Anonymous community
πŸ” Real employee insights

Negotiation Guide
πŸ“– Comprehensive guide
πŸ’‘ Proven strategies

πŸ“„ Resume & LinkedIn


πŸ“ˆ Learning Path Recommendation

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
Loading

πŸ—“οΈ Suggested Study Schedule

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

πŸ‘¨β€πŸ’» For Developers - Contributing to This Project

Want to improve this project? Here's everything you need!

PRs Welcome Python 3.11+ Hatch

πŸš€ Quick Start for Developers

This project uses modern Python tooling for production-grade quality. Here's how to get started:

πŸ“‹ Prerequisites

  • Python 3.11+ - Required for modern type hints
  • Git - For version control
  • Hatch - Modern Python project manager

⚑ Setup in 3 Steps

# 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 install

That's it! Hatch will automatically manage environments and dependencies.


πŸ› οΈ Development Commands

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

🎯 Recommended Workflow

# 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"

πŸ§ͺ Testing

We maintain 93.50% code coverage with comprehensive tests.

Running 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  # Linux

Test Structure

tests/
β”œβ”€β”€ conftest.py           # Shared fixtures
β”œβ”€β”€ test_cli.py          # CLI command tests (33 tests)
└── test_core.py         # Core logic tests

Writing 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"
        )

πŸ“Š Quality Standards

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

Quality Tools

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

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

Manual Hook Execution

# 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-verify

πŸ“ Project Structure

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

🎨 Code Style Guidelines

Type Hints

# βœ… 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):
    ...

Docstrings

# βœ… 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"])

Error Handling

# βœ… 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")

πŸ› Debugging

Enable Verbose Output

# 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

Type Checking Issues

# 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

πŸ“š Additional Documentation


🀝 Contributing Resources

Found a great resource? Have suggestions?

Simply:

  1. 🍴 Fork this repository
  2. ✏️ Add your resource to README.md
  3. βœ… Run hatch run all to ensure quality
  4. πŸ“¬ Submit a pull request

For code contributions:

  1. Create a feature branch (git checkout -b feature/amazing-feature)
  2. Make your changes
  3. Ensure all tests pass (hatch run all)
  4. Commit your changes (git commit -m 'feat: add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

πŸ’‘ Pro Tips

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 auto

IDE Integration:

  • VS Code: Install Python, Pylance, Ruff extensions
  • PyCharm: Configure Hatch as project interpreter
  • Vim/Neovim: Use ALE or coc-pyright


⭐ Show Your Support

If this helped you, give it a star! It helps others discover these resources 🌟

GitHub stars GitHub forks


πŸ“« Connect & Stay Updated


Last Updated: January 2025 πŸ“…

License: MIT πŸ“œ


Motivation

Made with ❀️ for aspiring FAANG engineers