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