Lead Performance Engineer
The Lead Performance Engineer will be a key contributor within our product development organisation to ensure our solutions meet high standards of quality and the expectations of our customers. This person will be responsible for “all things performance”, including the development / execution / analysis of the performance framework and associated tests. They will also provide support to development teams in the development of performant solutions.
- Build and maintain performance tests using internally designed performance framework.
- Conduct system performance testing to ensure reliability, capacity and scalability.
- Analyse test results and coordinate with development teams for bug fixes.
- Generate performance graphs, session reports and other related documentation required for validation and analysis.
- Collaborate with engineering and product teams to improve system performance and define non-functional requirements (NFRs).
- Prepare, monitor and communicate detailed status reports and any issues.
- Participate in root cause analysis of performance issues.
- Contribute to strategic conversations defining the roadmap for performance testing.
- Partners with engineering staff and management to identify, scope and lead projects; drive quality standards to enable built-in software quality and performance
- Provides strategic leadership related to specific applications and systems in the areas of performance test and strategy, automation, and testing methodologies
- Develop & drive the performance engineering strategy (proactive, continuous, end-to-end performance testing and monitoring)
- Provides critical input to performance environment needs and develops schedules for ongoing performance testing activities
- Ensure that all features coming through the pipeline have appropriate NFR’s captured, are sense checked and testable
- Drives capacity planning and proving to future proof the platforms for growth
- Be on point for any performance relate defect leakage and ensure root cause analysis is performed and any gaps addressed
- Identifies and implements opportunities to improve effectiveness and time-to-market; identifies opportunities for resiliency and scalability for multiple applications (owns associated features)
- Applies advanced technical capabilities within own discipline to coach and develop technical talent and test teams
- Strong communication skills both verbal and written, strong relationship and collaboration skills.
- Deep knowledge and understanding of Agile software engineering concepts and methodologies.
- Expert in testing (not limited to performance) across a variety of platforms; web and mobile user interface, web services and big data.
- Expert in designing and implementing performance test strategies across multiple platforms.
- Expert in writing performance tests and scripts using JMeter or equivalent load test tool as well as integrating with continuous integration (Jenkins)
- Experience in AWS/Cloud scaling concepts and bottleneck analysis
- Strong monitoring, debugging and root cause analysis skills, experience in Dynatrace/AppDynamics/Splunk
- Expert in performance tuning activities and code level understanding of application
- Exposure on Unix Jobs/Database validations and batch handling processes
- Exposure to cloud performance testing and Devops
- Programming languages Java and/or C#/ Groovy/spring boot/shell
- Experience of using Windows / UNIX / Linux / Web / Database performance monitors.
- Bachelor's degree in a technical field or equivalent experience.
- Minimum of 5 years experience in test planning, test estimation, test strategy, test case design, test environment setup, and test data setup.
- Minimum of 5 years of relevant experience in performance testing with solid understanding of concepts like peak load testing, scalability testing and the importance of volume and concurrency when defining performance tests.
- Experience with relational databases, MySQL and how to optimize SQL queries.
- Experience with load testing tools and monitoring tools used to understand system behaviour during performance testing.
- Familiar with statistics; comfortable reading data and interpreting results.
- Familiar with AWS constructs and terminology.
- Experience using Java (or other OO language), XML, Spring.
- Experience with Linux system administration.
- Familiarity with Java/GC/JVM
- Debuggers/profilers/analyser (VisualVM/JDK mission control/Memory analyser)
- Google cloud platform/Microsoft Azure cloud platform / AWS cloud platform
- Apache / Tomcat
- Oracle DB / Postgres