Remote job
Senior Software Developer (Database Engine)
Job details
About this role
Role overview Design and implement foundational parts of database engines alongside a technical lead and other developers. The work spans query execution and optimization, storage, and distributed systems, including problems that require careful analysis, prototypes, and trade-off decisions. Development uses Java and C++, with tools for columnar processing, query optimization, and compiled execution.
Responsibilities - Develop core database components such as query engines, optimizers, and storage layers. - Investigate topics including execution operators, resource scheduling, optimization rules, statistics, recovery, indexing, and concurrent access. - Explore distributed algorithms for transactions, replication, and fault tolerance. - Assess open-source systems and research in data management. - Write design documents and validate proposals through peer review and prototypes. - Share technical knowledge through community writing or conference presentations.
Requirements - Strong knowledge of Java and foundational algorithms and data structures. - Strong analytical skills and the ability to understand complex technical ideas. - Ability to connect engineering trade-offs to product goals. - Motivation to learn database and distributed systems theory and practice, including new languages and tools. - Thoughtful, collaborative approach to challenging work. - Written and spoken English communication skills.
Nice to have - Research publications. - Experience with databases, distributed systems, parallel algorithms, or concurrency. - Familiarity with big-data tools such as Apache Spark or Apache Flink.
Benefits and work setup - Fully remote work with flexible hours. - Competitive salary, paid sick leave, and days off. - Opportunities to present at international conferences.