The ideal candidate will be responsible for developing high-quality applications. They will also be responsible for designing and implementing testable and scalable code.
Responsibilities
- Design and develop embedded software and firmware for various embedded systems, including
- microcontrollers, microprocessors, and digital signal processors.
- Collaborate with hardware engineers and system architects to define system requirements,
- hardware-software interfaces, and system integration.
- Develop low-level device drivers and interface software to facilitate communication between embedded systems and external peripherals.
- Write efficient, reliable, and scalable code for real-time operating systems (RTOS) and bare-
- metal environments.
- Conduct thorough testing, verification, and debugging of embedded software to ensure
- functionality, performance, and quality.2
- Perform code reviews and provide constructive feedback to team members to maintain code
- quality and ensure adherence to coding standards.
- Optimize system performance, memory utilization, and power consumption for embedded
- applications.
- Stay updated with the latest technologies, tools, and trends in embedded systems development
- and propose innovative solutions to improve system capabilities.
- Collaborate with cross-functional teams, including hardware engineers, firmware engineers, and
- product managers, to support product development and meet project timelines.
- Document design specifications, software architecture, and technical specifications to facilitate
- knowledge sharing and future maintenance.
Qualifications
Bachelor's degree in Computer Science, Electrical Engineering, or a related field. A Master's degree is a plus.3+ years of experience.Knowledge of C, Microcontrollers (8,32 bits).Proven experience in embedded software development, preferably in a professional setting.Proficiency in programming languages such as C, C++, OOPS, Multithreading and assemblylanguage for embedded systems.Strong understanding of embedded systems architecture, real-time operating systems, andhardware-software interfaces.Experience with microcontrollers, microprocessors, and embedded development tools, such asdebuggers, emulators, and compilers.Familiarity with communication protocols commonly used in embedded systems, such as UART,SPI, I2C, and Ethernet.Knowledge of software development methodologies, version control systems, and bug trackingtools.Excellent problem-solving skills and the ability to debug complex software and hardware issues. Strong analytical and organizational skills with the ability to work on multiple projectssimultaneously.Effective verbal and written communication skills to collaborate with cross-functional teams anddocument technical specifications.