Lead Software Engineer - Test (Performance)
Freshworks
Chennai, Tamil Nadu, India
Job Description About the Role Involved in every phase of SDLC, Lead Software Engineer in Test (Performance) at Freshworks, are in complete ownership of the ensuring performance and scalability of web applications and microservices by doing performance testing of the organization’s cutting-edge projects. A performance test engineer’s primary responsibility is creating and maintaining performance test plans, utilizing load testing tools to inject load, analyzing metrics from application and system logs, and simulating system behavior to improve the performance and reliability of the applications. The candidate should also have enthusiasm for troubleshooting, analyzing, and resolving complex problems, must demonstrate strong problem-solving and communication skills, and be prepared to be an expert performance engineering resource on multiple initiatives of diverse scopes. This position offers the candidate several opportunities to learn and test world-class B2B SaaS products that are built using cutting-edge technologies. Responsibilities Gathering Performance Testing Requirements, Analyzing and designing performance specifications, defining performance test strategy, creating performance test plans, developing performance scripts for both Web (Front End & Backend) and Microservices Execute performance tests for benchmarking, identifying bottlenecks, and determining limits of critical factors Identify and isolate performance issues on all layers of the application stack including Network, OS, Application, and Database and analyze root causes of performance issues and provide corrective actions. Identifying memory level and thread level issues using heap/thread dumps and analyzing Garbage collection logs using GC analysis tools. Deep knowledge in SRE activities for business function’s health, Alerting, Notification, and Monitoring by continuous engagement with Architects, Product Engineering & DevOps. Analyzing system memory, CPU, and Run Queue and Identifying performance bottlenecks and remedies. Set up Performance test infrastructure by understanding systems environments like shared resources, components, services, CPU, memory, storage, network, etc. Create Continuous Integration, Continuous Delivery (CI/CD) infrastructure, and processes to run QA performance scripts. Analyze Performance test results and provide clear and concise reports with recommendations and improvement plans and generate performance test summary reports for every release Work closely with development teams, architects, and engineers to test their products under load and make recommendations to improve performance, reliability, and scalability Suggest new tools and techniques to improve performance testing efficiency and Implement best-in-class practices in performance testing for Freshworks Coordinate with cross-products and provide solutions based on their performance testing requirements Qualifications Qualification 7 to 10 Years of strong experience in Performance testing/Engineering with a good understanding of performance testing concepts Solid experience in assessing the performance, scalability, and resiliency of large-scale web applications, APIs, and backend services with an understanding of multi-tiered and microservice architecture Extensive knowledge and hands-on experience in any of the Performance testing and monitoring tools (JMeter, HP LoadRunner, Gatling) Experience in APM toolset for monitoring, profiling, and tuning like AppDynamics, New Relic, Grafana, ELK, and similar ones Understanding of various performance metrics (CPU, Memory, Disk, and Network) Good knowledge in Cloud computing platforms (AWS in specific), Containers (Docker), Kubernetes, Web/UI JavaScript frameworks (e.g. AngularJS, NodeJS, ReactJS), REST, JSON, XML Good to have experience in creating monitoring dashboards in Grafana. Experience in Databases / SQL (e.g. MySQL, RDS, Elastic Search, Postgres, MongoDB, DynamoDB) Experience in message brokers (e.g. Kafka, RabbitMQ) Experience testing with containers, cloud, virtualization, and configuration management. Experience in setting up a high-volume load model by understanding the product architecture. Solid data analysis and problem-solving skills Strong self-driven collaborator with the ability to work in diverse teams as a contributing member