Job Summary
We are seeking an experienced Software Engineer to join a small, collaborative team responsible for building and evolving a distributed, multi-tiered data orchestration service supporting critical Artificial Intelligence and Machine Learning systems. The role offers significant individual responsibility and influence over the direction of the core service. The ideal candidate will have strong expertise in modern Rust, concurrent programming, and distributed systems, with a passion for clean, maintainable, and high-performance code. Engineers will own features throughout their complete lifecycle, from identifying improvements and proposing solutions through implementation and production support.
Key Responsibilities
• Design, implement, and support highly scalable applications and web services.
• Develop and maintain distributed systems using modern Rust and current coding practices.
• Build efficient asynchronous systems using Rust async/await and appropriate sharing models such as Sync and Send.
• Develop concurrent software using locking, memory synchronization, atomic operations, and related concurrency techniques.
• Design and implement distributed system capabilities involving consensus, replication, failure detection, and other distributed systems concepts.
• Own the complete lifecycle of features, including identifying areas for improvement, proposing changes, driving implementation, and supporting solutions in production.
• Develop readable, maintainable, and performant code using Rust tooling and its strong type system and borrow checker.
• Apply comprehensive testing strategies covering both correctness and low-level performance.
• Participate in pair-programming and collaborative development practices to share code ownership and technical knowledge.
• Investigate and optimize low-level system performance, including memory allocations and resource utilization.
• Collaborate with team members to solve complex technical problems across high-level system design and low-level implementation.
Required Qualifications
• Experience designing, implementing, and supporting highly scalable applications and web services.
• Strong hands-on experience with Rust.
• Experience with Rust asynchronous programming, including async/await.
• Understanding of Rust sharing models, including Sync and Send.
• Strong experience with concurrent programming, including locking, memory synchronization, and atomic operations.
• Strong understanding of distributed system concepts, including distributed consensus, replication, and failure detection.
• Strong focus on writing clean, readable, maintainable, and performant code.
• Experience with software testing focused on both correctness and performance.
Preferred Qualifications
• Experience with blob storage solutions.
• Experience with distributed key-value databases.
• Experience with Kubernetes and containerized environments.
• Experience with Linux system internals.
• Experience with storage systems and their internals.
• Experience with backend web technologies.