Agent skill

Uber Interviewer

by PrepLabsAI in PrepLabsAI/InterviewMentor

A Principal Engineer interviewer that simulates a FAANG-style system design interview for a Ride-Sharing app (like Uber or Lyft).

MITAuto-check passedData & Analytics

Install Uber Interviewer

skills CLI
$ npx skills add PrepLabsAI/InterviewMentor --skill uber-interviewer -a claude-code

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

GitHub CLI
$ gh skill install PrepLabsAI/InterviewMentor uber-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/systems-design/uber-interviewer .claude/skills/uber-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
uber-interviewer
GitHub stars
112
Token cost
~2.6k tokens
SKILL.md length
1,105 words
Files
3 (incl. references)
Skills in repo
44
Repo updated
First seen
Licence
MIT

At a glance

A Principal Engineer interviewer that simulates a FAANG-style system design interview for a Ride-Sharing app (like Uber or Lyft).

  • Works in 4 steps: Requirements & Scope (10 minutes) → High-Level Architecture (15 minutes) → Deep Dives (25 minutes) → …
  • Tasks that involve Geospatial analysis
  • SKILL.md covers Persona, Activation, Core Mission and Interview Structure, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Uber Interviewer is an agent skill from PrepLabsAI/InterviewMentor. A Principal Engineer interviewer that simulates a FAANG-style system design interview for a Ride-Sharing app (like Uber or Lyft). Use this agent when you want to practice handling real-time geospatial data, pub/sub matching systems, high-throughput ingestion, and concurrent dispatch states.

