Essential Job Functions:
· Dive deeply into SW/HW systems to solve for performance issues and make architectural, design and coding recommendations where needed.
· Conduct Architectural & Technical reviews during software development life cycle and to identify potential bottlenecks and provide suggestions for performance improvements.
· Collaborating with development leads and project team to review and refine application NFRs, SLAs, & KPIs to create acceptance criteria and performance budgets necessary to measure, validate, and improve performance.
· Collaborating with developers to promote the concept of performance engineering during all phases of the SDLC to detect and correct performance issues earlier in the lifecycle.
· Monitoring application performance during performance tests or production usage using APM and other monitoring tools to isolate the fault domain, dive deep into application code, and identify root cause of performance issues.
· Profiling application performance from end-user perspective to inventory performance concerns and suggest tuning opportunities across the application stack.
· Performing deep dive JVM analysis examining garbage collection logs, heap dumps, and thread dumps as needed.
· Documenting performance findings and recommendations.
· Interacting with project teams, development, operations, and infrastructure resources to recommend solutions to remediate performance issues.
· Participating in re-architecture, redesign, and refactoring decisions to satisfy performance requirements.
· Socialize and promote a Software/Systems focused engineering mindset and the usage of APM tools during the application development life-cycle phase across platforms.
· Responsible for developing a Performance Test Strategy, Scripting & executing Performance Tests, perform root cause analysis and provide mitigation.
· Monitor resource usage for physical servers, application servers & databases to drive optimization changes in production environment.
· Work with ‘Service Owners’ to optimize the configuration of clients, servers, and networking equipment to enable system/application performance across the enterprise.
· Plan and manage deliverables for: performance diagnostic, capacity planning, performance architecture design, performance tuning, and performance monitoring.
· Conduct system performance and stress testing, analyze test results and suggest action plans.
· Distill volumes of data, analyzes performance results, diagnoses performance problems and clearly characterize system performance to stakeholders.
· Drive performance engineering as an integral step during the software development life cycle.
· Must be able to perform the essential functions of this position with or without reasonable accommodation.
Minimum Position Qualifications
· 8+ years of software product development and delivery experience.
· 3+ years of performance engineering experience.
· Ability to interpret and draw System & Architecture diagrams.
· Ability to identify system bottlenecks with strong troubleshooting, problem solving & reasoning skills.
· Familiarity with tools such as Fiddler, Firebug, YSlow and JProfiler.
· Strong knowledge of HTTP load generation and measurement software.
· Proficient in APM products such as AppDynamics, Dynatrace, New Relic. (Dynatrace is preferred).
· Basic understanding of System Resources and Services; Load balancers, Webservers, Database, Operating System, Network Software and Hardware.
· Experience in Web server, Application server and Database performance tuning.
· Expertise in analyzing error, system logs of Web and Application Server, Heap Dump, Thread Dump during failure to determine the cause of failure.
· Experience in summarizing large amount of metrics into meaningful graphs and reports.
Familiar with Latest Cloud & Container Technologies.
Job Type: Contract