Sr. Software Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
Imagine what you could do here. At Apple, great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring passion and dedication to your job and there's no telling what you could accomplish. Apple’s Applied Machine Learning team has built systems for a number of large-scale data science applications. We work on many high-impact projects that serve various Apple lines of business. We use the latest in open source technology and as committers on some of these projects, we are pushing the envelope. Working with multiple lines of business, we manage many streams of Apple-scale data. We bring it all together and extract the value. We do all this with an exceptional group of software engineers, data scientists, dev-ops engineers and managers. As a part of the AML team, you will develop and maintain a web application and rich set of APIs to analyze, visualize, monitor, alert and audit the large-scale data science applications.
- Proficient in core Java, Rest API development and Cassandra backend
- Proven knowledge of various data storage technologies, including the Hadoop ecosystem, Lucene and Solr and relational databases
- General software development theory and practice – knowledge of core computer science concepts such as data structures, algorithms, tools (general programming language concepts, compilers, interpreters, debuggers), and other concepts including analysis of runtime complexity and memory usage
- Strong analytical and problem solving skills – experience solving and finding workarounds for issues, often urgent, in customer-impacting production systems while maintaining an overall poise
- Strong communication skills, must be able to adopt to agile development techniques such as Scrum. Excellent analytical skills, critical thinking, and interpersonal skills.
- Deep understanding of full stack development, including GIT, code coverage, testing, build, release and deployment
- Strong understanding of Linux operating system for managing the application stack
- Some experience with configuration management tools, such as Salt-stack and/or Puppet, Ansible, Jenkins
- Experience with consuming AWS APIs, such as CloudWatch, CloudSearch, CloudFormation is a strong plus
- Real passion for process improvement
You will be responsible for designing, developing, and maintenance/support of software and tools for large-scale, high performance, efficient system operations, by providing both, a web application and set of REST APIs. Responsibilities include: - Participate in daily scrum, two week sprints to design and develop a web application and RESTful APIs using core Java, Node.js and Golang - Design, develop, unit test, code review, build and produce the deployment artifacts - Deploy the application and the APIs to several environments, following development to production strategy - Maintain and support, solicit user feedback, support requirement gathering, evangelize the adoption of the application and the APIs - Perform manual tasks including data population, backfills, deployments as needed but strive to provide automation - Provide on-call support for production issues - Learn and foster the development philosophy and the team culture
Education & Experience
BS in computer science with 7-10 years or MS plus 5-7 years experience or related experience.