Skip to content

Learning Resources

A structured path through software engineering fundamentals. Each guide is written to help you move from concept to practice efficiently, with visual explanations and hands-on examples.

  • Algorithm Patterns


    Master 12+ essential patterns with visual explanations, step-by-step walkthroughs, and LeetCode practice problems.

    Open Pattern Library

  • Data Structures


    From arrays to tries, understand when and why to use each structure with complexity analysis.

    Browse Structures

  • Interview Preparation


    A 7-step framework for technical interviews plus communication strategies and practice plans.

    Start Preparing

  • System Design


    Scalability, reliability, and maintainability principles for building production systems.

    Learn Design

  • Cloud AI Platforms


    Hands-on guides for Google Vertex AI, from setup to deployment.

    Explore Cloud AI

  • Additional Topics


    Curated resources on distributed systems, networking, security, and engineering best practices.

    Browse Topics


Learning Path

┌─────────────────────────────────────────────────────────────────────────────┐
│                           RECOMMENDED PROGRESSION                            │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌───────────────┐       ┌───────────────┐       ┌───────────────┐
    │   FOUNDATION  │       │   PATTERNS    │       │   ADVANCED    │
    │               │       │               │       │               │
    │ Data          │──────>│ Sliding       │──────>│ System        │
    │ Structures    │       │ Window        │       │ Design        │
    │               │       │               │       │               │
    │ Arrays        │       │ Two Pointers  │       │ Distributed   │
    │ Hash Tables   │       │               │       │ Systems       │
    │ Trees         │       │ Dynamic       │       │               │
    │ Graphs        │       │ Programming   │       │ Cloud AI      │
    │               │       │               │       │               │
    │ Complexity    │       │ Backtracking  │       │ Interview     │
    │ Analysis      │       │               │       │ Prep          │
    └───────────────┘       └───────────────┘       └───────────────┘
          │                       │                       │
          │                       │                       │
          ▼                       ▼                       ▼
    2-3 weeks              4-6 weeks               Ongoing

Algorithm Patterns at a Glance

Each pattern includes conceptual overview, step-by-step approach, and worked LeetCode examples.

Pattern Use Case Complexity Links
Sliding Window Contiguous subarrays, substring problems O(n) Notes
Two Pointers Sorted arrays, palindromes, partitioning O(n) Notes
Fast & Slow Cycle detection, middle element O(n) Notes
Dynamic Programming Overlapping subproblems, optimization O(n) to O(n^2) Notes
Backtracking Permutations, combinations, constraint satisfaction O(2^n) Notes
Binary Search on Answer Optimization with monotonic check O(n log k) Notes
Greedy Local optima lead to global optima O(n log n) Notes
Heap / Priority Queue Top-k, scheduling, streaming O(n log k) Notes
Monotonic Stack Next greater/smaller element O(n) Notes
Graph Traversal BFS/DFS, connectivity, shortest path O(V + E) Notes
Trie Prefix matching, autocomplete O(m) Notes

How to Use These Notes

Active Learning

Don't just read the solutions. Write code from scratch, trace through examples by hand, and explain approaches out loud.

Pattern Recognition

When stuck on a new problem, ask: "What pattern does this remind me of?" The pattern library helps build this intuition.

Spaced Repetition

Revisit problems after a few days. If you can't solve it again, you haven't truly learned it yet.

Track Progress

Keep a log of problems solved and patterns practiced. Celebrate consistency over cramming.


Quick Reference

Resource Best For
Algorithm Patterns Systematic problem-solving techniques
Data Structures Understanding when to use which structure
Interview Prep Communication and strategy under pressure
System Design Designing scalable systems
Distributed Systems Consensus, consistency, and resilience
Cloud AI Hands-on with Vertex AI and cloud ML