Job Responsibilities:
- Software Development: Design, implement, and test software for embedded systems, ensuring it meets performance, reliability, and security requirements.
- System Optimization: Optimize software for performance, power efficiency, and memory usage within the constraints of the embedded environment.
- Debugging and Troubleshooting: Use debugging tools and techniques to troubleshoot issues in embedded software, including handling hardware/software interactions.
- Documentation: Write and maintain detailed technical documentation, including software design specifications, user manuals, and code comments.
- Collaboration: Collaborate with cross-functional teams, including hardware engineers, product managers, and quality assurance, to deliver high-quality products on time.
- Testing and Validation: Develop test plans and conduct rigorous testing to validate the functionality, performance, and reliability of embedded systems.
Job Requirements:
- Education:
- Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
- Experience:
- 5+ years of experience in embedded systems development.
- Proven experience with embedded C/C++ programming.
- Technical Skills:
- Strong understanding of embedded systems architecture and design principles.
- Proficiency in embedded software development tools, such as compilers, debuggers, and emulators.
- Knowledge of version control systems (e.g., Git).
- Understanding of network device, control systems, or communication protocols is a plus.
Wage ranges are based on various factors including the labor market, job type, and job level. Exact salary offers will be determined by factors such as the candidate's subject knowledge, skill level, qualifications, experience, and geographic location.