Software Engineer Intern, Fall 2023 - Database
At Yugabyte, we are on a mission to become the default transactional database for the cloud. We are well underway on this journey with YugabyteDB, the open source, high-performance, distributed SQL database that runs on any cloud and enables developers to get instantly productive using well-known APIs. We are looking for talented and driven people to join us on our ambitious mission and help us build a lasting and impactful company.
We announced a $188M Series C round at a $1.3B valuation in October 2021, however we very much believe we are still in the early stages of our company’s journey. The transactional database market is estimated to grow from $40B in 2021 to $64B by 2025. Given our database is cloud-native by design, has on-demand horizontal scalability, and allows for geographical distribution of data using built-in replication, we are extremely well-positioned to address the market need for geo-distributed, high-scale, high-performance wordloads.
As a Software Engineer Intern working on the Core Database, you will be responsible for designing and implementing features in the heart of the database. This is logically split into two high level components: the storage engine (DocDB) and the query and language layer (YQL). DocDB is responsible for efficient data storage and retrieval (using our own fork of RocksDB), replication via Raft, and distributed transactions. On top of this layer sits the YQL layer, which is responsible for efficient query parsing, optimization, and planning, as well as database security and visibility. The query layer is also responsible for understanding both SQL and CQL.
We are looking for a passionate student who exemplifies collaboration, is driven, excited to work in a fast-paced startup environment, and who isn’t afraid to dig into the details of complex distributed systems, and who is excited about building an internet-scale, globally distributed, SQL database. This is a Fall 2023 Opportunity. We are not hiring for the Summer.
Role and Responsibilities
- Work under the direction of senior developers on a project that you will get to present to other interns and rest of the engineering team
- You’ll be responsible for end-to-end implementation of a mission-critical project, from design to implementation to shipping it to production.
- Work with your team members on timely and relevant projects that may be included in a future software release
- Participate in knowledge sharing sessions and design reviews–one week you may sit in on a presentation about distributed transactions, and the next you may present the new feature you’ve designed or built.
- You’ll have the opportunity to grow your open source presence by contributing to our codebase and our engineering blog.
- Collaboration is core to our process–soliciting input from your peers, especially in the design phase, is how you’ll come up with the best solutions to challenging problems.
- Strong understanding of CS fundamentals, and how to apply them to code
- Strong programming skills with the ability to produce clear, efficient, and concise code (C or C++ preferred)
- Understanding of algorithms and data structures and how to efficiently implement them into a solution
- Working knowledge of distributed systems, operating systems, networking, compilers, and databases (SQL experience is a plus)
- Experience with concurrency, multithreading, and synchronization.
- Familiarity with containers and cluster managers like Kubernetes
- Academic or professional/internship experience working in a professional coding setting is a plus
- Enrolled and working towards obtaining a B.S. or M.S. in Computer Science or related field