Senior Software Engineer (Rust, Web Services) - Apple Services Engineering

Apple Inc.

Senior Software Engineer (Rust, Web Services) - Apple Services Engineering

Salary Not Specified

Apple Inc., City of Westminster

  • Full time
  • Permanent
  • Onsite working

Posted 2 weeks ago, 5 Sep | Get your application in now before you miss out!

Closing date: Closing date not specified

job Ref: 5d74c5c16f4141469c63324873c0694a

Full Job Description

We are looking for senior software engineers to join our small team with big responsibilities. The role involves a tremendous amount of individual responsibility and influence over the direction of the core service. We believe in small agile teams and their ability to deliver high-quality, high-impact software. We share code ownership and knowledge through the Agile technique of pair-programming. Our codebase is written entirely in modern Rust using the latest technologies and coding practices. We rely on sustainable coding through focus on readable, maintainable, and performant code. As such, we lean heavily on Rust and its great tooling to fearlessly develop highly efficient distributed systems code. We use multiple levels of testing to ensure we have low-level performance (such as tests to validate the number of allocations and bytes used) as well as correctness (such as tests with fault injection, and race condition simulation). Combined with the powerful borrow checker and strong type
system of Rust, we can develop complex systems with confidence., We are building a new distributed multi-tiered data orchestration service to support critical Artificial Intelligence/Machine Learning systems and services with direct business and customer value. We are looking for an experienced developer to join our collaborative and friendly team. Someone with a desire to learn. With a passion for clean, maintainable code. Someone that enjoys the duality of working on high level concepts as well as optimizing low-level performance. All members of the team are responsible for the complete life-cycle of features. This includes identifying areas of improvement, proposing changes, driving implementation, and supporting it in production.

  • Experience designing, implementing, and supporting highly scalable applications and web services

  • Experience working with Rust (e.g., asynchronous (async/await), sharing models (Sync/Send), etc.)

  • Experience with concurrent programming (e.g., locking, memory synchronization, atomic operations, etc.)

  • Experience with distributed system concepts (e.g., distributed consensus, replication, failure detection, etc.), Experience with blob storage solutions

  • Experience with distributed key-value databases

  • Experience with Kubernetes and containers

  • Experience with Linux system internals

  • Experience with storage systems and internals

  • Experience with back-end web technologies