Description
Lead the design and development of embedded software and reusable components for Linux and Windows environments.
Responsibilities
- Design and develop embedded software across the full development lifecycle.
- Execute unit testing within project schedules to ensure quality.
- Define hardware and software requirements in collaboration with internal and external customers.
- Analyze requirements using tools to maintain full traceability.
- Ensure compliance with industry standards for software development and quality processes.
Required Skills
- 8+ years of experience in C and C++ within embedded Linux and Windows environments.
- Expertise in microcontroller-based system development and debugging.
- Proficiency in software design using UML-based tools and design patterns.
- Experience with multi-threading, RTOS, and compiler optimization for memory and speed.
- Hands-on experience with communication protocols including I2C, RS-485, RS-232, and CAN.
- Knowledge of networking protocols such as TCP and UDP.
- Competency with in-circuit emulators (ICE) and debuggers.
- Experience with configuration management, defect tracking, and requirements management.
- Proficiency in Visual Studio debugging, including memory, thread, and stack analysis.
- Experience using static analyzers (Lint), code coverage tools, and profiling for speed and memory.
Preferred Skills
- Experience with the Google Test framework.