Amazon is looking for a motivated Software Development Engineer to be part of a team that creates software for Alexa-enabled devices. You will have an enormous opportunity to make an impact on the design of the latest products that touch the lives of people everyday. You will work in a fast-paced, highly collaborative environment. To be successful in the role, you have to be passionate about consumer electronics and software design. As a device software engineer, you will work with other cross functional teams like product design, UX design, iOS and Android App dev teams. You will:
· Be responsible for development of new features and functions on the device software stack
· Work on designing APIs and protocols for communication between host controller chips, DSP chips and Amazon cloud services.
· Work with new technology initiatives and sometimes build prototypes to test things.
· Work with software and hardware tools to debug problems on Amazon devices and infrastructural
· 2+ years of non-internship professional software development experience
· Programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
· 1+ years of experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems.
· Bachelor’s degree in Computer Science, Electrical Engineering, or a related field.
· 4+ years of experience in device software development or embedded software development.
· Experience in software design, development and debugging preferably on ARM based platforms
· Experience in programming in C (or C++)
· Experience with RTOS and/or embedded Linux development
· Strong Computer Science fundamentals: Operating systems, system architecture, data structures, algorithm design, problem solving, and complexity analysis
· Experience in one or more of these areas: Software development for consumer electronics class devices or IoT devices, sensor software development, Wifi/BT/BLE Connectivity
· Knowledge of serial interface protocols like I2C, SPI , UART, USB
· Experience in Python or at least one scripting language
· Experience in board bringup
· Debugging skills on embedded systems
· Understanding of Linux kernel and application development
· Ability to review schematics.
· Experience with software debugging tools, JTAG, probes and scopes