Responsible for analysis, design, development, testing, troubleshooting and maintenance of the products firmware and/or customer applications.
Understand system and software requirements, jointly define software feature building blocks according to platform setup and availability.
Learn and adopt continuous improvement mindset to pursue operational excellence, and deliver robust, scalable, highly designed integrity firmware.
Closely work with cross-functional teams in design, development, verification till release
Closely work with architect (Product owner) in architecture fulfillment and development.
Closely work with hardware/software engineers in test case definition, software test and bug fixing to validate system/firmware functionality and performance.
Design and development of the test framework and of integration setup Maintain and update the code repository, ensuring effective version control and code maintainability.
Responsible for the product technical documentation: product release report (focus: design part), documents: follow/ endorse department working procedures.
Arrange smooth technology and knowledge transfer (mainly after SR) to SQA, process engineers and supplier.
Develop solutions towards continuous integration and delivery environment Improve and innovate on continuous integration approach.
Work independently and cooperate with the global development team. Work with global software development team on common code base, platforms and common building blocks, and roadmap.
Collaborate with experience designers to establish, maintain and communicate descriptions of users, personas, and experience pillars.
Qualifications
Master’s degree or above in software or electrical engineering, 5+ years’ hands-on experience in firmware development.
Proficient in embedded C/C++ language developing, and knowledge of assembly language.
Proven experience with ARM Cortex or 51 series microcontroller architectures, with experience in programming PIC, 51, RISC, or ARM-based MCUs.
Deep knowledge of I2C, SPI, UART, USB and RS-232/485. Competence in MODBUS, WIFI and BT communication protocols. Competence in MEMS sensors, ADCs, Flash and external EEPROM.
Competence in driving segment LCD, TFT LCD and OLED displays.
Competence in optimizing code for performance and memory usage.
Competence in developing algorithms for embedded system.
Experience in digital noise cancellation algorithm such as Kalman filter Experience in using oscilloscopes and other debugging tools for troubleshooting.
Experience in software unit testing, test case design and test plan creation.
Experience with version control systems (SVN, GIT, etc.) , and familiarity with embedded operating systems (RTOS, Linux) is preferred.
Experience in working with commercial teams, customers, partners or suppliers to deliver results.
Skills in problem solving, critical thinking, and clear communication.
Strong background in full product development lifecycle, including system definition, system analysis, debugging etc.
Proficiency in English is required for technical documentation and communication.
Experience in brushless moto driving is a plus Familiar with x86 architecture and Microsoft Visual Studio is a plus.
Capable of creating hardware schematics, especially digital electronics is a plus