Select your current position
Pick a role and level — we'll show the growth path, skills and gap analysis.
Development path
Junior
0-2 years
Responsibility: Writing load testing scripts. Running tests by scenarios. Collecting metrics. Preparing results reports.
Key skills:
Middle
2-5 years
Responsibility: Designing load scenarios. Bottleneck analysis. Metric correlation (CPU, memory, DB). CI/CD integration.
Key skills:
Senior
5-8 years
Responsibility: Performance testing architecture. Chaos engineering. Capacity modeling. Application profiling. Optimization recommendations.
Key skills:
Lead / Staff
7-12 years
Responsibility: Performance engineering strategy. SLA/SLO for performance. Coordination with development and SRE.
Key skills:
Principal
10+ years
Responsibility: Enterprise performance strategy. Performance culture. Capacity planning at scale.
Key skills:
Gap analysis: skills to develop
To reach the next level you'll need to develop:
Configures APM agents to instrument services during performance tests. Builds custom dashboards correlating load patterns with application metrics. Sets up alerting thresholds based on performance SLAs and baseline measurements.
Configures benchmarking: custom k6 extensions, JMH for Java micro-benchmarks, wrk2 for coordinated omission prevention. Creates repeatable benchmark suites.
Independently develops Chaos Engineering tests. Applies test design techniques. Integrates tests into CI/CD. Covers edge cases.
Conducts CPU profiling: perf/async-profiler for JVM, py-spy for Python, CPU flame graph analysis. Identifies: hot methods, lock contention, GC overhead. Correlates with load test results.
Conducts database performance testing: synthetic workload generation, connection pool stress testing, replication lag analysis. Profiles: query plans under load, deadlocks.
Conducts E2E performance testing: full user journey performance, multi-service latency, end-to-end throughput. Tests with realistic data volumes.
Conducts I/O profiling: disk I/O analysis (sar, pidstat), network latency profiling (tcpdump, strace). Identifies: slow disk, network congestion, connection pool exhaustion.
Conducts memory profiling: JVM GC analysis (GC logs, VisualVM), heap dump analysis (Eclipse MAT), native memory tracking. Detects leaks in long-running tests.
Independently applies Network Profiling in practice. Understands trade-offs of different approaches. Solves typical tasks independently.
Creates performance budgets: defines thresholds per service/endpoint, tracks budget consumption. Configures automated alerts on threshold violations. Correlates with business metrics.
Independently analyzes resource consumption patterns during performance tests. Correlates CPU, memory, and network metrics with throughput and latency. Recommends infrastructure right-sizing based on test results.
Optimizes throughput: horizontal scaling validation, batching effectiveness, connection pool sizing. Tests: saturation point, throughput under degradation.
Designs performance metrics: detailed latency breakdown (db, external, processing), resource efficiency metrics. Configures recording rules for aggregation.
Conducts load testing: ramp-up, steady state, peak load scenarios. Uses k6/Gatling: custom metrics, thresholds, checks. Analyzes: throughput, latency, error rate, resource usage.
Understands TCP/IP stack behavior under load — analyzes connection pooling, keepalive settings, and socket exhaustion. Configures TLS/SSL for performance impact assessment. Works with load balancers and reverse proxies to test traffic distribution. Understands DNS resolution timing and TTL impact on test results. Debugs network bottlenecks using tcpdump and Wireshark analysis.
Configures performance tools: k6 with custom metrics, Gatling for complex scenarios, distributed load generation. Creates reusable test libraries. Integrates with CI/CD.
Applies the test pyramid for performance: micro-benchmarks (unit level), component load tests (integration), full system tests (E2E). Determines optimal distribution.
Manages test data for performance: realistic data volumes, data distribution matching production. Generates synthetic data. Ensures data isolation between test runs.
Manages performance test environments: dedicated resources, network isolation, baseline configuration. Ensures consistent results: resource monitoring, noise reduction.