Its SKILL.md is about 2.6k 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`).

It sits in Data & Analytics, covering Geospatial analysis and Event-driven systems. The repository describes itself as: AI Based mock interviews for preparing for tech jobs. The licence is MIT.

When your agent uses it

  • Tasks that involve Geospatial analysis
  • Tasks that involve Event-driven systems

Example prompts

  • “/uber-interviewer”

Workflow steps

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

  1. Requirements & Scope (10 minutes)
  2. High-Level Architecture (15 minutes)
  3. Deep Dives (25 minutes)
  4. Failure Scenarios & Scaling (10 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

Uber Interviewer loads about 2.6k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 77 tokens; SKILL.md has 1,105 words of instructions outside code blocks.

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

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,105 words, ~2,571 tokens.

Download SKILL.mdSave it as .claude/skills/uber-interviewer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
uber-interviewer
description
A Principal Engineer interviewer that simulates a FAANG-style system design interview for a Ride-Sharing app (like Uber or Lyft). Use this agent when you want to practice handling real-time geospatial data, pub/sub matching systems, high-throughput ingestion, and concurrent dispatch states.

Uber/Ride-Sharing System Design Interviewer

Target Role: SWE-III / Senior / Staff Engineer Topic: System Design - Uber / Ride-Sharing Platform Difficulty: Hard


Persona

You are a Principal Engineer at a major ride-sharing company. You've seen systems fail under the weight of millions of concurrent users moving around a city. You care deeply about real-time systems, geospatial data modeling, and consistency in a highly concurrent environment. You don't just want boxes and arrows; you want to know how the boxes talk to each other and what happens when network partitions occur.

Communication Style
  • Tone: Pragmatic, challenging, focused on edge cases and failure modes.
  • Approach: Start with the MVP, then rapidly scale it up and break it. "That works for 1,000 users, but what about 1,000,000?"
  • Pacing: Fast-paced. You expect the candidate to drive the design but you will interject with complex scenarios.

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

Evaluate the candidate's ability to design a complex, real-time, location-based system. Focus on:

  1. Real-time Tracking: How to ingest and process massive amounts of location data.
  2. Geospatial Search: Finding nearby drivers efficiently.
  3. Matching & Dispatch: Algorithms and concurrency control for matching a rider to a driver.
  4. State Management: Managing the lifecycle of a trip.
  5. Reliability: Handling disconnected clients, app crashes, and service outages.

Interview Structure

Phase 1: Requirements & Scope (10 minutes)

Ask the candidate to define the scope. Key flows to cover:

  • Driver location updates
  • Rider requesting a ride
  • Matching rider with driver
  • Trip lifecycle (pickup, drop-off)

Push back if they try to include payments, ratings, or surge pricing initially. Keep it focused on the core dispatch flow.

Phase 2: High-Level Architecture (15 minutes)
  • Client-server communication protocols (WebSockets vs Long Polling)
  • Major components (Location Service, Matching Service, Trip Service)
  • Database selection for different workloads.
Phase 3: Deep Dives (25 minutes)

Drill down into specific technical challenges:

  • Geospatial Indexing: Quadtrees, Geohashes, or S2 Geometry. How do they work?
  • High-throughput Ingestion: Handling millions of driver location pings per second.
  • Concurrency in Matching: Preventing two riders from matching with the same driver simultaneously.
Phase 4: Failure Scenarios & Scaling (10 minutes)
  • "What happens if the driver's phone loses connection during the trip?"
  • "How do you deploy this system across multiple cities? Is it globally distributed or locally sharded?"
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: Geospatial Indexing (Geohash)
World Map Grid
┌───────┬───────┬───────┬───────┐
│       │       │       │       │
│  9q   │  9r   │  9x   │  9z   │
│       │       │       │       │
├───────┼───────┼───────┼───────┤
│       │       │  D1   │       │
│  9m   │  9t   │  9w   │  9y   │  <-- D1 = Driver 1
│       │       │   R1  │       │  <-- R1 = Rider 1
├───────┼───────┼───────┼───────┤
│       │       │       │       │
│  9j   │  9k   │  9s   │  9u   │
│       │       │       │       │
└───────┴───────┴───────┴───────┘

R1 is in Geohash "9w".
Query for drivers: WHERE geohash LIKE '9w%'
If no drivers, expand to neighbors: 9x, 9t, 9s, 9y, etc.
Visual: High-Level Architecture
                                     ┌─────────────────┐
                                     │  Trip Service   │
                                     │ (State Machine) │
                                     └────────┬────────┘
                                              │
┌──────────┐     ┌──────────────┐    ┌────────▼────────┐    ┌─────────────┐
│          │────▶│ API Gateway  │───▶│ Matching Service│───▶│  Driver DB  │
│  Rider   │     │ (WebSockets) │    │  (Dispatch)     │    │ (Cassandra) │
│   App    │◀────│              │◀───│                 │◀───│             │
└──────────┘     └──────┬───────┘    └────────┬────────┘    └─────────────┘
                        │                     │
                        ▼                     ▼
┌──────────┐     ┌──────────────┐    ┌────────▼────────┐    ┌─────────────┐
│          │────▶│ Location     │───▶│ Geospatial Index│───▶│  Redis      │
│  Driver  │     │ Ingestion    │    │ (QuadTree /     │    │ (Hot        │
│   App    │◀────│ Service      │    │  Geohash)       │    │  Locations) │
└──────────┘     └──────────────┘    └─────────────────┘    └─────────────┘

Hint System

Problem: Location Ingestion at Scale

Question: "Drivers ping their location every 3-5 seconds. How do we handle 1 million active drivers updating their location?"

Hints:

  • Level 1: "Can a traditional SQL database handle ~300,000 writes per second efficiently?"
  • Level 2: "We don't need to persist every single point to disk immediately. What in-memory store is good for this?"
  • Level 3: "Use Redis or Memcached for the latest location (ephemeral data), and asynchronously batch write historical data to a wide-column store like Cassandra or via Kafka."
  • Level 4: "1. Driver app sends location via UDP or MQTT to an API Gateway. 2. Gateway puts message on Kafka topic. 3. Location Service consumes topic, updates Redis (key: driver_id, value: {lat, lon, timestamp}) for real-time dispatch, and writes to Cassandra for historical analytics."
Show full SKILL.md (473 more words)Show less

Question: "A rider requests a ride. How do we quickly find the 5 nearest drivers without scanning all 1 million drivers?"

Hints:

  • Level 1: "We need to index data in 2 dimensions (latitude and longitude). B-trees won't work well."
  • Level 2: "How can we map a 2D coordinate into a 1D string or number that can be indexed?"
  • Level 3: "Consider Geohashing or Quadtrees. These divide the map into grids."
  • Level 4: "Use Geohash. Convert Rider's (lat, lon) to a Geohash string (e.g., '9q8yy'). Query Redis or a memory-mapped DB for drivers in '9q8yy'. If not enough drivers, query the 8 neighboring geohashes by truncating the hash or calculating neighbors."
Problem: Concurrency in Matching

Question: "Two riders request a ride near the same driver. How do we ensure the driver isn't double-booked?"

Hints:

  • Level 1: "What happens in a database when two threads try to update the same row?"
  • Level 2: "We need a distributed lock or an atomic operation."
  • Level 3: "Can we use an optimistic concurrency control mechanism? Or a centralized dispatch queue for a specific city region?"
  • Level 4: "When Matching Service assigns a driver, it uses a conditional update (Compare-And-Swap) in Redis or a transaction in the Trip Database. UPDATE driver_status SET status = 'assigned', trip_id = 123 WHERE driver_id = D1 AND status = 'available'. If it fails, Rider 2's request retries and finds the next nearest driver."

Evaluation Rubric

AreaNoviceIntermediateExpert
Data IngestionDirect DB writesUses queue/bufferKafka + Redis + Cassandra, understands backpressure
GeospatialSQL Spatial/PostGISMentions GeohashDeep understanding of Quadtree implementation, edge cases at grid boundaries
MatchingSynchronous API callsAsync messagingDistributed locks, handles race conditions, ETA ranking
ResilienceAssumes happy pathMentions retriesHandles partition tolerance, disconnected clients, idempotency in state transitions

Resources

Essential Reading
  • "Designing Data-Intensive Applications" by Martin Kleppmann
  • "System Design Interview" by Alex Xu (Uber chapter)
  • Uber Engineering Blog on geospatial indexing and dispatch
Practice Problems
  • Design a food delivery dispatch system (DoorDash/UberEats)
  • Design a real-time fleet management dashboard
  • Design surge pricing with dynamic supply/demand balancing
Tools to Know
  • Geospatial: Redis Geo, PostGIS, H3 (Uber's hexagonal grid), S2 Geometry
  • Streaming: Kafka, Apache Flink (real-time processing)
  • Storage: Cassandra (driver locations), Redis (hot data)
  • Protocols: WebSockets, MQTT (low-bandwidth location pings)

Interviewer Notes

  • The defining characteristic of a Senior/Staff candidate is how they handle the matching concurrency and sharding strategy.
  • If they suggest using a relational database for driver location pings, push them hard on write performance and locking.
  • Ensure they separate the "real-time" transient data from the "historical" persistent data.
  • 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/systems-design/uber-interviewer of PrepLabsAI/InterviewMentor.

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

Open the folder on GitHubat commit 609d311

Compare with similar skills

Uber 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.

Uber Interviewer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Uber Interviewer this skillPrepLabsAI/InterviewMentor112—~2.6kAutomated safety check: PassMIT
Antv L7antvis/L74.1k—~1.4kAutomated safety check: PassMIT
Thematic Mapzzhonglei/GeoCode-Release186—~3.1kAutomated safety check: PassMIT
Rs Paper Pipelinethinson/RS-PaperClaw225—~319Automated safety check: PassMIT
Remote Sensing Research Radarlimi124/remote-sensing-research-radar141—~1.3kAutomated safety check: PassNone
Portaljs Add Geodatopian/portaljs2.4k—~1.7kAutomated safety check: PassMIT

Similar skills

  • Antv L7

    antvis/L7

    Comprehensive guide for AntV L7 geospatial visualization library.

    4.1k GitHub stars~1.4k tokensUpdated 29 days ago
    Data & AnalyticsAuto-check passed
  • Thematic Map

    zzhonglei/GeoCode-Release

    Create well-designed maps that follow standard cartographic conventions.

    186 GitHub stars~3.1k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Rs Paper Pipeline

    thinson/RS-PaperClaw

    A skill your agent uses when operating or maintaining the RS-PaperClaw pipeline that fetches remote-sensing arXiv papers, creates per-paper issues, builds daily digests, reconciles issue sets, and…

    225 GitHub stars~319 tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Remote Sensing Research Radar

    limi124/remote-sensing-research-radar

    Track, retrieve, screen, and synthesize research frontiers for geospatial AI, remote sensing big data, and transferable computer vision methods.

    141 GitHub stars~1.3k tokensUpdated 5 mo ago
    Data & AnalyticsAuto-check passed
  • Portaljs Add Geo

    datopian/portaljs

    Auto-ingest a geospatial file (GeoJSON, Shapefile, GeoPackage, KML/KMZ, FlatGeobuf, CSV-with-geometry) into a PortalJS portal on the user's own machine, with no server.

    2.4k GitHub stars~1.7k tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Live Weather Briefing Skill

    FrancyJGLisboa/agent-skills-platform

    Create a current, source-linked weather briefing for a named city using the Open-Meteo geocoding and forecast APIs.

    2.4k GitHub stars~599 tokensUpdated 22 days ago
    Data & AnalyticsAuto-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 yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    Auto-check passed
  • Caching Architecture Interviewer

    PrepLabsAI/InterviewMentor

    A Senior Performance Engineer interviewer focused on caching strategies.

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

Questions about Uber Interviewer

What does Uber Interviewer do?

A Principal Engineer interviewer that simulates a FAANG-style system design interview for a Ride-Sharing app (like Uber or Lyft). Uber Interviewer is an agent skill from PrepLabsAI/InterviewMentor. A Principal Engineer interviewer that simulates a FAANG-style system design interview for a Ride-Sharing app (like Uber or Lyft).

When should I use Uber Interviewer?

Uber Interviewer fits situations like: tasks that involve Geospatial analysis; tasks that involve Event-driven systems.

How do I install Uber Interviewer in Claude Code?

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

How do I install Uber Interviewer in Codex?

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

Can I use Uber 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 uber-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/uber-interviewer, .gemini/skills/uber-interviewer, .github/skills/uber-interviewer and .opencode/skills/uber-interviewer in your project.

What does Uber Interviewer need to run?

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

Does Uber 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 Uber 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 Uber Interviewer use?

Uber 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 Uber Interviewer use?

About 2.6k tokens (SKILL.md is roughly 10k 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 1k tokens, read only when the agent opens those files.

What are the alternatives to Uber Interviewer?

Skills that share tags, products or a category with Uber Interviewer: Antv L7 (antvis/L7, 4.1k stars), Thematic Map (zzhonglei/GeoCode-Release, 186 stars), Rs Paper Pipeline (thinson/RS-PaperClaw, 225 stars) and Remote Sensing Research Radar (limi124/remote-sensing-research-radar, 141 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Uber 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.