Responsibilities
- Observe and understand the runtime behavior of system components while under load, including the usage of low-level hardware and operating system resources
- Identify hotspots or bottlenecks in code execution
- Determine the root cause of hotspots or bottlenecks whether they be inefficient use of a programming language, operating system resources, the system memory allocator, etc.
- Think of solutions to hotspots or bottlenecks, then test them by modifying the existing codebase and running performance tests to measure potential improvement
- Improve test harnesses used for performance measurement and profiling
- Take responsibility for the performance of one or more system components
- Solve performance-related problems
Knowledge and Experience
- Undergraduate degree in Computer Science, Mathematics, Physics, or related field
- 7+ years of programming experience, C++ and Java preferred
- Experience profiling all layers of the technology stack (software, OS, hardware, network) and optimizing complex applications
- Experience with tracing and profiling tools such as eBPF, DTrace, VTune, perf, flamegraphs
- Knowledge of low-level CPU details such as cache usage and branch prediction, as well as their impact on software performance
- Knowledge of low-level kernel events such as context switching, interrupts, and thread scheduling
- Knowledge of compiler and linker optimizations (e.g., PGO)
- Experience tracing user-level and kernel events for debugging and profiling
- Experience using benchmarking tools and building custom test harnesses
- Precise thinking and a scientific approach to solving problems
- Professional written and spoken English with excellent presentation skills
- Excellent interpersonal skills, curiosity, flexibility, and accountability
- Result-oriented with a personal drive to meet commitments