Senior Java Engineer - Core/infra - Elasticsearch

Elastic Elastic · Enterprise · United Kingdom · Platform - Elasticsearch

Senior Software Engineer to join the Elasticsearch team, focusing on core infrastructure, shared platform functionalities, and enabling developers. The role involves contributing to large projects, designing scalable features, solving complex issues, and improving observability. While the company is an AI company and the role mentions integrating agentic apps and using AI to accelerate development, the core craft of this role is building and maintaining the foundational infrastructure of Elasticsearch, not directly shipping AI models or agents as the primary deliverable. The role touches on AI tools for development acceleration but doesn't build AI models themselves.

What you'd actually do

  1. Contributing to large, impactful projects that evolve the core infrastructure that underpins Elasticsearch.
  2. Making Elasticsearch developers more productive by identifying and developing opportunities for automation, and integrating agentic apps into development workflows.
  3. Designing and implementing new horizontally-scalable features and APIs in Elasticsearch.
  4. Solving difficult issues, including performance or concurrency issues, and proposing solutions.
  5. Improving operation and observability of Elasticsearch cloud systems.

Skills

Required

  • Experience crafting APIs and the ability to reason through tradeoffs.
  • Proficient in algorithms and data structures.
  • Strong skills in core Java and conversant in the standard library of data structures and concurrency constructs, as well as newer language features.
  • Experience with low-level Java such as concurrency, parallelism, classloaders, etc.
  • Hands-on experience with CI/CD systems and practices (Buildkite, Argo CD, GitOps etc).
  • Experience leading large scale projects across engineering teams.
  • Willingness to dive into new issues and ask for help when you need it.
  • Able to own projects from beginning to end. This covers both technical design and working with others to develop needed components.
  • Proven track record of using AI to accelerate development, debug complex systems, and optimize code, while still owning the final outcomes.
  • Ability to collaborate across functions and teams and seamlessly transition between different projects, codebases, or teams based on business priorities.
  • Can work autonomously, drive decisions and results in a distributed team by leveraging asynchronous, direct, and transparent communication.

Nice to have

  • Knowledge of JDK internals: modules, the Java memory model, garbage collection, database load, caching techniques, etc.
  • Experience with observability and telemetry solutions, particularly OpenTelemetry
  • Knowledge of Go
  • Knowledge of containers and Kubernetes
  • Knowledge of Java build tools (Gradle, Maven, etc), with a strong preference for Gradle experience.
  • Experience working in a platform team or developer productivity team

What the JD emphasized

  • core infrastructure
  • shared platform functionalities
  • foundational infrastructure
  • common functionality
  • extensible through plugins
  • orchestration of Elasticsearch in serverless
  • CI/CD workflows
  • enabling developers to deliver Elasticsearch to customers
  • design skills
  • low level of abstraction
  • drive and communicate technical concepts
  • large, impactful projects
  • evolve the core infrastructure
  • making developers more productive
  • opportunities for automation
  • integrating agentic apps into development workflows
  • designing and implementing new horizontally-scalable features and APIs
  • solving difficult issues
  • performance or concurrency issues
  • improving operation and observability
  • collaborating in the open
  • supporting support engineers
  • owning operational investigations end-to-end
  • performance or stability issues
  • crafting APIs
  • reason through tradeoffs
  • algorithms and data structures
  • core Java
  • standard library of data structures and concurrency constructs
  • newer language features
  • low-level Java
  • concurrency
  • parallelism
  • classloaders
  • CI/CD systems and practices
  • leading large scale projects across engineering teams
  • willingness to dive into new issues
  • ask for help
  • own projects from beginning to end
  • technical design
  • working with others to develop needed components
  • proven track record of using AI to accelerate development
  • debug complex systems
  • optimize code
  • owning the final outcomes
  • collaborate across functions and teams
  • seamlessly transition between different projects, codebases, or teams
  • work autonomously
  • drive decisions and results
  • distributed team
  • leveraging asynchronous, direct, and transparent communication
  • JDK internals
  • modules
  • Java memory model
  • garbage collection
  • database load
  • caching techniques
  • observability and telemetry solutions
  • OpenTelemetry
  • Go
  • containers and Kubernetes
  • Java build tools
  • Gradle
  • Maven
  • platform team
  • developer productivity team