Senior Software Engineer (Performance Tuning, Elasticsearch)
Posted
Summary
A Senior Software Engineer on Elastic's Elasticsearch Performance team improves the optimization and predictability of Elasticsearch through profiling, benchmarking, and code-level performance improvements for distributed systems, including vector search and serverless architectures, using Java, JVM internals, and AI-assisted tooling.
- Elasticsearch powers search, observability, and AI retrieval (RAG) for the world’s largest organizations. We are seeking a Senior Software Engineer to join the Elasticsearch Performance team
- In this role, you will contribute to performance engineering initiatives through high-quality code and technical analysis
- Your goal is to help improve the optimization and predictability of Elasticsearch performance, collaborating with area-specific teams to enhance our software
- Contributing to core performance engineering initiatives from development to production, focusing on the delivery of impactful optimizations. Executing technical designs and plans for architectural and code-level performance improvements
- Implementing foundational performance models and methodologies for complex, distributed systems
- Supporting optimization strategies to ensure Elasticsearch remains performant, predictable, and scalable in diverse environments
- Profiling and analyzing system behavior to identify bottlenecks in logging, metrics, vector search, and ES|QL
- Ensuring robust performance benchmarks and regression detection for both stateful and stateless (Serverless) architectures
- Collaborating with peers across the team to apply performance-focused development practices into new features
- Contributing to automation efforts by building AI-assisted optimization harnesses that streamline profiling, hypothesis testing, and benchmarking
- Providing technical guidance and peer reviews to other engineers, fostering a culture of technical excellence
Benefits
- Toast to your health: Fully paid health coverage for you and your family, in many locations.
- Craft your calendar: Flexible location and schedule for most roles.
- Create space for you: Distributed by design workforce, plus generous number of vacation days each year.
- Embrace parenthood: Minimum of 16 weeks of parental leave, plus generous family formation benefits.
- Give back your time: 40 hours each year to use toward volunteering with organizations and causes you’re passionate about.
- Amplify your impact: Double your charitable giving — we match donations up to $1500 USD (or local currency equivalent).
- You have proven experience in profiling and optimizing distributed systems. This includes deep experience with benchmarking tools (e.g., JMH, Rally), identifying performance regressions, and implementing algorithmic or hardware-aware optimizations
- You possess the ability to collaborate across functions and teams and seamlessly transition between different projects, codebases, or teams based on business priorities
- You have a solid comprehension of distributed systems architecture, including partition tolerance, cluster state propagation, and scaling challenges in large-scale data stores
- You can work autonomously, drive decisions, and result in a distributed team by leveraging asynchronous, direct, and transparent communication
- You possess the ability to collaborate effectively within a team environment, contributing to the success of performance engineering goals
- You have deep knowledge of Java internals and JVM memory management. You understand how concurrency models work. You can write code that is high-performance, thread-safe, and lock-free. This experience includes working with large open-source and enterprise codebases
- You have a proven track record of using AI or advanced tooling to accelerate optimization, debug complex performance issues, and automate benchmarking workflows
- Experience integrating high-performance native libraries (e.g., C++, Rust, SIMD-accelerated code) into Java applications
- Deep knowledge of modern storage engine performance, index modes, or vector search optimizations
- Experience working on the internals of a large-scale data store or search engine
- Experience defining and managing Performance SLAs and success criteria for distributed systems
- Experience working on the internals of a data store or search engine
