Prepares for "reverse system design" rounds where you present YOUR past technical work. Use for project selection, narrative arc structuring, whiteboard diagrams, depth calibration, and hostile Q&A handling. Activate on "tech presentation", "present your work", "reverse system design", "project deep dive". NOT for designing hypothetical systems, resume writing, or career narrative extraction.
npx skills add https://github.com/curiositech/some_claude_skills --skill tech-presentation-interview
The tech presentation round is a reverse system design: instead of designing a hypothetical system on a whiteboard, you present a real system YOU built. This tests three things no other round can: genuine depth of understanding, ability to communicate complex ideas under pressure, and authentic ownership versus inherited knowledge.
Use for:
NOT for:
ml-system-design-interview)cv-creator or career-biographer)interview-loop-strategist)The most common failure mode is choosing the wrong project. Use this decision tree:
flowchart TD
A[List your top 5 projects] --> B{Did YOU make key<br/>technical decisions?}
B -->|No, I inherited it| SKIP[Skip this project]
B -->|Yes| C{Can you explain<br/>alternatives you rejected?}
C -->|No, I just used<br/>what was standard| SKIP
C -->|Yes, I evaluated<br/>tradeoffs| D{Are there interesting<br/>failure modes or<br/>unexpected challenges?}
D -->|It went smoothly| WEAK[Weak choice --<br/>no drama = no depth]
D -->|Yes, things broke<br/>or surprised us| E{Can you fill 30+ min<br/>of technical depth<br/>on 2-3 components?}
E -->|No, it was<br/>straightforward| WEAK
E -->|Yes| F{Is it relevant to<br/>the target role?}
F -->|Not really| BACKUP[Keep as backup --<br/>use if nothing<br/>better qualifies]
F -->|Yes, strong match| PICK[Strong candidate --<br/>select this project]
Rate each candidate project 1-5:
| Criterion | Weight | What to evaluate |
|-----------|--------|------------------|
| Personal ownership | 5x | YOUR decisions, not team consensus or inherited architecture |
| Technical complexity | 4x | Non-obvious tradeoffs, scale challenges, algorithmic depth |
| Interesting failures | 4x | Things that broke, surprises, pivots, lessons learned |
| Relevance to role | 3x | Overlaps with what the target team builds |
| Quantified impact | 2x | Metrics you can cite (latency, throughput, revenue, accuracy) |
| Recency | 1x | More recent is better, but a great 5-year-old project beats a boring recent one |
Threshold: Total score > 60 = strong choice. 40-60 = acceptable if nothing better. < 40 = find another project.
Every great presentation follows this structure. Deviations lose the audience.
flowchart LR
CTX["Context<br/>2 min"] --> PROB["Problem<br/>3 min"]
PROB --> WHY["Approach & Why<br/>5 min"]
WHY --> ARCH["Architecture Deep Dive<br/>10 min"]
ARCH --> RES["Results & Impact<br/>3 min"]
RES --> CHANGE["What I Would Change<br/>2 min"]
CHANGE --> QA["Q&A<br/>15+ min"]
1. Context (2 min) -- Set the stage. Who was the user? What was the business? Why did this matter?
2. Problem (3 min) -- What made this HARD? Not what you built, but why it was non-trivial.
3. Approach & Why (5 min) -- Decision-making process, not just the decision.
4. Architecture Deep Dive (10 min) -- Go deep on 2-3 components. NOT a tour of every box.
references/whiteboard-diagrams.md)5. Results & Impact (3 min) -- Quantified outcomes.
6. What I Would Change (2 min) -- The most important 2 minutes.
7. Q&A (15+ min) -- Where the real evaluation happens.
The cardinal sin is covering everything at surface level. Pick 2-3 layers to go DEEP.
| Component Type | Skim (1-2 sentences) | Medium (2-3 min) | Deep (5+ min) |
|---------------|---------------------|-------------------|---------------|
| Standard infra (load balancer, CDN) | Almost always skim | Only if custom config | Never unless this IS the project |
| Data storage layer | If standard SQL/NoSQL | If sharding, replication, or hybrid | If you designed the storage engine |
| ML model architecture | If off-the-shelf | If fine-tuned or modified | If custom architecture or novel approach |
| Data pipeline | If standard ETL | If real-time or complex transforms | If you solved a hard data quality problem |
| API/interface design | If REST/GraphQL standard | If complex versioning or contracts | If protocol design was the core challenge |
| Monitoring/observability | Usually skim | If anomaly detection is core | If this IS the system |
Rule of thumb: Go deep on the parts where YOU made a non-obvious decision. Skim the parts where you used an industry-standard tool in the standard way.
The Q&A is where interviewers separate builders from bystanders. Prepare for these patterns:
Adjust depth based on who's in the room:
| Audience | Emphasize | De-emphasize |
|----------|-----------|-------------|
| Researchers / scientists | Novel approaches, evaluation methodology, ablation studies | Infra details, deployment ops |
| Backend / systems engineers | Scale, reliability, performance tradeoffs, failure handling | ML model internals, business context |
| ML engineers | Model architecture, training pipeline, data challenges, serving infra | Business impact, team dynamics |
| Engineering managers | Decision-making process, team coordination, technical risk management | Low-level implementation details |
| Mixed panel | Start broad, let Q&A reveal where each panelist wants depth | Don't pre-optimize for one audience |
Novice: Presents all wins, no failures or trade-offs. Every decision was optimal. The system performed beautifully from day one. Metrics only go up and to the right.
Expert: Proactively discusses what didn't work, what surprised them, and what they'd change. Treats failures as evidence of genuine engagement, not embarrassment. Shares specific metrics for both successes AND shortcomings.
Detection: When asked "what would you do differently?" the answer is vague ("maybe better testing") or unconvincing ("honestly, I'm pretty happy with how it turned out"). No failure stories surface organically during the presentation.
Novice: Uses "we" for everything. "We designed the architecture." "We chose Kafka." "We solved the latency problem." Unclear what THEY specifically did versus what the team did collectively versus what a teammate owned entirely.
Expert: Clear ownership markers throughout: "I led the design of the serving layer, collaborated with our data team on the pipeline, and my teammate Sarah owned the model training infrastructure. Let me focus on the serving layer since that was my primary contribution." Uses "I" for decisions they drove, "we" for genuine collaboration, and names teammates for their contributions.
Detection: Under follow-up questioning, cannot explain specific technical decisions in detail. When asked "why Kafka over RabbitMQ?", answers with "that was the team's decision" or gives a generic textbook comparison rather than the specific evaluation they ran.
Novice: Covers every component at surface level. "And then we had a cache, and a queue, and a database, and a load balancer, and a model server, and a feature store..." Each component gets 1-2 sentences. Runs out of time before reaching anything interesting. The whiteboard looks like a busy subway map.
Expert: Draws the 3-box overview, explicitly says "I'm going to focus on two components where the interesting engineering happened," and goes DEEP. Spends 5 minutes on one component explaining the tradeoffs, alternatives considered, failure modes, and what they learned. The interviewer leaves understanding that component thoroughly.
Detection: Presentation runs over time. All component descriptions are surface-level. Whiteboard has 15+ boxes with no zoom-in area. When asked to go deeper on any single component, the candidate has nothing beyond what they already said.
| File | Consult When |
|------|-------------|
| references/project-narrative-template.md | Structuring a project presentation from scratch; filling out the narrative arc; preparing Q&A answers; worked example of an ML pipeline presentation |
| references/whiteboard-diagrams.md | Planning what to draw during the presentation; progressive disclosure strategy; physical and virtual whiteboard tips; common diagram patterns for ML systems |
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when implementing any feature or bugfix, before writing implementation code
Use when you have a spec or requirements for a multi-step task, before touching code
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.
| Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Official Opentrons Protocol API for OT-2 and Flex robots. Use when writing protocols specifically for Opentrons hardware with full access to Protocol API v2 features. Best for production Opentrons protocols, official API compatibility. For multi-vendor automation or broader equipment control use pylabrobot.
Take curiositech/tech-presentation-interview from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.