Software Design & Implementation: Design and implement high-quality software for embedded devices and systems, translating requirements into functional and reliable solutions.
Code Development & Debugging: Develop, code, test, and debug system software with a strong focus on performance, stability, and maintainability.
Code & Design Review: Actively participate in and conduct rigorous code and design reviews to ensure adherence to best practices, identify potential issues, and promote knowledge sharing within the team.
Performance Optimization: Analyze and enhance the efficiency, stability, and scalability of system resources, identifying bottlenecks and implementing optimizations.
Troubleshooting & Issue Resolution: Investigate and resolve complex software issues, performing root cause analysis and implementing effective solutions.
Documentation: Create and maintain comprehensive documentation for software designs, code, and test procedures.
Collaboration: Work closely with cross-functional teams, including hardware engineers, quality assurance, and project managers, to ensure seamless integration and successful product delivery.
Required Skills & Qualifications:
Proven experience in embedded software development using C/C++.
Strong understanding of embedded systems architectures and real-time operating systems (RTOS).
Experience with various communication protocols (e.g., SPI, I2C, UART, Ethernet, CAN).
Proficiency in debugging techniques and tools for embedded systems.
Familiarity with version control systems (e.g., Git).
Ability to read schematics and datasheets.
Excellent problem-solving and analytical skills.
Strong communication and collaboration abilities.
Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.