Intermediate (2-5 years of experience)
Summary of the Role
As an Embedded Systems Engineer, you will work on designing, developing, and implementing software for embedded devices and systems. You will be involved with the full life cycle of projects, including requirements gathering, system design, coding, testing, and debugging. You will interface with hardware design and development teams and must be familiar with various microcontrollers and programming languages suitable for embedded applications.
Required Skills
Programming skills in C/C++ and/or assembly language.
Experience with systems programming.
Strong documentation and writing skills.
Experience with embedded systems hardware and microcontrollers.
Familiarity with software engineering practices and methodologies.
Working knowledge of embedded software systems, RTOS, and hardware-software integration.
Qualifications
Bachelor's or master's degree in Computer Science, Electrical Engineering, or a related field.
2-5 years of experience in embedded systems design with preemptive, multitasking real-time operating systems.
Familiarity with software configuration management tools, defect tracking tools, and peer review.
Knowledge of OS coding techniques, IP protocols, interfaces, and hardware subsystems.
Adequate knowledge of reading schematics and data sheets for components.
Experience in hands-on development and troubleshooting on embedded targets.
Responsibilities
Design and implement software of embedded devices and systems from requirements to production and commercial deployment.
Design, develop, code, test, and debug system software.
Review code and design analyses.
Analyze and enhance efficiency, stability, and scalability of system resources.
Integrate and validate new product designs.
Support software QA and optimize I/O performance.
Interface with hardware design and development.
Assess third-party and open-source software.