Reach out directly about this role
YDB is a distributed, fault-tolerant, open-source relational database. Combined with the YDB serverless technology stack, it enables a data storage and processing system for the most complex and demanding applications.
YDB is also a platform for building infrastructure components. We offer users not only reliable transactions over tables but also ready-made solutions based on the core engine: persistent queues, federated queries, network block storage for virtual machines (Yandex Network Block Store), and others.
Within the team, there are two directions you can work on:
Horizontal scaling, high availability, and fault tolerance The system must be able to dynamically redistribute logical components across system nodes, respond to changes in load on components and nodes. Managing logical components (tablets) involves distributing them across cluster nodes, accounting for tablet and node performance metrics, moving tablets from overloaded nodes, and automatically partitioning tables with data as their volume increases or load grows.
At a higher level, the system must know at any moment, for example, which tablets a table or topic consists of, and be able to disseminate this knowledge across system nodes to ensure consistent execution of user SQL queries, user manipulations with the tables themselves, and automatic management of table partitioning.
The life of tablets, the structure and lifecycle of user database schema objects are managed by components of YDB's system distributed infrastructure.
Many user-visible database characteristics depend on high-quality solutions to such tasks: consistency, responsiveness, and throughput. We continuously develop and improve our management components to increase performance, provide users with new functionality, and expand YDB's use cases.
Data access and operational security This includes authentication, checking permissions for performing actions on data and objects, permission manipulation, integrations with various identity and access management systems, working with secrets, and audit logging. The security of user data depends on the performance of security subsystems.
Most development is done on GitHub, so you can publicly share the results of your work.
Developing new functionality You will implement new balancing algorithms. Develop approaches for scaling components of the system's distributed infrastructure. Add integrations with external identity and access management systems. Develop work with secrets.
Improving what already exists You will need to develop algorithms for balancing logical components. Improve automatic table partitioning. Reduce the cost of executing user and system schema operations. Develop the YDB permission system and its interaction with external access management systems. Improve the audit logging subsystem.
RnD and interaction with related teams It is important to study implementation problems and propose solutions. You will communicate with teams of other YDB subsystems and together choose optimal solutions when designing changes.
5 years
Experience
Full-time
Employment
Hybrid, Onsite
Work Format
Middle
Grade
Backend
Specialization
IT & Tech
Industry
Corporation
Company Type
By country
Backend
Specialization
IT & Tech
Industry
Corporation
Company Type