You're using an older version of Internet Explorer that is no longer supported. Please update your browser.

Software Dev. Engineer

Toronto, ON
Full Time
3 days ago
Amazon is investing heavily in building a world class advertising business and we are responsible for defining and delivering a collection of self-service performance advertising products that drive discovery and sales. Our products are strategically important to our Retail and Marketplace businesses driving long term growth. We deliver billions of ad impressions and millions of clicks daily and are breaking fresh ground to create world-class products. We are highly motivated, collaborative and fun-loving with an entrepreneurial spirit and bias for action. With a broad mandate to experiment and innovate, we are growing at an unprecedented rate with a seemingly endless range of new opportunities.

Tens of billion dollars will be spent on advertising this year, and Amazon Sponsored Products is increasingly grabbing a larger and larger piece of the pie. We are looking for exceptional software engineers to build the ad serving and rendering services for our next generation, cost-per-click ad network.
We operate at the intersection of eCommerce and advertising. Our mission is to enhance discoverability for all products sold online and connect Amazon customers with sellers and selection anywhere. Our job is a multi-dimensional optimization problem. We choose ads for a given context that need to be relevant and useful to shopping customers, have the best value possible for merchant advertisers, and meet a high quality bar for publisher showing that. If it's not hard enough satisfying those conflicting demands, we need to do it all in <30ms, thousands of times per second.
We are a highly motivated, collaborative and fun-loving team building a high growth business. We are entrepreneurial and have a bias for action with a broad mandate to experiment and innovate. This is an opportunity to make a significant impact on the future of the Amazon vision.
The ideal candidate for this role has strong experience in designing and developing scalable high-performance systems and services that are flexible, reliable, and maintainable. You have excellent problem-solving skills, a solid understanding of computer science fundamentals, and a customer-focused mindset. You take pragmatic and iterative approach to building software: you have an ability to simplify and get things done with a demonstrated track record of building and delivering software and working effectively with external and internal teams. You will build services to handle billions of requests per day, while maintaining response latencies in the milliseconds and meeting strict SLA requirements. Our systems and algorithms operate on one of the world's largest product catalogs and it is quite routine for our systems to operate on massive datasets using distributed frameworks.
A successful candidate will have the satisfaction of seeing their work on the website and numerous other websites, where it will be viewed by tens of millions of customers and will drive quantifiable revenue impact, broaden their technical skills and work in an environment that thrives on creativity, experimentation, and product innovation.

• 3+ years industry experience in designing software architecture, leading software development groups, and operating scalable software systems

• Requirement analysis, failure analysis, API design, distributed consistency

• Distributed caching (memcached, Redis, or comparable technology)

• Metrics, analysis, and software profiling

• Strong object-oriented design skills with understanding of common design paradigms

• Experience with Java or other object oriented languages- preferably on a UNIX or Linux platform including JVM internals or equivalent lower-level implementation

• Experience with distributed (multi-tiered) systems, algorithms, and relational databases

• Experience writing unit and system level tests using dependency injection frameworks and object mocking

• Experience in optimization mathematics (linear programming, nonlinear optimization)

• Oral and written communication skills (ability to produce runbooks, technical, and non-technical documentation)

• Experience coaching junior software development engineers including code review and design review

• Bachelor's degree in computer science, computer engineering or related technical discipline

• Strong, object-oriented design and coding skills (C/C++ and/or Java preferably on a UNIX or Linux platform)

• Knowledge of Python, Perl, or other scripting languages a plus

• Experience with functional programming languages such as Erlang

• Ability to effectively articulate and drive solutions to technical and business challenges

• Deal well with ambiguous/undefined problems; ability to think abstractly

• Experience working with driving product vision to deliver long term customer and advertiser value

• Willingness to own all stages of development process: requirements, design, implementation, testing, and operational support

• Excellent interpersonal communication with strong verbal / written English skills

• Graduate degree a plus

• Previous experience in computational advertising

Software and Programming