Job Description
Summary
As a software engineer on the Storage team working on Transaction Processing, you will have the unique benefit of building systems software in a rapid production environment with a small and collaborative team. This includes actively collaborating with the product team and other engineers to design and implement new key features which meet high standards of quality. You will leverage and deepen your technical and project management skills while working with talented and experienced colleagues.
At SingleStore, the Storage Team owns most of the low-level and System of Record architecture of the system. This architecture is a distributed, shared-nothing and cloud-native system, which is a big part of how our product's scalability and resiliency works. This includes working with (and building) cluster management, replication, consensus, fault-tolerance, and system of record features and other core distributed system concepts.
If you want to know more about the cool things built by the storage team, you can check out these two articles:
- The Future is Bottomless
- Building Fast Distributed Synchronous Replication.
Role and Responsibilities
- Develop critical software components, systems, and features.
- Proactively learn about the system as a whole and contribute to its design.
- Automate and test your own code to improve overall software quality.
- Manage individual project priorities, deadlines, and deliverables.
- Mentor and train other team members on design techniques and coding standards.
- Actively participate in customer POCs to optimize customer experience and adoption.
- Work collaboratively with other engineering teams and other departments such as Sales, Marketing, and G&A.
Required Skills and Experience
- Some knowledge of C and/or C++, particularly at system level.
- Understanding of low level concepts such as file systems, concurrency, multithreading, and server architectures.
- Good algorithms and data structures knowledge.
- Experience developing distributed systems and/or fault-tolerant systems is a plus.
- Familiarity with Transaction Processing concepts such as isolation levels, replication, 2PC, consensus, optimistic concurrency, MVCC, … is a plus.
- Passionate about building highly reliable system software.
- B.S. degree or equivalent experience in Computer Science or a similar field.
Other:
- Employment Status: Full Time Employment
- Location/Working classification: Hybrid Role
Skills
- C++
- Software Engineering
- Team Collaboration