Job Information
Amazon Software Dev Engineer III, Amazon Common Software in Bengaluru, India
Description
Want to help shape how connected devices get to market faster? Join the new initiative Amazon Common Software (ACS) for Devices which launched Feb ‘2020 (https://developer.amazon.com/acs-devices). ACS is software that makes it faster for to integrate Amazon Device SDKs into devices that are transforming the smart home and run Amazon services, like Alexa.
As a Software Development Engineer on the ACS team, you will be part of a team that owns critical ACS components, services, tools, and application development frameworks - working on projects that push the boundaries of customer-device interaction. You will engage with an experienced cross-disciplinary staff to conceive and design innovative consumer product experiences. You must be responsive, flexible and able to succeed within an open collaborative peer environment. You will participate in designing, prototyping, and building solutions to hard problems in the Amazon Devices ecosystem.
As part of your work, you will work closely with Amazon device software teams, product management teams, external partner developers, internal Amazon application developers, and Amazon service teams to drive development from the concept stage to the launch stage.
Key job responsibilities
As a Software Development Engineer III, you will:
Write code: Write code primarily in C, C++ and Python and design scalable, fault tolerant and distributed applications. Produce code that is robust, efficient and maintainable.
Design is Crucial: Build flexible systems choosing simple, straightforward solutions over more complex ones. Lead architecture of large initiatives in scaling, security and availability. Continually challenge what exists and explore what should be changed to best meet evolving business and market needs.
Test, test, test: Our software engineers don't just write code, they also test . You will write unit tests, integration tests and regression tests and find ways to automate them.
Troubleshoot and fix operational problems: You will work with other engineers to troubleshoot operational problems and fix them. If you are so inclined, you will also automate troubleshooting procedures and write tools.
Influence product direction: You will propose your ideas for the future of the space to product management, and get to shape the roadmap.
Hire and mentor others: You will get to interview people for the team, and to mentor other engineers
Implement best practices in modern software engineering: design, implementation, testing, version control, documentation, deployment, monitoring and operations
Possess self-drive to dive deep and maintain progress even in the face of ambiguity and imperfect knowledge (avoid “analysis paralysis”)
Basic Qualifications
8+ years of non-internship professional software development experience
8+ years of programming with at least one software programming language experience
5+ years of leading design or architecture (design patterns, reliability and scaling) of new and existing systems experience
Experience as a mentor, tech lead or leading an engineering team
Proficient in embedded software development using C, C+- Proficient in implementing embedded software ranging from high-level application to low-level hardware device drivers.
Solid understanding of Object-Oriented design and concepts
Strong analytical and problem solving skills
Excellent verbal and written communication skills
Preferred Qualifications
8+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience
Bachelor's degree in computer science or equivalent
Familiarity with diverse 8/ 16/32 bit microcontroller families
Experience with all phases of development, including design, implementation, and operation of production systems
Strong, object-oriented design and coding skills
Deal well with ambiguous/undefined problems; ability to think abstractly.
Experience taking a lead role developing complex software systems that have successfully been delivered to customers.