Siri - Domains Engineer - Tools and Infrastructure
Pittsburgh, Pennsylvania, United States
Machine Learning and AI
Would you like to play a part in the next revolution in human-computer interaction? Would you like to contribute to a product that is redefining mobile and desktop computing, and work with the people who built the intelligent assistant that helps millions of people get things done — just by asking? The mission of a Siri Domains Engineer - Tools and Infrastructure is to provide the tools for developers to know that what they are building works. We are a group of software engineers that are passionate about shipping high quality software, frequently. In other words, we are an amplifying force on the Siri team to help make everyone more productive. As a Domains engineer, you will work hand in hand with other Siri Domains Engineers to produce a deliverable that makes complex technology easy to use for everyone.
- You are comfortable operating in a highly collaborative, multi-functional environment, where you work not just with other engineers but with designers, testers, managers, and executives.
- You have practical knowledge of fundamental software engineering concepts such as basic data structures, user interface frameworks, concurrency, and unit testing.
- You are familiar with Unix OS fundamentals like Inter-Process Communication, Thread Management, Virtual Memory, etc.
- You have excellent verbal and written communication skills.
- You are self-motivated and curious, with demonstrated creative and critical thinking capabilities and an innate drive to improve the world around you.
- You have a history of tackling challenging problems and persisting until they are solved.
- You have proven experience developing in at least one programming language. We primarily use Objective-C, Swift, and C++, so experience in those languages is a plus, but is not a requirement.
Your day to day job responsibilities will include: Design, implement, and refactor code in Java, C/C++, Objective-C, and Swift. Be the lead engineer in discussions focused on testability, quality, and agility. Play a critical role in identifying and fixing pai n points that developers experience in the development cycle. Are you ready to join us?!
Education & Experience
You have a bachelor’s or master’s degree in computer science, or have equivalent experience.
- Experience with Continuous Integration (CI) systems such as Jenkins, TravisCI, TeamCity, etc.
- History of contributions to open source Unix-like software such as Linux, FreeBSD, etc.
- Experience with JUnit, CxxTest, CppUnit, or XCTest
- Experience with Thrift, ONCRPC, XMLRPC, or XPC