Birmingham, Alabama, United States
Performance Engineer
Job Description:
Our client is looking for a Performance Engineer who conducts a wide range of quality control tests and analysis to ensure that software meets or exceeds specified standards and end-user requirements and monitor the performance of the production systems. In addition, the Performance Engineer provides guidance and collaborates with various groups to develop and deploy high performing applications and systems.
Responsibilities
- Collaborates with application development teams to mitigate performance bottlenecks throughout the entire application stack
- Recommends improvements to the architecture and deployment of applications under test
- Emphasizes methods of integrating testing best practices into the application development lifecycle to reduce friction, identify potential problems early, and improve cross-collaboration
- Participates in the Performance Engineering Community of Practice which is a technical platform that enables knowledge sharing and cross-collaboration, drive standardization and innovation
- Collaborates with other engineers to develop testing and monitoring approaches
- Focuses on assurance in the areas of error rates, response times, and impact to infrastructure
- Designs, scripts, configures, and run performance tests to validate production readiness of software applications and infrastructure for stability and performance
- Conditions test data as needed to properly simulate test scenarios
- Supports testing needs of new projects, infrastructure upgrades, and application enhancements by validating application functionality against documented test cases
- Diagnoses, tracks, and manages performance issues to resolution
- Uses dashboards that enable efficient monitoring of applications and systems running in production environments to troubleshoot issues and report findings
- Provides summaries and assessments of the application's performance, emphasizing trends over time
- Conducts "deep dive analysis of data when trends or anomalies are identified
- Collaborates with Application Development teams during story design to ensure new application features are developed in a performant manner.
- Participate in Program Increment Planning, Sprint Planning, and Daily standup meetings for development teams
- Provides leadership and mentorship to team of performance engineers
- Leads or participates in cross-organizational initiatives
Required Skills
- Bachelor's degree in Computer Science, Engineering, or a related technical field
- Five (5) years working as a Performance Engineer or related experience with high-traffic, large-scale distributed systems, client-server architectures on-prem and cloud
- One (1) year of experience in software application development or test automation
- Familiar with application architecture, design, capacity planning, and application performance best practices
- Experience with Structured Query Language (SQL), C, C++, C# or Java programming, and automated testing methodologies
- Familiar with container technologies
- Understanding of On Prem and Cloud
- Familiar with open source load testing tools such as Apache JMeter, httperf and APM, infrastructure monitoring tools like Splunk
- Familiar of mobile app (Android and iOS) and web technology stack (HTTP, REST, HTML, JavaScript, CSS)
- Familiar with SQL/NoSQL databases querying, profiling and performance tuning
- Experience with cloud DevOps (Kubernetes)
- Ability to dissect multi-tiered systems and track data flow throughout an entire application stack
- Effective communication and leadership skills
- Experience with monitoring tools such as Splunk
- Experience with other tools and frameworks such as Fiddler, Dynatrace, JMeter, Hammer, Performance Center
- Hands-on experience with load testing tools like Client LoadRunner
- Knowledge of application scalability and performance tuning (Web-based, n-tier, MQ, CICS)
- Strong analytical and problem-solving skills
- Understanding of performance analysis and testing processes