Develop simple, maintainable, highly reusable embedded software designs that can be leveraged across our product portfolio. Understand customer and system requirements and translate that into software requirements and designs. Responsible for defining software design best practices, tools, technologies, and templates. Define and implement unit tests to help deliver new features. Participate in software project planning and execution. Coordinate tasks across teams and groups. Solve complex problems with as simple as possible solutions. Write software documentation and test plans. Participate in and drive code reviews.
To Be Successful You Will Have:
Over 4 years’ experience in design and implementation of embedded software platforms and applications. Proficient in Software development in C and C++ languages and knowledge of OOP Principles. Knowledge of networking (e.g. TCP/IP, SSL), wireless communications (Wi-Fi, BLE), and/or AWS. Experience with multi-threaded applications. Debug system issues to understand root-cause and provide suggested fixes. Experience working at a consumer electronics company. Excellent communication/interpersonal skills. Flexible in completing tasks in an ever-changing workplace. Positive attitude, strong work ethic, self-motivated, organized.
Preferred/Additional Skills:
Experience developing in a Linux environment. Knowledge of iOS and Android mobile OS. Experience with Yocto, Jenkins and DevOps tools. Experience with creating software automation tests in Python. Experience working in an Agile/SCRUM process.