An embedded software engineer is a computer engineer who specializes in the development and maintenance of software for embedded systems (devices that contain a microprocessor and have specific, dedicated functions; cell phones, automobiles, medical devices, and industrial control systems).
A senior embedded software engineer is responsible for:
- developing, testing, integrating and maintaining software for embedded systems
- developing the code that will run on the device’s microprocessor
- working with a team of engineers to create and test code for new features and products
- ensuring that the software meets the requirements of the system
- leading a team of junior engineers and provide mentorship and guidance
- project management tasks such as budgeting and timelines
Requirements:
- use a variety of programming languages and tools
- have a strong understanding of C++ and object-oriented programming
- have a strong understanding of hardware and how it interacts with software
- strong technical skills in embedded systems and software development
- able to work effectively in a team environment, as they often collaborate with hardware engineers, mechanical engineers, and other professionals
- able to handle multiple projects simultaneously
- be able to troubleshoot complex issues