Software Development Engineer

Amazon Lab126 is an inventive research and development company that designs and engineers high-profile devices like the Kindle family of products. Lab126 began in 2004 as a subsidiary of Amazon.com, Inc. Since then, we have worked to produce best-selling e-readers and tablets, as well as new inventions like Fire TV and Echo. What will you help us create?

Work hard. Have fun. Make history.
The Role:
You directly manage a team working to deliver software to meet customer, business, and/or technology needs. You own existing software in a segment of a business, functional area, or technology (e.g., a set of containers for Beanstalk). As the owner, you are accountable for the customer experience, project prioritization, software quality, product maintainability, and the growth of the engineers that report to you. You are mindful of each SDE’s areas for growth and you actively work to make sure they are assigned to projects to develop and stretch their skills. You understand the larger picture (i.e., customer requirements, business process, opportunities, and/or problems to be solved). You may be new to management and need guidance. You are learning how to be strategic and seek guidance on long-term direction. You partner with your manager, business stakeholders, vendors, TPM, Senior/Principal Engineers, etc. to clarify the team mission, vision, and priorities. You utilize the working backwards process. You may partner with hardware engineering and factory operations teams. You make sure the team thinks and implements globally. You help them see how their work contributes to organization goals.

You own the day-to-day management of software development. You understand development methodologies (e.g., Scrum ) and work with your team to adopt the best approach to yield optimal team productivity, innovation potential, as well as fit the needs of the product being developed (for those working with hardware teams). You effectively prioritize deliverables. You stay connected and resolve blockers that could derail development schedules. You facilitate SDE connections to customers, Senior SDEs/Principal Engineers, and subject matter experts. You help your SDEs grow by encouraging them to contribute to cross-team technical discussions, supporting their ideas, and empowering them to make decisions. You partner effectively with TPMs and other supportive roles. You make sure both business and engineering requirements are well-defined. You are able to dive deeply into technical details (e.g., dependencies, design choices, operability) and can transform raw thoughts into clear direction. You partner with SDEs to scope development efforts and identify risks. You protect your team from being over-committed, recognizing that their ability to meet every expectation will at times be constrained. You proactively communicate priorities, development status, and any team challenges to customers, TPMs, stakeholders, and management. You ensure everyone is aware of how decisions are made and are notified when schedules change.

You have a solid understanding of the design approaches and industry technologies utilized within your team. You understand the overall architecture and foster great working relationships with any teams that share that architecture. You help make trade-offs; balancing the larger picture (e.g., resourcing, business goals, user experience, dependency impacts, efficiency, availability, etc.) against the needs of building, maintaining, refactoring, scaling, and extending features to properly support the life of the technology. You make sure your SDEs are able to spend adequate time on design and you seek their input on technology recommendations. In the absence of a Senior SDE, you are able to review software code (for style, readability, quality, and maintainability). You drive constructive technical discussions and audit appropriately to prevent the consequences of poor technology decisions. You are able to recognize when a proposed design is too complex or risky (and arrange for additional reviews with Senior/Principal Engineers).

Basic Qualifications

· Degree in Computer Science, Computer Engineering or related field, or 10+ year relevant work experience
· Professional experience in software development building production software systems. Computer Science fundamentals in object-oriented design, data structures, algorithm design, problem solving, and complexity analysis
· Able to drive system architecture design and complex software prototype and solutions.
· Rich development experience on multiple Linux platforms and mobile devices.
· Excellence in technical communication with peers and non-technical cohorts.
· Capable of managing a low level software team ( BSP ) with a defined product and technology strategy. Seeks strategic direction.
· Tactical influence over systems, product(s), priorities, and trade-offs. May influence vendors or 3rd parties.
· Drives effective business and technical discussions with outside teams in English, Writes clear documentation in English.
· Has engineering experience, customer product such as mobile phone or tablet product development background. Familiar with SW development with Android platform, familiar with multiple SOC platform. Be able to understand design approaches within technology domain. Is able to spot risks. Asks the right technical questions.
· Good understanding of Linux kernel, driver, android platform.
· Leads team to improve existing software. Clarifies design, technical requirements. Accelerates developer progress. Clears or escalates blockers.
· Owns software impacting a portion of a business, functional, or technology area. Trusted with organization goals.

Preferred Qualifications

· knowledgeable on professional software engineering & best practices in software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations.
· Ability to take a complex and challenging project from scoping requirements through actual launch of the project.
· Firmware development background for DSP.
· Low level audio SW development experience.