Performance Engineer

Date: Feb 8, 2024

Location: Pune, MH, IN

Company: Houghton Mifflin Harcourt

Performance Test Engineer

 

About HMH:

HMH is a learning technology company committed to delivering connected solutions that engage learners, empower educators, and improve student outcomes. As a leading provider of K–12 core curriculum, supplemental and intervention solutions and professional learning services, HMH partners with educators and school districts to uncover solutions that unlock students' potential and extend teachers' capabilities. HMH serves more than 50 million students and 4 million educators in 150 countries.

About the role:

You will be a key part of a team focused on ensuring the performance and stability of a web-based platform with millions of users across the world. You will be required to develop scenarios, build environments and create data sets to perform this testing against. You will enjoy contributing to a variety of technical efforts in the field of performance testing and will constantly promote the adherence to and development of best practices in this area.

Roles & Responsibilities

  • Analyzing the current state of the application and infrastructure, designing appropriate solutions and working with teams to implement them
  • Reviewing each entire application stack and execute initiatives to reduce failures, defects and issues with overall performance
  • Review code base and make recommendations for improving performance
  • Maintain performance analysis tools and identify any negative changes to performance and working with the teams to resolve them
  • Design, develop and execute automated tests to validate solutions and environments
  • Maintain and extend the load test framework including all programs and scripts that prep environments, create data sets, consolidate results and clean up after load tests.
  • Assist product teams to develop and maintain load test scripts and packages
  • Assist product teams in constructing meaningful, well thought out load test workload models
  • Work with product teams to move performance testing earlier in the development process through micro-benchmarking of individual services
  • Help product teams define performance test success criteria
  • Execute Load/Performance Tests that integrate workloads from multiple teams
  • Perform analysis of performance test results
  • Assist in finding and removing performance bottlenecks
  • Take initiative to advance the quality, performance, or scalability of our applications, by influencing the architecture or design of our products
  • Collaborate with project architects and project lead developers to prove the validity of new software technologies
  • Engage with and improve HMHs software development methodology
  • Identify and work with the team to implement more efficient system procedures
  • Participate in regular meetings, both within the team and across it, to discuss previous accomplishments, upcoming goals and any roadblocks in the way                                              

Required Skills & Abilities

  • 3+ years background in performance testing or engineering, or related experience.
  • Strong experience in at least one of these performance testing frameworks:   Gatling, J-Meter, or K6
  • Strong programming experience in at least one scripting language (Python, Javascript, Groovy, Lua, bash, PowerShell, etc.)
  • Knowledge of Continuous Integration philosophy, tools, and techniques.
  • Experience with Docker and container management
  • Hands-on experience with SQL with ability to apply experience to PostgreSQL or other SQL-based databases
  • Ability to communicate and work effectively within priorities
  • Ability to advocate ideas and to objectively participate in design critiques
  • Ability to work under tight timelines in a fast-paced environment
  • Good understanding of software design concepts
  • Understanding of agile software development methodologies
  • Understanding of general software architecture principles, particularly in relation to system performance
  • Ability to solve complex problems
  • Excellent analytical, troubleshooting and communication skills                                              
  • Experience with log aggregation and data analysis (e.g. Grafana, Cloudwatch, Datadog etc                          
  • Experience with Application Performance Management (APM), Network Performance Management (NPM), and Real User Monitoring (RUM) tools and data            
  • Ability to understand and communicate risk as it applies to system reliability and performance
  • Strong understanding of performance testing techniques and practices, scenario development, environment/data design and reporting on results.
  • In-depth experience with both Cloud Platform-as-a-Service (e.g. AWS, GCP, Azure) and Container Orchestration (e.g. Apache Aurora, Kubernetes)
  • Strong understanding of concepts related to evaluating web application performance (response time percentiles, queue depths, etc.)

 

Preferred Skills & Abilities

 

  • Experience with build tools (e.g. Maven, Nexus, Ant, Puppet, Foreman, Hiera, Jenkins). 
  • Linux systems knowledge and administration background are required, including command line. Windows and mobile devices experience are also helpful.
  • Hands-on experience with system integration technologies such as Web Services, Enterprise Service Bus, Message Queue, etc.
  • Understanding of and ability to work within Java and other languages
  • Demonstrated ability to follow through with all tasks, promises and commitments
  • Good understanding of AWS Lambda, DynamoDB, Kinesis, API Gateway


Job Segment: Curriculum, Performance Management, Education, Human Resources