
performance-engineer
Expert in system optimization, profiling, and scalability. Specializes in eBPF, Flamegraphs, and kernel-level tuning.
- Installs
- 163
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill performance-engineer- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads performance-engineer automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Performance Engineer
Purpose
Provides system optimization and profiling expertise specializing in deep-dive performance analysis, load testing, and kernel-level tuning using eBPF and Flamegraphs. Identifies and resolves performance bottlenecks in applications and infrastructure.
When to Use
- Investigating high latency (P99 spikes) or low throughput
- Analyzing CPU/Memory profiles (Flamegraphs)
- Conducting Load Tests (K6, Gatling, Locust)
- Tuning Linux Kernel parameters (sysctl)
- Implementing Continuous Profiling (Parca, Pyroscope)
- Debugging "It works on my machine but slow in prod" issues
2. Decision Framework
Profiling Strategy
What is the bottleneck?
│
├─ **CPU High?**
│ ├─ User Space? → **Language Profiler** (pprof, async-profiler)
│ └─ Kernel Space? → **perf / eBPF** (System calls, Context switches)
│
├─ **Memory High?**
│ ├─ Leak? → **Heap Dump Analysis** (Eclipse MAT, heaptrack)
│ └─ Fragmentation? → **Allocator tuning** (jemalloc, tcmalloc)
│
├─ **I/O Wait?**
│ ├─ Disk? → **iostat / biotop**
│ └─ Network? → **tcpdump / Wireshark**
│
└─ **Latency (Wait Time)?**
└─ Distributed? → **Tracing** (OpenTelemetry, Jaeger)
Load Testing Tools
| Tool | Language | Best For |
|---|---|---|
| K6 | JS | Developer-friendly, CI/CD integration. |
| Gatling | Scala/Java | High concurrency, complex scenarios. |
| Locust | Python | Rapid prototyping, code-based tests. |
| Wrk2 | C | Raw HTTP throughput benchmarking (simple). |
Optimization Hierarchy
- Algorithm: O(n^2) → O(n log n). Biggest wins.
- Architecture: Caching, Async processing.
- Code/Language: Memory allocation, loop unrolling.
- System/Kernel: TCP stack tuning, CPU affinity.
Red Flags → Escalate to database-optimizer:
- "Slow performance" turns out to be a single SQL query missing an index
- Database locks/deadlocks causing application stalls
- Disk I/O saturation on the DB server
3. Core Workflows
Workflow 1: CPU Profiling with Flamegraphs
Goal: Identify which function is consuming 80% CPU.
Steps:
-
Capture Profile (Linux perf)
# Record stack traces at 99Hz for 30 seconds perf record -F 99 -a -g -- sleep 30 -
Generate Flamegraph
perf script > out.perf ./stackcollapse-perf.pl out.perf > out.folded ./flamegraph.pl out.folded > profile.svg -
Analysis
- Open
profile.svgin browser. - Look for wide towers (functions taking time).
- Example:
json_parseis 40% width → Optimize JSON handling.
- Open
Workflow 3: Interaction to Next Paint (INP)
Goal: Improve Frontend responsiveness (Core Web Vital).
Steps:
-
Measure
- Use Chrome DevTools Performance tab.
- Look for "Long Tasks" (Red blocks > 50ms).
-
Identify
- Is it hydration? Event handlers?
- Example: A click handler forcing a synchronous layout recalculation.
-
Optimize
- Yield to Main Thread:
await new Promise(r => setTimeout(r, 0))orscheduler.postTask(). - Web Workers: Move heavy logic off-thread.
- Yield to Main Thread:
Workflow 5: Interaction to Next Paint (INP) Optimization
Goal: Fix "Laggy Click" (INP > 200ms) on a React button.
Steps:
-
Identify Interaction
- Use React DevTools Profiler (Interaction Tracing).
- Find the
clickhandler duration.
-
Break Up Long Tasks
async function handleClick() { // 1. UI Update (Immediate) setLoading(true); // 2. Yield to main thread to let browser paint await new Promise(r => setTimeout(r, 0)); // 3. Heavy Logic await heavyCalculation(); setLoading(false); } -
Verify
- Use
Web Vitalsextension. Check if INP drops below 200ms.
- Use
5. Anti-Patterns & Gotchas
❌ Anti-Pattern 1: Premature Optimization
What it looks like:
- Replacing a readable
map()with a complexforloop because "it's faster" without measuring.
Why it fails:
- Wasted dev time.
- Code becomes unreadable.
- Usually negligible impact compared to I/O.
Correct approach:
- Measure First: Only optimize hot paths identified by a profiler.
❌ Anti-Pattern 2: Testing "localhost" vs Production
What it looks like:
- "It handles 10k req/s on my MacBook."
Why it fails:
- Network latency (0ms on localhost).
- Database dataset size (tiny on local).
- Cloud limits (CPU credits, I/O bursts).
Correct approach:
- Test in a Staging Environment that mirrors Prod capacity (or a scaled-down ratio).
❌ Anti-Pattern 3: Ignoring Tail Latency (Averages)
What it looks like:
- "Average latency is 200ms, we are fine."
Why it fails:
- P99 could be 10 seconds. 1% of users are suffering.
- In microservices, tail latencies multiply.
Correct approach:
- Always measure P50, P95, and P99. Optimize for P99.
Examples
Example 1: CPU Performance Optimization Using Flamegraphs
Scenario: Production API experiencing 80% CPU utilization causing latency spikes.
Investigation Approach:
- Profile Collection: Used perf to capture CPU stack traces
- Flamegraph Generation: Created visualization of CPU usage
- Analysis: Identified hot functions consuming most CPU
- Optimization: Targeted the top 3 functions
Key Findings:
| Function | CPU % | Optimization Action |
|---|---|---|
| json_serialize | 35% | Switch to binary format |
| crypto_hash | 25% | Batch hashing operations |
| regex_match | 20% | Pre-compile patterns |
Results:
- CPU utilization: 80% → 35%
- P99 latency: 1.2s → 150ms
- Throughput: 500 RPS → 2,000 RPS
Example 2: Distributed Tracing for Microservices Latency
Scenario: Distributed system with 15 services experiencing end-to-end latency issues.
Investigation Approach:
- Trace Collection: Deployed OpenTelemetry collectors
- Latency Analysis: Identified service with highest latency contribution
- Dependency Analysis: Mapped service dependencies and data flows
- Root Cause: Database connection pool exhaustion
Trace Analysis:
Service A (50ms) → Service B (200ms) → Service C (500ms) → Database (1s)
↑
Connection pool exhaustion
Resolution:
- Increased connection pool size
- Implemented query optimization
- Added read replicas for heavy queries
Results:
- End-to-end P99: 2.5s → 300ms
- Database CPU: 95% → 60%
- Error rate: 5% → 0.1%
Example 3: Load Testing for Capacity Planning
Scenario: E-commerce platform preparing for Black Friday traffic (10x normal load).
Load Testing Approach:
- Test Design: Created realistic user journey scenarios
- Test Execution: Gradual ramp-up to target load
- Bottleneck Identification: Found breaking points
- Capacity Planning: Determined required resources
Load Test Results:
| Virtual Users | RPS | P95 Latency | Error Rate |
|---|---|---|---|
| 1,000 | 500 | 150ms | 0.1% |
| 5,000 | 2,400 | 280ms | 0.3% |
| 10,000 | 4,800 | 550ms | 1.2% |
| 15,000 | 6,200 | 1.2s | 5.8% |
Capacity Recommendations:
- Scale to 12,000 concurrent users
- Add 3 more application servers
- Increase database read replicas to 5
- Implement rate limiting at 10,000 RPS
Best Practices
Profiling and Analysis
- Measure First: Always profile before optimizing
- Comprehensive Coverage: Analyze CPU, memory, I/O, and network
- Production Safe: Use low-overhead profiling in production
- Regular Baselines: Establish performance baselines for comparison
Load Testing
- Realistic Scenarios: Model actual user behavior and workflows
- Progressive Ramp-up: Start low, increase gradually
- Bottleneck Identification: Find limiting factors systematically
- Repeatability: Maintain consistent test environments
Performance Optimization
- Algorithm First: Optimize algorithms before micro-optimizations
- Caching Strategy: Implement appropriate caching layers
- Database Optimization: Indexes, queries, connection pooling
- Resource Management: Efficient allocation and pooling
Monitoring and Observability
- Comprehensive Metrics: CPU, memory, disk, network, application
- Distributed Tracing: End-to-end visibility in microservices
- Alerting: Proactive identification of performance degradation
- Dashboarding: Real-time visibility into system health
Quality Checklist
Profiling:
- Symbols: Debug symbols available for accurate stack traces.
- Overhead: Profiler overhead verified (< 1-2% for production).
- Scope: Both CPU and Wall-clock time analyzed.
- Context: Profile includes full request lifecycle.
Load Testing:
- Scenarios: Realistic user behavior (not just hitting one endpoint).
- Warmup: System warmed up before measurement (JIT/Caches).
- Bottleneck: Identified the limiting factor (CPU, DB, Bandwidth).
- Repeatable: Tests can be run consistently.
Optimization:
- Validation: Benchmark run after fix to confirm improvement.
- Regression: Ensured optimization didn't break functionality.
- Documentation: Documented why the optimization was done.
- Monitoring: Added metrics to track optimization impact.
FAQ
What does the performance-engineer skill do?
Expert in system optimization, profiling, and scalability. Specializes in eBPF, Flamegraphs, and kernel-level tuning.
How do I install performance-engineer?
Run npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill performance-engineer in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/performance-engineer/ (personal) or .claude/skills/performance-engineer/ (project).
Which AI agents can use performance-engineer?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is performance-engineer safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains performance-engineer?
It is published by 404kidwiz in 404kidwiz/claude-supercode-skills. It has 163 recorded installs.
More from 404kidwiz/claude-supercode-skills
frontend-ui-ux-engineer
404kidwiz/claude-supercode-skills
A designer-turned-developer who crafts stunning UI/UX even without design mockups. Code may be a bit messy, but the visual output is always fire.
quant-analyst
404kidwiz/claude-supercode-skills
Expert in quantitative finance, algorithmic trading, and financial data analysis using Python (Pandas/NumPy), statistical modeling, and machine learning.
project-manager
404kidwiz/claude-supercode-skills
Project management expert specializing in planning, execution, monitoring, and closure of projects. Masters traditional and agile methodologies to deliver projects on time, within budget, and to quality standards.
machine-learning-engineer
404kidwiz/claude-supercode-skills
Use when user needs ML model deployment, production serving infrastructure, optimization strategies, and real-time inference systems. Designs and implements scalable ML systems with focus on reliability and performance.
dotnet-framework-4.8-expert
404kidwiz/claude-supercode-skills
Legacy .NET Framework expert specializing in .NET Framework 4.8, WCF services, ASP.NET MVC, and maintaining enterprise applications with modern integration patterns.
codebase-exploration
404kidwiz/claude-supercode-skills
Deep contextual grep for codebases. Expert at finding patterns, architectures, implementations, and answering "Where is X?", "Which file has Y?", and "Find code that does Z" questions. Use when exploring unfamiliar codebases, finding specific implementations, understanding code organization, discovering patterns across multiple files, or locating functionality in a project. Supports three thoroughness levels quick, medium, very thorough.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.