Job at a glance
Job Title: Embedded Software Engineer Job Description This experienced Embedded Software Engineer role focuses on designing and implementing embedded software for industrial radio products as part of a New Product Development team. You will collaborate closely with cross-functional engineers to create robust embedded software architectures, guide best practices, and ensure high-quality solutions that meet stringent product requirements and timelines.
Responsibilities Analyze, design, and implement embedded software solutions that fulfill defined product design requirements for industrial radio products. Develop embedded software architectures that align with product specifications, performance targets, and reliability goals. Advise development engineering teams on best practices for embedded software design, testing, and integration throughout the product lifecycle.
Design and develop embedded software using C, C++, and Assembly languages for microprocessor-based systems. Coordinate unit testing, integration testing, and system testing activities with project teams to ensure comprehensive validation of software features. Design and implement code within a controlled workflow using tools such as JIRA, version control systems, and structured code reviews. Collaborate with hardware and RF engineers to integrate software with RF communications hardware and other electronic components.
Apply test-driven development practices to improve code quality, maintainability, and reliability, especially in safety-critical applications. Develop and maintain low-level software for communication protocols such as USB, RS232, SPI, I2C, and CAN. Participate in the design and implementation of safety-critical system code, ensuring compliance with relevant standards and internal guidelines. Use test and debug tools, including multimeters, oscilloscopes, and logic analyzers, to troubleshoot and resolve hardware–software integration issues.
Document software designs, test plans, and implementation details to support maintainability and knowledge sharing. Collaborate effectively with team members, fostering a cooperative environment to achieve project milestones and positive outcomes. Adapt to changing project priorities and meet critical deadlines through effective planning and time-management skills. Travel up to approximately 20% of the time to other company locations and customer sites for integration, testing, and support activities.
Essential Skills Demonstrated ability to design, implement, and test embedded software solutions for complex electronic products. Strong proficiency in embedded C and C++ programming, including at least 6+ years of experience in embedded software development. Experience developing embedded software in Assembly language for low-level hardware control. Experience with low-level communication protocols such as USB, RS232, SPI, I2C, and CAN.
Experience designing and implementing safety-critical system code. Experience with test-driven development methodologies. Experience with RF communications hardware and software, such as Bluetooth Low Energy (BLE) or Wi‑Fi. Working knowledge of electronic circuits and the ability to read and interpret schematic diagrams. Proficiency with test and debug tools, including multimeters, oscilloscopes, and logic analyzers.
Ability to design embedded software architectures that meet product requirements and constraints. Ability to work with controlled workflows using tools such as JIRA, version control systems, and formal code review processes. Strong independent problem-solving and analytical skills. Proven ability to collaborate effectively within cross-functional engineering teams. Strong time-management skills with the ability to meet critical deadlines.
Bachelor’s degree in Software Engineering, Electrical Engineering, Computer Engineering, or a related field. Additional Skills & Qualifications Master’s degree in Software Engineering, Electrical Engineering, Computer Engineering, or a