Senior Software Engineer, Clojure

Posted 11 Oct 2018

Apple Inc.

San Jose, CA United States


clojure java scala groovy

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.

Apples 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.

We are using Clojure to implement a DSL that affords access to our real-time machine learning platform to our data scientists. It is a challenging engineering task, dealing with the volume of data at Apple and providing our services in real-time, making them accessible to the users and scientists. Off-line model development is also part of the process, so there is a broad spectrum of challenges the system addresses. We are seeking an extraordinary software engineer to work on the DSL as well as write Clojure for subsystems we are looking to develop with the language; but the use goes beyond API implementation and function definition, it is largely a language role. As the Lisp is tailored to the use-case, we are also analyzing the code to provide advice to the core system to improve performance and extend the functionality and behavior of the system.

Key Qualifications:
Experience with Clojure and Java.
Experience with other Lisps, such as Common Lisp or Scheme.
Deep understanding of Graph Structures, and how to parse and manipulate them.
Experience with writing and maintaining stand-alone Clojure systems.
Well-versed knowledge of macros, their implementation and uses.
Familiarity with other JVM languages (like Scala and Groovy).
Some knowledge of JVM byte code execution methodologies, i.e., pipeline, instruction re-ordering, etc.
Concurrent and parallel execution methodologies and issues (on JVM).
Experience with optimizing code execution on the JVM.
Meticulous attention to detail and dedication to quality.
Excellent analytical skills, critical thinking, and interpersonal skills.

Description:
You should have worked heavily in Clojure and have had some exposure to the macro system, with the intent of modifying the language to provide an easy-to-use API to a complex underlying system. Additionally, you will have a deep understanding of the inner workings of the JVM, as the role will have a significant optimization focus. Passion for writing clean code is desired, flexibility in approach is valued, thoughtfulness in design and implementation is paramount. The target audience is a group of data scientists, with the goal of facilitating their work, as well as a group of platform engineers, to provide novel and effective implementations to improve the efficiency and effectivity of the underlying system. We rely heavily on clear communication and candid feedback among team members. Strong collaboration skills are required.
 

Education:
BS or higher in Computer Science or equivalent. At least 4 years industry hands-on development experience. 

Apple is an Equal Opportunity Employer that is committed to inclusion and diversity. We also take affirmative action to offer employment and advancement opportunities to all applicants, including minorities, women, protected veterans, and individuals with disabilities. Apple will not discriminate or retaliate against applicants who inquire about, disclose, or discuss their compensation or that of other applicants.

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.

Apples 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.

We are using Clojure to implement a DSL that affords access to our real-time machine learning platform to our data scientists. It is a challenging engineering task, dealing with the volume of data at Apple and providing our services in real-time, making them accessible to the users and scientists. Off-line model development is also part of the process, so there is a broad spectrum of challenges the system addresses. We are seeking an extraordinary software engineer to work on the DSL as well as write Clojure for subsystems we are looking to develop with the language; but the use goes beyond API implementation and function definition, it is largely a language role. As the Lisp is tailored to the use-case, we are also analyzing the code to provide advice to the core system to improve performance and extend the functionality and behavior of the system.

Key Qualifications:
Experience with Clojure and Java.
Experience with other Lisps, such as Common Lisp or Scheme.
Deep understanding of Graph Structures, and how to parse and manipulate them.
Experience with writing and maintaining stand-alone Clojure systems.
Well-versed knowledge of macros, their implementation and uses.
Familiarity with other JVM languages (like Scala and Groovy).
Some knowledge of JVM byte code execution methodologies, i.e., pipeline, instruction re-ordering, etc.
Concurrent and parallel execution methodologies and issues (on JVM).
Experience with optimizing code execution on the JVM.
Meticulous attention to detail and dedication to quality.
Excellent analytical skills, critical thinking, and interpersonal skills.

Description:
You should have worked heavily in Clojure and have had some exposure to the macro system, with the intent of modifying the language to provide an easy-to-use API to a complex underlying system. Additionally, you will have a deep understanding of the inner workings of the JVM, as the role will have a significant optimization focus. Passion for writing clean code is desired, flexibility in approach is valued, thoughtfulness in design and implementation is paramount. The target audience is a group of data scientists, with the goal of facilitating their work, as well as a group of platform engineers, to provide novel and effective implementations to improve the efficiency and effectivity of the underlying system. We rely heavily on clear communication and candid feedback among team members. Strong collaboration skills are required.
 

Education:
BS or higher in Computer Science or equivalent. At least 4 years industry hands-on development experience. 

Apple is an Equal Opportunity Employer that is committed to inclusion and diversity. We also take affirmative action to offer employment and advancement opportunities to all applicants, including minorities, women, protected veterans, and individuals with disabilities. Apple will not discriminate or retaliate against applicants who inquire about, disclose, or discuss their compensation or that of other applicants.

Job Source: Stackoverflow
Job Source: Stackoverflow

Related jobs

© Techie Jobs 2017. All rights reserved.