The Amazon Devices Systems and Applications team is looking for an experienced, results-oriented Front End Engineer capable of building a world class customer experience for Amazon. Successful candidates are creative and innovative, and take great pride in both the deep technical contribution and the positive business results of their work. We own highly scalable and robust platforms to provide the best customer experience possible for buying Amazon devices and accessories. These solutions cover a broad range of functional/technical areas and change the way customers find, learn, configure, and pay for Amazon devices and accessories.
As a Front End Engineer, you will lead and mentor other talented engineers. You will be responsible for building the tools to help our customers wanting to learn more and buy Amazon devices like Echo, Fire Tablets, Kindles, Fire TV, and more. You'll operate with a very high bar on latency, security, and usability. You will interact with Product Managers and Designers and convert their vision into a technical solution. You will collaborate with other Front End and Software Engineers to deliver inspiring products. You will also guide the team on web/mobile development best practices and set examples by using them in solutions that you build.
The Front End Engineer position requires in-depth knowledge of design and development of web/mobile user interfaces and interactive applications. You should have experience with agile methodologies, working experience with at least one high level or scripting language, and experience building scalable and robust user interfaces. You will own the end-to-end design of major deliverables, working closely with a team of SDEs to execute them. This is a high visibility and fast-paced environment where you will make a direct impact on the customer experience and the bottom line of the company.
Track record delivering front-end software that is correct, stable, performant, secure, and accessibility compliant.
Able to solve difficult software and UX problems with some ambiguity. Pushes for information to avoid solving the wrong problem and mitigate UI risks early in the process to avoid feature delays. Can decompose a problem into clear software and UX design actions.
Proficient in a broad range of software design approaches and common UX patterns. Knows when (and when not) to use front-end software design patterns (e.g., asynchronicity, data binding, modules, MV*, objects, promises).
Can articulate the risks and benefits of depending on front-end libraries, frameworks, and toolsets.
Able to dive into the source code of front-end libraries to debug, patch, and extend them when necessary
You instrument software with real user metrics (e.g., taps/clicks, feature interaction, performance, fatals) to provide data and protect the customer experience by using alarms and monitors.
Proficient in view layout and rendering technologies (e.g., responsiveness, progressive enhancement, browser/device support). Knows when it is appropriate to make graceful fallbacks.
Knowledge of engineering and operational excellence best practices.
Understands how to optimize the delivery of code and assets (e.g., images, fonts) to a browser or device (e.g., lazy loading assets, using CDNs, caching, compression, etc.).
Understands the implications of introducing dependencies.
Understands how to be efficient with resource usage (e.g., application impact on memory and CPU, caches appropriately, respectful of customer’s devices, etc.).
Experience in designing and consuming RESTful APIs for use on the front-end.
Understands the importance of testing front-end components and has experience with creating unit and integration tests related to the front-end components they develop.