Senior Software Engineer
-
Software Development
Software Engineer, Senior Developer, Backend Developer
Job Description & How to Apply Below
Dremio is the unified lakehouse platform for self-service analytics and AI, serving hundreds of global enterprises, including Maersk, Amazon, Regeneron, Net App, and S&P Global. Customers rely on Dremio for cloud, hybrid, and on-prem lake houses to power their data mesh, data warehouse migration, data virtualization, and unified data access use cases. Based on open source technologies, including Apache Iceberg and Apache Arrow, Dremio provides an open lakehouse architecture enabling the fastest time to insight and platform flexibility at a fraction of the cost.
Learn more at
About the role
The Dremio Catalog team builds Dremio’s Open Catalog, an enterprise data catalog based on Apache Polaris. The catalog provides a governed entry point for Iceberg tables and federated data sources across object stores,databases, data warehouses, and other lakehouse catalogs.
As a Senior Software Engineer, you will own features from design through production. You will work on catalog services, metadata APIs, security, multi-tenant isolation, and integrations with Dremio and external query engines.
This role suits an engineer who enjoys distributed systems, open standards, and software that must remain correct under concurrency and will own changes from requirements through release and production support. After writing the specification and choosing an approach, you may use AI coding agents to help with implementation. You will review their work and validate its behavior, with particular attention to concurrency, authorization, compatibility, and failure handling.
Changes that belong in Apache Polaris may also be contributed upstream.
What you’ll be doing
- Own multiple features within the Catalog team, from requirements and technical design through implementation, testing, rollout, and production support.
- Extend Apache Polaris while preserving compatibility with the Iceberg REST Catalog specification.
- Build catalog APIs and services for name spaces, tables, views, identities, permissions, and metadata operations.
- Solve distributed systems problems involving consistency, concurrency, failure recovery, multi-tenancy, and service performance.
- Diagnose production issues using logs, metrics, traces, and service data, then address the underlying cause.
- Write design documents for the features you own and review designs from other engineers.
- Work with query engine, security, platform, and product teams to define interfaces and manage dependencies.
- Improve test coverage, operational tooling, and engineering practices in the areas you touch.
- Review code with attention to correctness, security, maintainability, and performance.
- Share technical knowledge with the team and help onboard or mentor newer engineers.
- Contribute fixes and features upstream when they belong in Apache Polaris or another open-source project.
- Use AI-assisted development tools for code comprehension, debugging, and test generation, while verifying their output through engineering review and testing.
What we’re looking for
- Five or more years of professional software development experience, or equivalent practical experience.
- Strong Java skills and experience with a substantial production codebase, supported by knowledge of data structures, algorithms, concurrency, API design, and distributed systems.
- A record of owning backend or distributed-system features from design through rollout and production support, including estimating work and managing dependencies.
- Ability to turn incomplete product requirements into implementation-ready specifications covering interfaces, in variants, failure cases, security, and acceptance criteria.
- Experience directing AI coding agents, reviewing their plans and output, and correcting unsafe or…
Position Requirements
10+ Years work experience(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).