Apples Cassandra Storage team develops storage systems that are correct reliable scalable and fast. This work requires an innovative spirit and an extraordinary degree of care and rigor in engineering. Team members contribute to all major components of Apache Cassandra including query coordination and execution replication and persistence transactions and consensus compaction client and internode messaging and all other aspects of the a member of this team you will build and evolve major components of the database. These areas include:- Traffic and load balancing- Security and authorization- Quota and rate limiting- Tenant isolationSuccess in this role requires expertise in some of the following and ability to gain experience in others:- Fundamentals of system-level hardware and networking components (storage devices and controllers network interfaces CPU and memory layout in server-class systems).- Operating systems concepts (process scheduling disk and network I/O performance).- Datacenter architecture (networking topologies host placement strategies and failure modes); design of multi-datacenter systems; failure domains; and wide-area networking.- Understanding of distributed systems concepts (fallacies of distributed computing CAP FLP etc).- Understanding of database concepts (consistency models isolation levels crash and recovery semantics).- Advanced concepts such as failure detection smart clients load balancing request pipelining speculation / retry policies and operational semantics of high-throughput distributed systems.- Performance engineering (design concepts profile-guided optimization).- Software validation concepts (fault injection property-based testing and model checking workload replay quality metrics).- This role also requires excellent communication ability to partner with our Site Reliability peers and a high degree of customer focus when engaging with internal platform customers. Ability to work effectively with colleagues based in other locations is also essential; experience in this area is a plus. Prior experience with development of distributed databases / storage systems is recommended.
Interest and foundations for expertise in developing distributed systems including concepts such as traffic and load balancing; quota and rate limiting; multi-tenant isolation; and security engineering.
Understanding of the fundamentals of database systems storage engines or performance engineering.
Understanding of key data structures and algorithms in storage and indexing.
Proficient in modern Java.
MS or Ph.D in Computer Science-related fields or 3 years of equivalent work experience.
- Experience developing software in open source communities a plus.
Disclaimer: Drjobpro.com is only a platform that connects job seekers and employers. Applicants are advised to conduct their own independent research into the credentials of the prospective employer.We always make certain that our clients do not endorse any request for money payments, thus we advise against sharing any personal or bank-related information with any third party. If you suspect fraud or malpractice, please contact us via contact us page.