Designing and developing software for embedded systems using programming languages such as C and C++.
Analyzing and understanding system requirements and specifications to determine software design and implementation.
Developing and testing software algorithms, data structures, and user interfaces for the embedded system.
Integrating software with hardware systems and other software components to ensure proper functioning.
Debugging and troubleshooting software to identify and resolve issues and bugs.
Conducting unit testing, integration testing, and system testing to ensure software quality and functionality.
Documenting software design, implementation, and testing processes and results.
Collaborating with cross-functional teams, including hardware engineers, software developers, and project managers, to ensure successful project completion.
Staying up-to-date with emerging trends, technologies, and best practices in embedded software engineering.
Requirements :
Minimum of 1 year proven working experience in software engineering
BS degree in Computer Science or Engineering
Experience in hands-on development and troubleshooting on embedded targets
Solid programming experience in C or C++
Proven experience in embedded systems design with preemptive, multitasking real-time operating systems
Familiarity with software configuration management tools, defect tracking tools, and peer review
Excellent knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems
Adequate knowledge of reading schematics and data sheets for components