Returning Candidate?

Software Development Engineer

Software Development Engineer

Job ID 
US-CA-Manhattan Beach
Posted Date 
Amazon Corporate LLC
Position Category 
Software Development
Recruiting Team 

Job Description

Many of the Amazon’s customer facing products and internal systems, from machine translation to search and customer support, could benefit from an injection of knowledge that is available explicitly or implicitly on the World Wide Web. We need creative engineers to help design and develop systems that can collect and process data at web scale; create text and data derivatives that have value across a wide range of Amazon businesses; and develop novel algorithms that use these derivatives to improve the overall quality of several Amazon products and services.

A recently opened R&D center in Manhattan Beach, CA, has multiple positions available for experienced Software Development Engineers. Successful candidates will build and optimize large scale systems for processing and managing web-scale repositories and will be involved in all stages of text and knowledge distillation, from collection, to processing and cleaning, to extraction and verification. They will also develop algorithms for exploiting the extracted knowledge in the context of both existing and novel Amazon products and services. In the process, they will collaborate closely with a team of Applied Scientists with expertise in specialized areas such as Natural Language Processing, Text Mining, Search, and Machine Learning.

This is a new team in the Core Machine Learning organization. If interested please apply directly online via this posting and our recruiting department will review your profile.

Basic Qualifications

  • A Bachelor’s degree in Computer Science or Electrical Engineering;
  • 4 years of Software Development experience;
  • Good knowledge of Java (or a similar language such as C#) and willingness to learn Scala.
  • Ability to whiteboard-design a distributed, high throughput system using off the shelf tooling, such as network libraries, message queues, serialization, and partitioned data stores.
  • Demonstrated knowledge of parallel processing primitives such as multi-threading, locking/contention, and common techniques such as resource pooling.
  • Ability to brainstorm the act of diagnosing/debugging a problem in a distributed system, including demonstrating a high level knowledge of the tooling they might use to do so.
  • Basic knowledge of Internet architecture related to the transmission, reception and display of web pages, including TCP/HTTP, HTML, the DOM, and Javascript (no need for cutting edge here—but an understanding of what the browser does when it downloads webpages).
  • Ability to brainstorm potential bottlenecks in a hypothetical architecture using large amounts of data and multiple systems.

Preferred Qualifications

  • Master’s degree in Computer Science, Computer Engineering or related technical discipline.
  • Deep hands-on technical expertise
  • Experience with Machine Learning Software toolkits
  • Experience in building web crawlers or similar technologies that need to ‘play nice’ in the Internet ecosystem in terms of avoiding excessive bandwidth usage.
  • Experience in utilizing a partitioned data store to maintain a large dataset available and indexed in near real-time