Principal Java Engineer
Job description
About the role
This role targets distributed systems experts who will shape how Elasticsearch scales, performs, and remains resilient in Serverless contexts. The position emphasizes end-to-end ownership of complex projects with significant customer impact. You will own the full lifecycle of demanding features, from initial technical design through implementation and rollout, ensuring they meet stringent reliability standards. The work focuses on solving hard concurrency and performance challenges that directly affect large scale production deployments. You will collaborate closely with cross-functional teams to translate demanding requirements into robust, high-performance solutions. Success in this role requires the ability to debug intricate system interactions across distributed nodes and services. You will mentor and elevate the technical discussions within the team through clear, direct communication.
Key facts
What you'll do
Investigate performance and concurrency issues and propose solutions that balance scalability and correctness.
Assist support engineers with the most complex production problems by analyzing logs, traces, and system metrics.
Review and refine code written by peers to ensure clarity, correctness, and adherence to architectural standards.
Design and implement new features for large-scale distributed systems, considering fault tolerance and data consistency.
Own projects from initial design through completion, covering technical design, implementation, testing, and cross-team collaboration.
Manage efforts that involve multiple engineers, coordinating tasks and aligning on priorities to hit critical milestones.
Apply AI tools to accelerate development, debug intricate systems, and refine code while retaining full ownership of outcomes and quality.
Work across functions and teams, moving smoothly between projects, codebases, and teams based on evolving business needs.
Write and maintain high-quality Java code that is performant, testable, and resilient under demanding workloads.
Work independently, drive decisions and results in a distributed team, and use asynchronous, direct, and transparent communication.
Requirements
The posting states a pay range of $2000 to $2000.
Bring deep distributed systems knowledge and mastery of consensus algorithms that underpin reliable coordination.
Demonstrate strong Java core skills and fluency with standard data structures, concurrency constructs, and modern language features.
Show advanced technical proficiency in algorithms, especially those relevant to search, indexing, and data processing.
Have hands-on experience building large-scale distributed systems instead of only using packaged services and cloud abstractions.
Have experience creating and debugging cross-machine features that have broad impact on performance and stability.
Own projects from initial design through completion, covering technical design, implementation, testing, and cross-team collaboration.
Manage efforts that involve multiple engineers, providing clear technical direction and facilitating productive collaboration.
Apply AI to accelerate development, debug intricate systems, and refine code while retaining ownership of outcomes and rigorous quality.
Work across functions and teams, moving smoothly between projects, codebases, and teams based on business needs and shifting priorities.
Work independently, drive decisions and results in a distributed team, and use asynchronous, direct, and transparent communication to maintain alignment.
Nice to have
Experience with data stores such as search, analytics, and Lucene to understand how data is indexed, stored, and retrieved.
Deep JDK knowledge, including internals of the JVM, garbage collection, and performance tuning.
Familiarity with asynchronous event-driven network frameworks like Netty to build high-throughput, low-latency communication.
Practical notes
This role is based in Portugal and requires onsite presence at the office.
A Bachelor's degree is mandatory for this position.
Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
Distributed consensus and fault tolerance underpin the platform and are central to the responsibilities of this role.
The role involves concurrent indexing and cluster coordination at large scale across many nodes.
Engineers regularly investigate cross-node performance and stability issues that impact customer workloads.
Collaboration across teams and products is central to success, requiring strong written and verbal communication.
Questions to ask
Worth asking in any interview: how the team measures success, who the role works with daily, what the onboarding looks like, and what the company is trying to achieve this year. Asking what past hires did well is a strong final question that can provide insight into expectations and growth paths. Keep the list short and pick the questions that matter most to you and your career goals.
Career growth
Engineering careers usually progress from individual contributor to senior, staff, and principal levels. Some engineers move into management and lead teams of five to twenty people. Others stay on the technical track. Growth follows demonstrated impact, not tenure alone. A typical engineering ladder has clear levels with defined expectations for scope, quality, and mentorship. Moving up usually requires owning outcomes end to end rather than completing assigned tickets, showing consistent delivery of complex work, and mentoring peers through difficult technical challenges. This role provides an opportunity to operate at the highest levels of technical ownership and influence on core platform capabilities.