Embedded Software Engineer
Embedded Software EngineerLocation: OnsiteJob Type: Full-TimeAbout the OpportunityOur client is seeking an Embedded Software Engineer to join their engineering team and play a key role in the design, development, and support of embedded software for advanced electronic products. This position will work closely with hardware, electrical, firmware, and systems engineering teams throughout the entire product development lifecycle, from concept through production.The ideal candidate has a strong background in embedded software development, enjoys solving complex technical challenges, and thrives in a collaborative, fast-paced engineering environment.ResponsibilitiesDesign, develop, test, and maintain embedded software for microcontroller and microprocessor-based systems.Develop software primarily in C/C++ for real-time embedded applications.Collaborate with hardware and electrical engineers to integrate software with new product designs.Participate in system architecture, software design reviews, and technical planning.Develop and execute unit tests, integration testing, and software validation.Troubleshoot and resolve software defects throughout the development process.Debug embedded systems using oscilloscopes, logic analyzers, JTAG, and other diagnostic tools.Support new product development as well as enhancements to existing products.Create and maintain software documentation, technical specifications, and design documentation.Participate in code reviews and contribute to continuous improvement of software development processes.Work cross-functionally with engineering, quality, manufacturing, and product management teams to ensure successful product launches.QualificationsBachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related engineering discipline.3+ years of embedded software development experience.Strong programming experience with C/C++ in embedded environments.Experience developing software for ARM or other microcontroller-based platforms.Understanding of real-time operating systems (RTOS).Experience with communication protocols such as:UARTSPII2CCANEthernetExperience with debugging tools, version control systems (Git preferred), and software development best practices.Ability to read hardware schematics and work closely with electrical engineers during product development.Strong analytical, troubleshooting, and problem-solving skills.Excellent communication and collaboration skills.Preferred QualificationsExperience developing software for connected or IoT devices.Familiarity with embedded Linux environments.Knowledge of wireless communication protocols such as Bluetooth, Wi-Fi, or BLE.Experience with secure boot, encryption, or cybersecurity concepts for embedded systems.Exposure to Agile software development methodologies.Experience supporting products from concept through manufacturing and commercialization.What Our Client Is Looking ForStrong software engineering fundamentals and attention to detail.A collaborative team player who enjoys working across multiple engineering disciplines.Someone who takes ownership of projects and can work independently while contributing to a highly technical team.A passion for developing reliable, high-quality embedded software for innovative products.This role offers the opportunity to work on technically challenging products while contributing to the development of next-generation embedded systems in a collaborative engineering environment.