Santa Clara Valley (Cupertino), California, United States
Software and Services
The data security team is building novel crypto and security products. We are a small team that design and build libraries and services. Server-side developers rely on us to keep their data and everyday interactions safe and private. We reason about the security property of complex systems under reasonable threat model. We build secure systems that handle massive and growing scale of data. Our tools set the examples of excellence in software engineering. That's a tall order, and we're looking to add more talented and passionate engineers who love dealing with such challenges. Your impact will be truly appreciated by billions of customers of Apple who rely on our services. We emphasize on innovation, collaboration and are inspired to give back to the development community. We're looking for a talented and passionate person to join this amazing team, if you feel this is you, we'd love to hear from you.
- Security standards & methodologies
- Java and/or other JVM languages like Scala, Clojure and Groovy
- NoSQL: Cassandra, MongoDB
- Caching: Redis, Memcached
- RDBMS: MySQL, PostgreSQL; Kafka; Spark
- Testing frameworks: Junit, gmock, TestNG, Spock, Cucumber, Rspec, Mocha or others
- Build tools: Gradle, Maven, Ant, Make, Rake, Grunt, Gulp, Ninja, Blaze/Bazel, Pants or others
- CI Solutions: Travis, Circle, Go, Jenkins, Team-City or others
- Deployment systems: EC2, Heroku,Engine Yard, App Engine Lock-free programming C/C++ and JNI
- Good understanding of Linux and OS X
Understand distributed system security: authentication and access control in distributed systems. Understand the security challenges in large scale distributed systems where system failures and compromises happen continuously. Intimately experienced in designing, implementing and supporting highly scalable services deeply understand async programming models have the ability to design and develop intuitive APIs that developers love but can scale familiar with modern server technologies (e.g., non-blocking IO, distributed storage, async programming) be eager to learn new technologies and solutions love open source and collaboration be detailed oriented. You should enjoy being challenged, be a team mate, a student, and a mentor and of course be passionate about development.
Education & Experience
BS or MS in Computer Science or equivalent