GitHunt
C++ Logo C# Logo

MAANG Interview Prep in C++ & C#

A highly detailed, Open-Source Interactive Notebook Curriculum for cracking Meta, Amazon, Apple, Netflix, and Google.

C++ & C# CI Tests Issues Pull Requests License


Welcome to the MAANG Interview Prep repository, a comprehensive, multi-language (C++ & C#) curriculum rewritten from the excellent Repovive roadmap by Shayan Chashm Jahan.

This repository transforms the roadmap into a series of highly detailed "notebooks." It is designed specifically for high-performance software engineering candidates targeting top-tier tech companies. The inclusion of C# helps reinforce Object-Oriented Programming (OOP) principles and enterprise design patterns.

πŸš€ What Makes This Repository Special?

Instead of just linking out to LeetCode or dumping bare code files, every section in this repository is a standalone notebook. For all 41 problems across the 11 topics, you will find:

  1. The Core Concept: Why the technique matters, when to use it, and how it works mechanically.
  2. Problem Statement: The exact scenario you'll face.
  3. The Hint: A nudge in the right direction if you get stuck without reading the answer.
  4. Solution Explanation: Step-by-step logic detailing the algorithm.
  5. Pseudocode: Language-agnostic logic to help you internalize the pattern.
  6. Detailed Code Implementation: Production-ready C++ (C++17) code and idiomatic C# utilizing OOP paradigms.
  7. Complexity Analysis: Deep dive into Time and Space constraints.
  8. Edge Cases & Common Mistakes: What will actually trip you up in a live interview.
  9. Interview Context: Why MAANG companies ask this specific question.

πŸ—ΊοΈ The Roadmap

The curriculum is divided into 11 strictly ordered sections. Do not skip around β€” the patterns build sequentially.

🧱 Part 1: Fundamentals & Data Structures

🧠 Part 2: Advanced Algorithmic Patterns

πŸ‘‘ Part 3: Mastery

πŸ—οΈ Part 4: System Design & Architecture

  • 12 Β· System Design
    • Multi-tiered architectures, databases, load balancing, microservices, and Object-Oriented Design (OOD).

πŸ’» How to Use This Guide

  1. Follow the Order: Start at 01_Understanding_MAANG_Interviews and move sequentially.
  2. Read the Intros: Every section README.md begins with a crucial Why/When/How guide mapping out the core pattern. Don't skip it.
  3. Try Before You Peek: Read the problem statement and the hint. Try to write the C++ code yourself before looking at the provided Solution Explanation and Implementation.
  4. Compile & Run: Every single implementation provided in the notebooks is also available as a standalone .cpp file in its respective directory. You can test code locally with ease.
  5. Study the Edge Cases: The "Edge Cases" and "Common Mistakes" sections are what separate a hired candidate from a rejected one. Internalize them.

βš™οΈ Running Locally & Testing

All solutions are self-contained files. C++ files include a main() validation entry point, while C# files are verified for compilation against .NET syntactical correctness.

C++ Example:

cd 02_Arrays_and_Hashing
g++ -std=c++17 two_sum.cpp -o two_sum
./two_sum

Full Repository Verification

We maintain a zero-broken-code policy. You can run the top-level test scripts to globally verify that every single C++ solution in the repository compiles under c++17 (and passes internal assertions) and every C# file is cleanly verified:

# Ensure scripts are executable
chmod +x test_all.sh test_all_cs.sh

# Run the full test suite via NPM
npm run test

# OR run manually
./test_all.sh
./test_all_cs.sh

Note: This repository uses Husky pre-commit hooks to ensure no broken code can be pushed to the repository.


🀝 Contributing

We welcome contributions from the open-source community! If you find a bug, want to add a new problem, or wish to expand on an explanation, please help us make this resource even better.

  1. Fork the repository.
  2. Read our CONTRIBUTING.md guidelines. All new contributions must match the exhaustive standard set in the existing notebooks (Hint, Pseudocode, C++, Edge Cases, Interview Context).
  3. Install dependencies: npm install (sets up pre-commit hooks).
  4. Create a feature branch: git checkout -b feature/new-problem
  5. Commit your changes: git commit -m "feat: add missing problem"
  6. Push to the branch and open a Pull Request.

πŸ“œ License & Accreditation

This project is open-source and available under the terms of the MIT License.

The problem set and syllabus structure are based on the Repovive roadmap by Shayan Chashm Jahan. Implemented entirely in modern C++ and idiomatic C# for high-performance engineering interviews.