3+ years of non-internship professional software development experience- 2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience- Experience programming with at least one software programming language- Bachelor's degree in EE, Computer Science or related field.Do you want to build frameworks for the next generation of UI apps running on Amazon Devices? Do you believe in the "Write Once Run Anywhere" coding paradigm? How about your code providing a positive impact to our smart home customers by ensuring unique Amazon technologies are easily available to app developers? Do you want to work in a horizontal team making an impact on a wide range of products? If so, join us to build UI and app frameworks in Device OS.Key job responsibilitiesYou will engage with an experienced cross-disciplinary staff to conceive and design innovative customer experiences. You will create new solutions in a responsive, flexible and collaborative peer environment. You will participate in designing, prototyping, and building solutions to hard problems in the Amazon ecosystem for our exciting future in consumer devices.A day in the lifeYou will be a part of an agile development team following innovative best practices in software development where you'll write code, as well as work on technical designs and architecture. We are building the OS foundations, enabling you to interact with product teams to gather requirements, support feasibility analysis and to provide technical solutions that are required in defining our next generation products. One of the important aspects of the role is to develop the best, and you'll find opportunities to have a mentor as well as mentor others by sharing knowledge across teams as we build a truly unique UI app development experience.About the team- 3+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience- Masters degree in EE or Computer Science- Experience defining system architectures and exploring technical feasibility tradeoffs.- Experience porting firmware to new hardware platforms and integrating new hardware capabilities.- Extensive knowledge of the Linux kernel and experience adding new hardware drivers.- Development experience on multiple platforms and mobile devices.