Lead development of a highly scalable, geo-distributed, high-performance database solution. Work on replication, sharding, concurrency, and performance optimization, contributing to open source alongside a global team.
Responsibilities:
- Ensure database scalability, performance, and reliability.
- Collaborate with cross-functional teams to design and deliver features.
- Troubleshoot complex issues in distributed environments and profile, debug, and optimize performance.
- Develop data structures and optimize data storage, network communication, failure handling, and recovery.
- Implement high-availability algorithms and investigate data consistency issues.
- Review code and manage Software Engineers on the project.
Requirements:
- 4+ years of Java programming experience.
- Deep knowledge of Java concurrency and the Java Memory Model; excellent Java SE knowledge, including I/O and JVM internals.
- Experience with SQL databases and troubleshooting Java applications or databases.
- Strong SQL knowledge and familiarity with distributed systems concepts including Raft, MVCC, ACID, P2PL, Snapshot Isolation, and REPEATABLE READ.
- Strong leadership, problem-solving, and debugging skills.
Nice to have: NoSQL or distributed database experience; high-load distributed systems and algorithms; Docker, Kubernetes, or public cloud experience; open-source contributions; automation or performance/load testing expertise; active use of AI.
Conditions: Remote or hybrid work depending on location; globally distributed team; competitive pay; 25 days of paid annual leave plus holidays.