Principal Software Engineer, Personalization (i/o)

Amazon Amazon · Big Tech · Seattle, WA · Software Development

Principal Software Engineer role focused on designing and developing large-scale data mining solutions, distributed machine learning systems, and client experiences for Amazon's Personalization organization. This role involves working with big data and advanced techniques to enhance shopping experiences for millions of customers.

What you'd actually do

  1. designing and developing large-scale data mining solutions, distributed machine learning systems, and modern client experiences across webpages, mobile applications, and other shopping mediums.
  2. work cross-functionally, typically collaborating with several teams of software engineers, applied scientists, economists, product managers, user interface designers, and others in order to influence the business and technical strategy for a complex, high-performance organization.
  3. drive impactful, long-term choices on system architecture, spearhead a high-quality engineering culture, and help coach & develop junior- as well as senior engineers.
  4. designing and building large-scale systems in a multi-tiered, distributed environment (Service Oriented Architecture)
  5. Knowledge of machine learning approaches and algorithms, and experience building complex highly-scalable systems that involve predictive models or applications of machine learning.

Skills

Required

  • 10+ years of non-internship professional software development experience
  • Knowledge of object-oriented design, data structures, and algorithms
  • A Bachelor’s degree in Computer Science, Computer Engineering, Mathematics, or a related technical field; or equivalent combination of technical education and work experience.
  • 7+ years of Software Development experience with big data, cloud computing, or large scale distributed systems for commercial online services that require high availability and performance.

Nice to have

  • Experience in full-stack mobile development- android /iOS or modern web browsers and services mainly in Java in a Linux or Unix environment
  • Experience designing and building large-scale systems in a multi-tiered, distributed environment (Service Oriented Architecture)
  • Master’s degree in Computer Science, Mathematics, or a related technical field; or equivalent combination of technical education and work experience.
  • Excellent written and verbal communication skills with the ability to present complex technical information in a clear and concise manner to a variety of audiences, including executives.
  • An ability to decompose and solve ambiguous problems through proven design skills, sharp analytical abilities, and an ability to influence/utilize technical teams to execute on those ideas. Demonstrated leadership abilities in an engineering environment, driving operational excellence and best practices across the team.
  • Experience with the Scrum methodology (or similar alternatives) for agile software development.
  • Deep hands-on technical expertise in cloud-based distributed software design and development, especially utilizing AWS services.
  • Experience designing software architectures for scalability, reliability and performance.
  • Knowledge of machine learning approaches and algorithms, and experience building complex highly-scalable systems that involve predictive models or applications of machine learning.

What the JD emphasized

  • large-scale software systems
  • big data
  • Machine Learning
  • large-scale data mining solutions
  • distributed machine learning systems
  • large-scale software systems
  • big data
  • Machine Learning
  • large-scale data mining solutions
  • distributed machine learning systems
  • large-scale systems
  • machine learning approaches and algorithms
  • highly-scalable systems that involve predictive models or applications of machine learning

Other signals

  • large-scale data mining solutions
  • distributed machine learning systems
  • personalization