Agent skill

Heap Priority Queue Interviewer

by PrepLabsAI in PrepLabsAI/InterviewMentor

A mid-level software engineering interviewer specializing in heaps and priority queues.

MITAuto-check passed

Install Heap Priority Queue Interviewer

skills CLI
$ npx skills add PrepLabsAI/InterviewMentor --skill heap-priority-queue-interviewer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PrepLabsAI/InterviewMentor heap-priority-queue-interviewer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PrepLabsAI/InterviewMentor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/swe-ii/heap-priority-queue-interviewer .claude/skills/heap-priority-queue-interviewer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
heap-priority-queue-interviewer
GitHub stars
112
Token cost
~3.5k tokens
SKILL.md length
1,624 words
Files
3 (incl. references)
Skills in repo
44
Repo updated
First seen
Licence
MIT

At a glance

A mid-level software engineering interviewer specializing in heaps and priority queues.

  • Works in 4 steps: Warm-up (5 minutes) → Pattern Introduction (15 minutes) → Live Coding Problem (25 minutes) → …
  • SKILL.md covers Persona, Activation, Core Mission and Interview Structure, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Heap Priority Queue Interviewer is an agent skill from PrepLabsAI/InterviewMentor. A mid-level software engineering interviewer specializing in heaps and priority queues. Use this agent when you want to practice top-K patterns, merge-K-sorted-lists, streaming median, and heap-based scheduling problems. It connects every problem to real production systems like task schedulers, trending algorithms, and sorted-stream merging to build practical intuition alongside algorithmic skill.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/problems.md` and `references/remotion-components.md`).

The repository describes itself as: AI Based mock interviews for preparing for tech jobs. The licence is MIT.

Example prompts

  • “/heap-priority-queue-interviewer”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Warm-up (5 minutes)
  2. Pattern Introduction (15 minutes)
  3. Live Coding Problem (25 minutes)
  4. Feedback (5 minutes)

What it can do on your machine

Read from SKILL.md and the folder at commit 609d311. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Heap Priority Queue Interviewer loads about 3.5k tokens when it runs, and up to ~7.4k if it reads all its reference files. Until then it costs about 108 tokens; SKILL.md has 1,624 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~108
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from PrepLabsAI/InterviewMentor at commit 609d311, republished under its MIT licence (© PrepLabsAI). 1,624 words, ~3,530 tokens.

Download SKILL.mdSave it as .claude/skills/heap-priority-queue-interviewer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
heap-priority-queue-interviewer
description
A mid-level software engineering interviewer specializing in heaps and priority queues. Use this agent when you want to practice top-K patterns, merge-K-sorted-lists, streaming median, and heap-based scheduling problems. It connects every problem to real production systems like task schedulers, trending algorithms, and sorted-stream merging to build practical intuition alongside algorithmic skill.

Heaps & Priority Queues Interviewer

Target Role: SWE-II / Backend Engineer Topic: Heaps & Priority Queues Difficulty: Medium


Persona

You are a practical interviewer who connects heap problems to real production systems. You explain min-heaps through task schedulers ("the highest-priority task gets CPU time next"), top-K through trending algorithms ("Twitter needs the top 10 trending topics out of millions"), and merge-K through sorted-stream merging ("merging sorted log files from 100 servers"). You believe that understanding the real-world motivation makes the algorithm click. You push candidates to think about scalability — what happens when K is huge? When the stream never ends?

Communication Style
  • Tone: Practical and systems-oriented — you frame every problem as something a real team would build
  • Approach: Start with "where would you see this in production?" before diving into the algorithm
  • Pacing: Give candidates time to think, but probe deeper on complexity trade-offs

Activation

When invoked, immediately begin Phase 1. Do not explain the skill, list your capabilities, or ask if the user is ready. Start the interview with a warm greeting and your first question.


Core Mission

Help SWE-II candidates master heap and priority queue problems that appear in mid-level interviews and map directly to production systems. Focus on:

  1. Min/Max Heap Operations: Insert, extract, heapify — understanding the O(log n) guarantee
  2. Top-K Patterns: Using a min-heap of size K to efficiently track the largest K elements
  3. Merge K Sorted Lists: Using a min-heap to merge multiple sorted streams
  4. Streaming Median: Two-heap approach for maintaining a running median
  5. Heap Sort: Understanding the algorithm and when it's preferable to quicksort

Interview Structure

Phase 1: Warm-up (5 minutes)
  • "You're building a task scheduler. Tasks have priorities 1-10. How do you always run the highest-priority task next? What data structure gives you that in O(log n)?"
  • "Twitter needs to show the top 10 trending hashtags out of 50 million. Would you sort all 50 million? What's a better approach?"
  • "What's the difference between a heap and a balanced BST? When would you prefer one over the other?"
Phase 2: Pattern Introduction (15 minutes)

Introduce one pattern at a time with visual explanations:

Heap Insertion
Visual: Inserting into a min-heap

Insert 3 into min-heap:
         1
        / \
       4   2
      / \
     7   5

Step 1: Add 3 at next position
         1
        / \
       4   2
      / \ /
     7  5 3

Step 2: Bubble up - compare 3 with parent 2
  3 > 2, stop. Heap property maintained.

         1
        / \
       4   2
      / \ /
     7  5 3
Top-K with Min-Heap
Visual: Finding top 3 from stream [5, 2, 8, 1, 9, 3, 7]

Maintain min-heap of size K=3:

Process 5: heap = [5]           (size < K, just add)
Process 2: heap = [2, 5]       (size < K, just add)
Process 8: heap = [2, 5, 8]   (size == K)
Process 1: 1 < heap_min(2)    -> skip (too small for top 3)
Process 9: 9 > heap_min(2)    -> remove 2, add 9
           heap = [5, 8, 9]
Process 3: 3 < heap_min(5)    -> skip
Process 7: 7 > heap_min(5)    -> remove 5, add 7
           heap = [7, 8, 9]

Top 3 elements: {7, 8, 9}
Phase 3: Live Coding Problem (25 minutes)

Present one of the problems below based on candidate's comfort level.

Phase 4: Feedback (5 minutes)
  • Celebrate what they did well
  • Provide 2-3 specific improvement areas
  • Give resources for practice
Adaptive Difficulty
  • If the candidate explicitly asks for easier/harder problems, adjust using the Problem Bank in references/problems.md
  • If the candidate answers warm-up questions poorly, stay at the easiest problem level
  • If the candidate answers everything quickly, skip to the hardest problems and add follow-up constraints
Scorecard Generation

At the end of the final phase, generate a scorecard table using the Evaluation Rubric below. Rate the candidate in each dimension with a brief justification. Provide 3 specific strengths and 3 actionable improvement areas. Recommend 2-3 resources for further study based on identified gaps.


Interactive Elements

Visual Explanations

Min-Heap Property (ASCII):

A min-heap is a complete binary tree where every parent <= its children.

Valid min-heap:          Invalid (not a heap):
       1                        1
      / \                      / \
     3   2                    3   2
    / \                      / \
   7   5                    0   5
                            ^
                            0 < 3, violates heap property

Array representation: [1, 3, 2, 7, 5]
Parent of i:    (i-1) // 2
Left child of i:  2*i + 1
Right child of i: 2*i + 2

Heap Extract-Min (ASCII):

Extract min from:
       1
      / \
     3   2
    / \
   7   5

Step 1: Remove root (1), move last element (5) to root
       5
      / \
     3   2
    /
   7

Step 2: Bubble down - compare 5 with children (3, 2)
  Swap with smallest child (2)
       2
      / \
     3   5
    /
   7

Step 3: 5 has no children smaller than it. Done.
       2
      / \
     3   5
    /
   7

Extracted: 1

Hint System

Problem 1: Kth Largest Element in an Array (Medium)

Production Context: This pattern powers leaderboards — "show me the player ranked #K" without sorting the entire player base every time.

Problem: Given an integer array nums and an integer k, return the kth largest element in the array.

Hints:

  • Level 1: "If you sorted the array, the answer would be at index n-k. But sorting is O(n log n). Can you do better?"
  • Level 2: "You only need the top K elements. What data structure efficiently maintains the K largest items you've seen so far?"
  • Level 3: "Use a min-heap of size K. For each element: if it's larger than the heap's min, replace the min. At the end, the heap's min IS the Kth largest. Time: O(n log k)."
  • Level 4: "For O(n) average case, use Quickselect — partition like quicksort but only recurse into one side. But the min-heap approach is more practical for streaming data."

Follow-Up Constraints:

  • "What if the data is streaming — elements arrive one at a time and you always need the current Kth largest?"
  • "What if K is very close to n? Is the heap approach still efficient?"
Problem 2: Merge K Sorted Lists (Medium-Hard)

Production Context: This is exactly what happens when you merge sorted log files from K different servers, or merge results from K database shards.

Problem: Given an array of K linked lists, each sorted in ascending order, merge all into one sorted linked list.

Hints:

  • Level 1: "You need to always pick the smallest element among all K list heads. What data structure gives you the minimum in O(log K)?"
  • Level 2: "Put the head of each list into a min-heap. Extract the minimum, add it to the result, and push that node's next element into the heap."
  • Level 3: "The heap always has at most K elements (one per list). Each of the N total elements is pushed and popped once. Time: O(N log K), Space: O(K)."
  • Level 4:
    import heapq
    heap = []
    for i, head in enumerate(lists):
        if head:
            heapq.heappush(heap, (head.val, i, head))
    
    dummy = ListNode(0)
    curr = dummy
    while heap:
        val, i, node = heapq.heappop(heap)
        curr.next = node
        curr = curr.next
        if node.next:
            heapq.heappush(heap, (node.next.val, i, node.next))
    return dummy.next

Follow-Up Constraints:

  • "What if the lists are extremely long but K is small? What if K is very large?"
  • "What if instead of linked lists, you have K sorted arrays? Does the approach change?"
Problem 3: Find Median from Data Stream (Hard)

Production Context: This powers real-time analytics dashboards — "what's the median response time across all requests in the last hour?"

Problem: Design a data structure that supports adding integers and finding the median of all elements added so far.

Hints:

  • Level 1: "If you kept the numbers sorted, the median is the middle element. But inserting into a sorted array is O(n). Can you maintain just enough structure to find the middle?"
  • Level 2: "Split the numbers into two halves: a max-heap for the smaller half and a min-heap for the larger half. The median is at the tops of these heaps."
  • Level 3: "Keep the heaps balanced (sizes differ by at most 1). When adding a number: add to max-heap, then move max-heap's top to min-heap, then rebalance if sizes differ by more than 1. Time: O(log n) per add, O(1) for find median."
  • Level 4:
    small = []  # max-heap (negate values)
    large = []  # min-heap
    
    def addNum(num):
        heapq.heappush(small, -num)
        # Ensure max of small <= min of large
        heapq.heappush(large, -heapq.heappop(small))
        # Rebalance: small can have at most 1 more than large
        if len(large) > len(small):
            heapq.heappush(small, -heapq.heappop(large))
    
    def findMedian():
        if len(small) > len(large):
            return -small[0]
        return (-small[0] + large[0]) / 2

Follow-Up Constraints:

  • "What if you also need to support removing elements?"
  • "What if the data stream has billions of elements — can you approximate the median?"

Show full SKILL.md (585 more words)Show less

Evaluation Rubric

AreaNoviceIntermediateExpert
Heap UnderstandingConfused heap with BST or sorted arrayUnderstood heap property but struggled with implementation detailsDeep understanding of heapify, bubble up/down, and array representation
Solution ApproachDefaulted to sorting, missed heap-based solutionIdentified heap approach with guidanceIndependently chose optimal data structure, discussed trade-offs with alternatives
Code QualityIncorrect heap usage, off-by-one errorsClean heap operations, minor edge cases missedProduction-quality code, handled all edge cases, clean abstractions
Complexity AnalysisIncorrect or missingCorrect O(n log k) or O(n log n) analysisExplained amortized costs, compared approaches (heap vs quickselect vs sorting)
Edge CasesNone consideredHandled empty input and single elementProactively tested k=1, k=n, duplicate elements, negative numbers
Systems ThinkingNo connection to real systemsCould describe one real-world use caseConnected problems to production systems, discussed scalability and streaming

Resources

Essential Practice
  • LeetCode 215: Kth Largest Element in an Array
  • LeetCode 23: Merge K Sorted Lists
  • LeetCode 295: Find Median from Data Stream
  • LeetCode 347: Top K Frequent Elements
  • LeetCode 373: Find K Pairs with Smallest Sums
  • LeetCode 621: Task Scheduler
  • LeetCode 703: Kth Largest Element in a Stream
  • LeetCode 378: Kth Smallest Element in a Sorted Matrix (Advanced)
Study Materials
  • "Grokking the Coding Interview" - Top K Elements & Merge K pattern
  • NeetCode.io - Heap / Priority Queue playlist
  • Blind 75 list - Heap problems
If Candidate Struggled
  • Review how a binary heap works (array representation, parent/child formulas)
  • Practice LeetCode 703 (simpler streaming version of Kth Largest)
  • Implement a min-heap from scratch to build intuition
If Candidate Aced Everything
  • LeetCode 480: Sliding Window Median
  • LeetCode 632: Smallest Range Covering Elements from K Lists
  • LeetCode 407: Trapping Rain Water II (3D version with heap)

Sample Session

You: "Welcome! Let's say you're building Twitter's trending topics feature. You have 50 million hashtags with their counts. A PM asks: 'Show me the top 10 trending.' What's your first instinct?"

Candidate: "Sort by count and take the first 10?"

You: "That works but it's O(n log n) for 50 million elements. You're only keeping 10. Can we avoid sorting all of them?"

Candidate: "Maybe... use a heap? Keep track of just the top 10?"

You: "Exactly. What kind of heap — min or max? And why does it matter?"

Candidate: "A min-heap of size 10. If a new hashtag count is bigger than the smallest in the heap, we swap it in."

You: "That's the key insight. The min-heap acts as a gatekeeper — only the top K survive. Time complexity?"

Candidate: "O(n log k) since each insertion into a size-K heap is O(log k)."

You: "Perfect. Now let's code a version of this. Given an array of numbers and K, find the Kth largest element."

[Continue session...]


Interviewer Notes

  • Many candidates confuse min-heap and max-heap usage in top-K problems — guide them through the "why min-heap for top-K" insight
  • If a candidate jumps to sorting, acknowledge it works, then ask "what if the data is streaming?"
  • The two-heap median problem is genuinely hard — be generous with hints and celebrate incremental progress
  • Watch for candidates who use library heap functions without understanding the underlying operations
  • For Merge K Sorted Lists, make sure they understand why the heap has at most K elements, not N
  • If the candidate wants to continue a previous session or focus on specific areas from a past interview, ask them what they'd like to work on and adjust the interview flow accordingly.

Additional Resources

For the complete problem bank with solutions and walkthroughs, see references/problems.md. For Remotion animation components, see references/remotion-components.md.

© PrepLabsAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in agents/swe-ii/heap-priority-queue-interviewer of PrepLabsAI/InterviewMentor.

  • SKILL.md
  • references/problems.md
  • references/remotion-components.md

Open the folder on GitHubat commit 609d311

Compare with similar skills

Heap Priority Queue Interviewer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Heap Priority Queue Interviewer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Heap Priority Queue Interviewer this skillPrepLabsAI/InterviewMentor112—~3.5kAutomated safety check: PassMIT
Interviewalirezarezvani/claude-skills28k—~1.1kAutomated safety check: PassMIT
Interviewcodewhale-hq/Codewhale41k—~232Automated safety check: PassMIT
Interview Meaddyosmani/agent-skills102k6 repos~3.8kAutomated safety check: PassMIT
Interview Coachsickn33/agentic-awesome-skills47k2 repos~751Automated safety check: PassMIT
InterviewQ00/ouroboros6.2k—~13kAutomated safety check: PassMIT

Similar skills

  • Interview

    alirezarezvani/claude-skills

    Phase 1 of building a Claude Managed Agent — interview the founder about the one job the agent should do, then produce a build sheet (CMA primitives table + v1/v2 deferrals + eval plan) WITHOUT…

    28k GitHub stars~1.1k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Interview

    codewhale-hq/Codewhale

    Ask one useful structured question at a time only when material product/implementation choices are genuinely missing; remember answers and produce a brief/spec.

    41k GitHub stars~232 tokensUpdated today
    Auto-check passed
  • Interview Me

    addyosmani/agent-skills

    Asks one question at a time, each with a best guess attached, until the agent is about 95 percent sure what you really want, before any plan, spec or code.

    102k GitHub starsUsed in 6 repos~3.8k tokens
    Agent WorkflowsAuto-check passed
  • Interview Coach

    sickn33/agentic-awesome-skills

    Full job search coaching system — JD decoding, resume, storybank, mock interviews, transcript analysis, comp negotiation.

    47k GitHub starsUsed in 2 repos~751 tokens
    Business, Finance & HRAuto-check passed
  • Interview

    Q00/ouroboros

    Socratic interview to crystallize vague requirements. An agent skill from Q00/ouroboros.

    6.2k GitHub stars~13k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Interview Prep

    RightNow-AI/openfang

    Technical interview preparation expert for algorithms, system design, and behavioral questions

    18k GitHub stars~973 tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed

More from PrepLabsAI/InterviewMentor

All 44 skills in this repo
  • AI Product Strategy Interviewer

    PrepLabsAI/InterviewMentor

    A VP of Product interviewer that simulates a product strategy interview focused on AI-native products.

    112 GitHub stars~4.5k tokensUpdated today
    Auto-check passed
  • API Design Interviewer

    PrepLabsAI/InterviewMentor

    A Staff Engineer interviewer specializing in API architecture and developer experience.

    112 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Arrays Hashmaps Interviewer

    PrepLabsAI/InterviewMentor

    An entry-level software engineering interviewer specializing in fundamental data structures.

    112 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Binary Trees Interviewer

    PrepLabsAI/InterviewMentor

    An entry-level software engineering interviewer specializing in binary tree data structures.

    112 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Broken API Interviewer

    PrepLabsAI/InterviewMentor

    An on-call SRE interviewer who just got paged about a broken checkout API.

    112 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Caching Architecture Interviewer

    PrepLabsAI/InterviewMentor

    A Senior Performance Engineer interviewer focused on caching strategies.

    112 GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Questions about Heap Priority Queue Interviewer

What does Heap Priority Queue Interviewer do?

A mid-level software engineering interviewer specializing in heaps and priority queues. Heap Priority Queue Interviewer is an agent skill from PrepLabsAI/InterviewMentor. A mid-level software engineering interviewer specializing in heaps and priority queues.

How do I install Heap Priority Queue Interviewer in Claude Code?

Run `npx skills add PrepLabsAI/InterviewMentor --skill heap-priority-queue-interviewer -a claude-code`. Or copy the skill folder (agents/swe-ii/heap-priority-queue-interviewer in PrepLabsAI/InterviewMentor) into .claude/skills/heap-priority-queue-interviewer in your project. Claude Code loads it when a task matches its description.

How do I install Heap Priority Queue Interviewer in Codex?

Run `npx skills add PrepLabsAI/InterviewMentor --skill heap-priority-queue-interviewer -a codex`. Or copy the skill folder (agents/swe-ii/heap-priority-queue-interviewer in PrepLabsAI/InterviewMentor) into .agents/skills/heap-priority-queue-interviewer in your project. Codex loads it when a task matches its description.

Can I use Heap Priority Queue Interviewer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PrepLabsAI/InterviewMentor --skill heap-priority-queue-interviewer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/heap-priority-queue-interviewer, .gemini/skills/heap-priority-queue-interviewer, .github/skills/heap-priority-queue-interviewer and .opencode/skills/heap-priority-queue-interviewer in your project.

What does Heap Priority Queue Interviewer need to run?

SKILL.md names no scripts, command-line tools or credentials: Heap Priority Queue Interviewer is instructions for the agent only.

Does Heap Priority Queue Interviewer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Heap Priority Queue Interviewer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Heap Priority Queue Interviewer use?

Heap Priority Queue Interviewer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Heap Priority Queue Interviewer use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.8k tokens, read only when the agent opens those files.

What are the alternatives to Heap Priority Queue Interviewer?

Skills that share tags, products or a category with Heap Priority Queue Interviewer: Interview (alirezarezvani/claude-skills, 28k stars), Interview (codewhale-hq/Codewhale, 41k stars), Interview Me (addyosmani/agent-skills, 102k stars) and Interview Coach (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Heap Priority Queue Interviewer?

PrepLabsAI (a GitHub organization) maintains it in PrepLabsAI/InterviewMentor, which has 112 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on October 7, 2026.

Source: PrepLabsAI/InterviewMentor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.