Bachelor’s degree, or equivalent practical experience.
8 years of experience with software development in one or more programming languages (e.g., Python, C, C++, Java, JavaScript).
3 years of experience in a technical leadership role; overseeing projects, with 2 years of experience in a people management, supervision/team leadership role.
3 years of experience in the architecture, development, and maintenance of large-scale distributed systems, with key distributed systems concepts such as concurrency, fault tolerance and scalability.
Preferred qualifications:
Master's degree or PhD in Computer Science or related technical field.
3 years of experience working in a matrixed organization.
Experience in C++, with designing, developing, and debugging complex software systems.
Experience with various storage systems, including file, block, object storage, storage protocols and technologies.
Experience in designing and implementing monitoring solutions for large-scale systems, including performance metrics, logging, and alerting.
Ability to perform capacity planning for distributed systems, including forecasting resource needs and optimizing resource utilization.