About Our Client
Our client is a leading enterprise data platform company building an open, high- performance data lakehouse for AI and analytical workloads. The platform combines an intelligent SQL query engine, an AI-ready semantic layer, and an open catalog built on Apache Iceberg — enabling Fortune 500 companies across finance, energy, manufacturing, and logistics to unify, query, and govern data at massive scale across cloud and on-premise sources.
About the Role
We are looking for a Middle Software Engineer (1. 5–3. 5 years of experience) to join the sustaining engineering team for the data catalog and enterprise data management layer of a large-scale lakehouse platform — the services that automate data ingestion and optimize Apache Iceberg tables for existing customers. The team's mandate is to keep these services running reliably for current clients: investigating and fixing customer- reported issues, resolving defects, addressing performance regressions, and keeping dependencies and security patches current. This is a maintenance and support role, not a feature-development role.
This is a backend Java role in a multithreaded, distributed environment where stability and availability for production customers are the baseline expectations. You will work with hands-on mentorship from senior engineers and in daily collaboration with US-based engineering leads and support teams.
Responsibilities
Investigate, reproduce, and fix customer-reported issues and defects in the catalog and data-management services (Java)
Diagnose production problems from logs, metrics, and thread or heap dumps, and work with support teams and solution architects on customer escalations
Address performance regressions and stability issues in multithreaded, distributed services
Keep the services current: dependency and library upgrades, security patches, and compatibility fixes
Write regression tests and small supportability improvements (logging, metrics, diagnostics) so issues are easier to catch and triage next time
Take part in code reviews and follow the team's release and hotfix process
Track and apply relevant upstream fixes from the Apache Foundation open-source projects used by the platform
Communicate status, root causes, and blockers clearly in daily syncs with US-based engineering leads
Required Qualifications
B.S. or M.S. in Computer Science or a related field
- 5–3. 5 years of professional software engineering experience, preferably in backend or data-intensive systems
Strong Java programming skills: solid command of the language, the JVM ecosystem, and standard tooling (Maven or Gradle, JUnit)
Comfortable debugging and supporting production systems — reading logs and stack traces, reproducing issues, and finding root causes
Good grounding in data structures and algorithms
Working knowledge of multithreaded and asynchronous programming in Java (java.util.concurrent, executors, futures) and the motivation to go deeper
Care for engineering quality — tests, code reviews, and an understanding of why availability, resiliency, and zero-downtime upgrades matter
Comfort with a fast-moving environment, ownership of your work, and an eagerness to learn from and be mentored by senior teammates
Comfortable with AI-assisted development workflows — using modern AI tools productively while critically validating their output
English Upper-Intermediate or higher (B2+) — daily written and verbal communication with a US-based engineering team
Availability to work EU business hours shifted 2–3 hours later for daily overlap with US West Coast mornings
Desired Skills
C++ experience — reading or writing performance-sensitive native code
Exposure to database internals or query planning
Familiarity with distributed systems concepts: concurrency control, data replication, storage systems
Apache Iceberg or other open table formats (Delta Lake, Hudi)
Messaging systems: Kafka, NATS, or cloud pub/sub services
Contributions to open-source projects (Apache projects especially valued)
Details
Engagement: Long-term contract
Location: Europe (EU / EEA / UK), remote
Working hours: EU business hours, shifted 2–3 hours later for daily overlap with the US West Coast team