Develop software using modern software development principles and technologies Design, develop, test, and document object-oriented embedded systems, firmware, and device-level applications Deliver quality code based on unit and automated acceptance tests Review, define, analyze, and improve detailed specifications and implement feature development Ensure development/integration documentation is adequate, complete, and published Work on test automation to ensure fast delivery of quality products Participate in peer-reviews of code and offer suggestions in line with best-practice design patterns Mentor junior team members and provide technical leadership Operate independently, setting priorities and goals while continuing to learn and grow technically Continually grow capabilities and strengthen independence, writing software, analyzing and solving complicated problems Create and maintain build root for Linux system Maintain update pipelines for releasing firmware and OS updates