Software Engineer - Database Kernel Development
Facebook's mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we're building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we're creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities â€" we're just getting started.
Facebook is seeking an experienced Software Engineer to join the Database Engineering team, whose mission is to engineer the technology storing Facebook's planet-scale user data. We provide manageable, reliable, high QoS database software and services ideal for a wide spectrum of workloads and storage devices, easily accessible from all Facebook products and programming languages. For example, RocksDB has become the de-facto Facebook standard key-value storage engine optimized for flash. Since we open-sourced it, a vibrant community has grown around it. It is used in production at Netflix, Microsoft, Yahoo, Pinterest, Airbnb, and several startups such as CockroachDB and Confluent. We are also leveraging RocksDB in MySQL, the main relational database technology at Facebook. We have converted RocksDB into a pluggable storage engine for MySQL, known as the open-source project MyRocks. Today, the entire Facebook social graph is stored in MyRocks, allowing us great savings in terms of storage space and SSD lifetime for the largest MySQL backend on the planet.
The database industry took notice and both MariaDB and are actively working at integrating and supporting this novel write-optimized database technology in their corresponding server offering.
To support the next 2-orders-of-magnitude growth in data size and QPS, Core Data is embarking on evolving MySQL and other internal technologies into the next-generation database system. Facebook's unique model of data allows us to dynamically copy or move data between Facebook's OLTP, cache, and search engines while our Social ORM enables federated queries across these structured data stores. Further, our rapidly expanding set of applications requires both vertical and horizontal scaling of database technologies. Unconstrained by the requirements of commercial enterprise software, we have numerous challenges like cost effective multi-region replication, data locality, large virtual databases, parallel query, query optimization, and disaggregated storage.
We are looking for candidates who share a passion for tackling complexity and building platforms that can scale through multiple orders of magnitude and enable Facebook databases to be fast and high quality. This position is full-time and is based in our office in Seattle, WA.
- Design core software components for database systems
- Code using primarily in C++
- Interface with other teams to collaborate in transforming the landscape
- Conduct design and code reviews
- Analyze and improve efficiency, scalability, and stability of various system resources
- 5+ years software engineering experience or coding experience in C, C++, or Java
- 2+ years experience building database software
- B.S. Computer Science or related technical field
- Experience working directly with database systems at scale
- M.S. or PhD in Computer Science or related technical field
Back to top