Job Description:
As a Performance Test Lead, you will be responsible for overseeing the performance testing efforts for our cloud-native Java applications, and designing, executing, and managing performance tests to ensure the scalability, reliability, and optimal performance of applications built in a cloud environment. You will collaborate with cross-functional teams to identify performance bottlenecks and drive optimizations for cloud-native Java applications.
Key Responsibilities:
- Lead Performance Testing Strategy:
- Develop and lead the performance testing strategy for cloud-native Java applications running on AWS cloud. Create detailed performance test plans, roadmaps, and timelines for testing cloud-native applications across various environments.
- Cloud-Native Performance Testing Execution:
- Design, implement, and execute performance tests such as load, stress, scalability, and endurance tests for cloud-native Java applications and services.
- Conduct performance testing for microservices, containerized applications (Docker, Kubernetes), serverless functions, and distributed systems.
- Performance Monitoring, Analysis, and Optimization:
- Use monitoring and APM tools (e.g., AWS CloudWatch, New Relic, Dynatrace, Prometheus) to collect performance data during tests and monitor the behavior of cloud-native applications.
- Analyze test results to identify bottlenecks and performance issues in cloud applications and underlying infrastructure.
- Collaborate with development teams to recommend and implement performance optimizations, including JVM tuning, application refactoring, and cloud resource adjustments.
- Automation and Continuous Integration:
- Automate performance test execution and integrate performance tests into the CI/CD pipeline (Jenkins, GitLab CI, etc.) to ensure ongoing performance monitoring.
- Develop reusable performance test scripts and frameworks to support efficient regression and continuous testing of cloud-native Java applications.
- Implement automated testing for both front-end (e.g., web applications) and back-end services (e.g., microservices, databases).
- Reporting and Documentation:
- Provide clear, actionable reports and dashboards for stakeholders, detailing test results, system behaviour, and recommendations.
- Document performance testing methodologies, best practices, and lessons learned for the team.
Qualifications:
- Education: Bachelor’s degree in Computer Science, Engineering, or a related field (or equivalent experience).
- Experience:
- 5-7+ years of experience in performance testing, with at least 2-3 years in a leadership role.
- Proven experience in performance testing cloud-native applications, microservices, containerized applications (Docker, Kubernetes), and serverless architectures.
- Strong understanding of Java development, Spring Boot, and Java-based microservices. Experience with JVM performance tuning is a plus.
- Proficient in performance testing tools like JMeter, Gatling, Locust, LoadRunner, or similar tools, and the ability to create performance test scripts.
- Hands-on experience with AWS cloud and tools for performance monitoring (AWS CloudWatch, Prometheus, Grafana, New Relic).
- Experience with CI/CD pipelines and integrating performance tests into continuous integration and delivery (e.g., Jenkins, GitLab CI, CircleCI).
- Understanding of the performance characteristics of distributed systems, including messaging queues, databases, and APIs in cloud-native environments.
- Strong analytical skills to troubleshoot and resolve performance bottlenecks at various levels (application, infrastructure, cloud resources).
- Experience with test automation frameworks and scripting in Java, Python, or similar languages.
- Strong leadership skills with the ability to communicate effectively with cross-functional teams.
- Soft Skills:
- Strong problem-solving and analytical skills.
- Excellent communication and leadership abilities.
- Ability to influence and guide teams towards best practices.