GitHub interview process (2026)

Round-by-round breakdown of the GitHub software engineering interview across 3 levels and 15 rounds: interview mode, sample questions, and worked solutions.

GitHub salary & ratings · All interview processes

Software Engineer II — India (Remote)

Difficulty: Medium · Timeline: ~4-6 weeks · Recommended prep: 4-6 weeks

  1. Round 0: Recruiter screen

    Phone · ~30 min

    Mode of interview: Remote phone or video interview

  2. Round 1: Take-home exercise (coding + code review)

    Assessment · ~3-5 hrs (300-min window) · difficulty 3/5 · elimination round

    Mode of interview: Online assessment

    Sample question: Part-1 style task: the service needs request throttling. Implement a sliding-window rate limiter — given a limit of N requests per W-second window and a stream of request timestamps (non-decreasing), decide ALLOW or DROP for each request. Input: N W Q, then Q timestamps. Output one line per request.

  3. Round 2: Pairing exercise (live coding + code review)

    Onsite · ~60 min · difficulty 3/5

    Mode of interview: Onsite or virtual onsite interview

    Sample question: Implementation exercise in the reported battleship flavor: given an n x m board where 'X' marks ship cells and '.' water, ships are straight horizontal/vertical lines and no two ships touch, count the number of ships in a single pass. Input: n m, then n rows. Output the count.

  4. Round 3: Technical interview (implementation + API/product)

    Onsite · ~45-60 min · difficulty 3/5

    Mode of interview: Onsite or virtual onsite interview

    Sample question: Write a small client for a paginated HTTP API (GET /repos?page=N returning JSON with items and next_page). Handle rate-limit 429 responses with retry-after and exponential backoff, and aggregate all items. Walk through your error handling, timeouts and how you would unit-test it without hitting the network.

  5. Round 4: Leadership principles + culture (incl. D&I)

    Behavioral · ~60 min (+30 min D&I) · difficulty 2/5

    Mode of interview: Live behavioral interview

Software Engineer III — India (Remote)

Difficulty: Medium · Timeline: ~4-6 weeks · Recommended prep: 6-8 weeks

  1. Round 0: Recruiter screen

    Phone · ~30 min

    Mode of interview: Remote phone or video interview

  2. Round 1: Take-home exercise (coding + code review)

    Assessment · ~3-5 hrs (300-min window) · difficulty 3/5 · elimination round

    Mode of interview: Online assessment

    Sample question: Warm-up in GitHub's own domain: a commit DAG is given as parent edges. Find the merge-base of two commits — the nearest common ancestor (as git merge-base does). Input: n m, then m lines "child parent", then two commits a b. Output the merge-base commit id, or -1 if none.

  3. Round 2: Pairing + code review (with DSA/LLD flavor)

    Onsite · ~60-90 min · difficulty 4/5

    Mode of interview: Onsite or virtual onsite interview

    Sample question: Code-review exercise: you are shown a PR that adds an in-process cache to a hot API path. The diff has a check-then-act race between contains() and get(), no TTL/eviction, and a test that asserts on timing. Identify the issues, rank them by severity, and propose the fix you would request before approving.

  4. Round 3: System design (HLD)

    System_design · ~60 min · difficulty 4/5

    Mode of interview: Live system design interview

    Sample question: Design GitHub's webhook delivery system: repos register endpoint URLs for events (push, PR, issue). Deliver events at-least-once with HMAC signing, per-endpoint ordering, exponential-backoff retries for failing endpoints, dead-lettering after N attempts, and a redelivery UI — at the scale of millions of active repositories.

  5. Round 4: Hiring manager + leadership/D&I

    Behavioral · ~60-90 min total · difficulty 2/5

    Mode of interview: Live behavioral interview

Senior Software Engineer — India (Remote)

Difficulty: Hard · Timeline: ~4-6 weeks · Recommended prep: 8-10 weeks

  1. Round 0: Recruiter + hiring manager screens

    Phone · ~30-45 min each · difficulty 1/5

    Mode of interview: Remote phone or video interview

  2. Round 1: Technical screen (live coding / Codility)

    Assessment · ~45-60 min · difficulty 3/5 · elimination round

    Mode of interview: Online assessment

    Sample question: Build a tiny in-memory file-system API in stages: (1) mkdir/addFile/ls with path validation; (2) add file contents and a find(pattern) walk; (3) add size accounting per directory. Each stage builds on the last — keep the design extensible as subparts land.

  3. Round 2: Pairing + code review

    Onsite · ~60-90 min · difficulty 4/5

    Mode of interview: Onsite or virtual onsite interview

  4. Round 3: System design + architecture deep-dive

    System_design · ~60-75 min · difficulty 5/5

    Mode of interview: Live system design interview

    Sample question: Design the pull-request service for a GitHub-scale code host: diff computation and storage for large repos, merge-conflict detection, mergeability checks that stay fresh as base branches move, review state, and required status checks — for millions of repositories with hot monorepos. Then: walk through the hardest system you have built and its worst production incident.

  5. Round 4: Leadership principles + D&I

    Behavioral · ~60 min (+30 min D&I) · difficulty 2/5

    Mode of interview: Live behavioral interview

Other companies' interview processes

Worked sample solutions (code, design diagrams, and STAR answers) for every round are available in the FAANGPlus app: open interview processes.