Bachelor's degree in computer science or engineering.
5+ years of experience in performance engineering, scalability, software engineering, or production performance analysis.
Strong hands-on experience with performance, scalability, failover, recovery, and resiliency testing.
At least 2 years of hands-on Java development experience.
Deep Core Java knowledge, including JVM internals, concurrency, multithreading, memory management, garbage collection, and latency.
Ability to analyze source code and recommend code-level improvements.
Proficiency in reading source code and diagnosing bottlenecks using dumps, logs, profilers, metrics, and observability tools.
Experience building workload generators, utilities, mock services, or automation with Java, Scala, Python, shell, JMeter, Gatling, or similar tools.
Strong knowledge of Linux, databases, application servers, caching, connection pools, distributed systems, and networks.
Ability to create workloads, baselines, thresholds, capacity measures, acceptance criteria, SLOs, SLAs, and KPIs.
Demonstrated ability to provide evidence-based code, configuration, capacity, reliability, and design recommendations.
Good experience in using Splunk, Grafana (or other monitoring tools).
Experience in testing resiliency solutions by updating CircuitBreakers, Shapers, LoadBalancers & Failover configurations.
Experience with troubleshooting and diagnosing JVM issues (e.g., thread dumps, garbage collection, and memory management).
Understanding of performance best practices, key performance metrics, and statistics.