Java Senior Software Engineer
Summary
Senior Java engineer to lead development of MariaDB's geo-distributed, high-performance database — building replication, sharding, high-availability, and data-consistency features while managing engineers. Core stack: Java/JVM, SQL databases (MariaDB/MySQL/PostgreSQL), distributed-systems concepts (Raft, MVCC), Git, and profiling tools; fully remote across listed European and Caucasus countries.
About MariaDB
MariaDB is making a big impact on the world. Whether you’re checking your bank account, buying a coffee, shopping online, making a phone call, listening to music, taking out a loan or ordering takeout – MariaDB is the backbone of applications used everyday. Companies small and large, including 75% of the Fortune 500, run MariaDB, touching the lives of billions of people. With massive reach through Linux distributions, enterprise deployments and public clouds, MariaDB is uniquely positioned as the leading database for modern application development.
The Role
You will be responsible for the development and testing of a highly scalable, geo-distributed, highly performant database solution. You should have experience working on distributed software solutions and have a strong background working with on-premise and cloud-based solutions. You will also be responsible for managing a number of Software Engineers on the project.
Java Senior Software Engineer
Here at MariaDB we are seeking a highly motivated and experienced Java Senior Software Engineer to lead the development of our highly scalable, geo-distributed, and highly performant database solution. This role requires a strong background in distributed software solutions, experience with both on-premise and cloud-based environments, and proven leadership abilities. You’ll be joining a small, highly skilled team where your work will have a direct impact. Expect to dig deep into replication, sharding, concurrency, and performance optimization—making our systems faster, smarter, and more resilient. You’ll collaborate globally, contribute to open source, and push the limits of what a distributed database can do.
What You’ll Do
- Ensure the scalability, performance, and reliability of the database system.
- Collaborate with cross-functional teams to define, design, and ship new features.
- Troubleshoot and resolve complex issues in distributed environments.
- Profile, debug, and fine-tune performance with tools like JFR, JMC, async-profiler and VisualVM—and your own tricks.
- Keep code clean and reviewable with Git.
- Develop and optimize the data structures for providing the best experience accessing data in high data-intensive scenarios.
- Implement the best way to store data to disk and send data over the network to other nodes (including failure handling and recovery after failures).
- Implement and integrate algorithms for high availability of the whole cluster.
- Investigate flaws in data consistency algorithms, which may require thorough debugging either on multi-node clusters and in low-level byte-represented data.
What You Bring
- 4+ years of experience in Java programming.
- Deep knowledge of concurrency in Java and Java Memory Model and/or of concurrency model in other programming systems.
- Excellent Java SE knowledge including IO, JVM internals, etc.
- Experience with SQL databases.
- Experience in troubleshooting Java applications and/or databases.
- Excellent leadership, problem-solving, and debugging skills.
- Experience working effectively in a fast-paced, collaborative environments.
- Deep SQL knowledge (MariaDB/MySQL/PostgreSQL/Apache Ignite/GridGain) and passion for distributed systems (Raft, MVCC, ACID etc).
- Understands MVCC and P2PL, and the difference between Snapshot Isolation and REPEATABLE READ.
The following may be a strong plus:
- Experience with NoSQL and/or distributed databases.
- Experience with building highload distributed systems and algorithms.
- Experience with Docker, Kubernetes and/or public Cloud (AWS, GCE, Azure, etc.)
- Open-source contributions, automation expertise, or performance/load testing.
- Active use of AI.
Location
Remote – Georgia, Croatia, Estonia, Finland, Italy, Poland, Romania, Serbia, Spain, Armenia, Cyprus.
Why You’ll Love It Here
- A globally distributed team where your work is tangible, valuable and appreciated.
- Remote or Hybrid work options (location dependent)
- Projects that stretch your skills and make an impact at scale.
- Competitive pay, 25 days paid annual leave (plus holidays), and a culture that values creativity and clean engineering.
How to Apply
If you are interested in this position, please submit your application along with your CV/Resume through our ATS Greenhouse on our MariaDB Careers site.
- At MariaDB we celebrate the diverse experiences and perspectives of our employees because this drives innovation and success. MariaDB is an equal opportunity employer dedicated to creating a welcoming and inclusive workplace for everyone.
- MariaDB does not sponsor work visas or relocation.
- MariaDB is committed to providing accommodations for individuals with disabilities within our application and interview process. To request an accommodation due to a disability, please inform your recruiter.
- MariaDB will not accept agency resumes without a prior contractual agreement with HR. Please do not forward resumes to any recruiting alias or employee directly. MariaDB is not responsible for paying any fees associated with any unsolicited submitted CV/Resumes.
Skills
As published by greenhouse · 12 questions · 4 written answers
Basics
First Name, Last Name, Email, Phone, Resume/CV, Cover Letter, Location
Short answers (2)
- LinkedIn Profile optional
- Please share your Github URL (if applicable) optional
Pick from a list (6)
- How many years of professional experience do you have with Java programming?
- How many years of experience do you have using SQL?
- Are you fluent in English?
- Are you legally eligible to work in the Georgia?
- Will you now or in the future require any type of temporary or permanent visa sponsorship, transfer, or extension for employment status?
- Do you agree not to utilize AI in any interview activities in the hiring process with MariaDB unless specifically requested by the Recruiter or Hiring Manager for a specific assessment of AI experience?
Written answers (4)
- Please describe a recent experience working with concurrency in Java and Java Memory Models. What was the goal of the development, what did you learn in the process, and for which employer, did you carry out this work?
- Please describe a specific production performance issue or memory leak you personally diagnosed and fixed in a java-based system. What tools did you use (e.g. JProfiler, Async-profiler, GC logs), what was the root cause, and how did your solution resolve it?
- Imagine you need to migrate an older, high-throughput Spring Boot application that heavily relies on traditional thread pools over to Java 21's Virtual Threads (Project Loom). What specific risks, limitations, or anti-patterns (e.g. synchronised blocks, Threadlocals, pinning) would you audit the codebase for before making the switch, and how would you mitigate them?
- Choose a core mechanism in a major Java framework you use heavily (such as Spring's Proxy pattern/AOP for @Transactional, or Hibernate's first-level cache/dirty checking). Explain a specific scenario where this abstract mechanism breaks down or behaves unexpectedly in production, and how you engineered around it.