{"schemaVersion":"jobsearcher.job.v1","id":"231e1ab8b14906270cb7411d","url":"https://jobsearcher.com/jobs/231e1ab8b14906270cb7411d","canonicalUrl":"https://jobsearcher.com/jobs/231e1ab8b14906270cb7411d","title":"Embedded Software Engineer","description":"Extropic is seeking a highly skilled Embedded Software Engineer with deep experience in both bare-metal firmware development and embedded Linux application design. The ideal candidate should have a strong background working with heterogeneous multi-core RISC-V or ARM processors (e.g., Cortex-R5, Cortex-A53), excel in C/C++ and Python programming languages, and be comfortable developing across the entire embedded software stack—from low-level drivers to Linux user-space applications to host-side tooling.\r\nThis role is highly hands-on and involves close interaction with the systems, IC design, test, and physics cross-functional engineering teams. You will architect, implement, and debug complex embedded systems, integrating multiple processors, real-time firmware, and Linux-based applications.\r\nResponsibilities\r\nArchitect, design, and implement embedded software across bare-metal, RTOS, and embedded Linux environments.\r\nDevelop firmware, Linux drivers, user-space applications, and host-PC tools supporting the full embedded software stack.\r\nWork with heterogeneous multi-core SoCs (e.g., Cortex-R5 real-time cores and Cortex-A53 application cores), enabling inter-processor communication, synchronization, and resource sharing.\r\nImplement multi-threaded, multi-core software architectures with attention to power, performance, determinism, and reliability.\r\nDevelop and maintain low-level drivers for peripherals including SPI, I2C, UART, GPIO, timers, and DMA engines.\r\nDebug real-time embedded systems using JTAG/SWD debuggers, in-circuit emulators, and software diagnostic tools.\r\nPerform hands-on system characterization using oscilloscopes, logic analyzers, and protocol analyzers (SPI/I2C/UART, LVDS, Ethernet, USB, etc.).\r\nWrite clean, robust, well-tested C/C++ code for bare-metal and Linux environments.\r\nDevelop Python tools for automation, test, and host-side applications.\r\nCollaborate closely with hardware, FPGA, and systems engineers to bring up new boards, validate interfaces, and resolve integration issues.\r\nContribute to system architecture decisions, design reviews, and technical documentation.\r\nRequired Experience\r\nBachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.\r\n5+ years of hands-on experience in embedded firmware and Linux software development.\r\nStrong proficiency in C, C++, and Python, with emphasis on embedded and deeply embedded programming.\r\nDeep experience with bare-metal firmware development, interrupt-driven systems, and hardware bring-up.\r\nProven experience with embedded Linux (build systems, user-space applications, drivers, device trees).\r\nHands-on experience with heterogeneous multi-core RISC-V and ARM processors, such as Cortex-R5 and Cortex-A53.\r\nStrong understanding of multi-threaded and multi-core software design principles.\r\nExperience developing and debugging drivers and applications using I2C, SPI, UART, DMA, and other common peripherals.\r\nStrong lab skills: oscilloscopes, logic analyzers, protocol analyzers, power measurement, and signal debugging.\r\nProficiency with software debuggers (GDB, OpenOCD, Lauterbach, etc.).\r\nAbility to analyze, troubleshoot, and optimize system performance across the entire hardware/software boundary.\r\nPreferred Experience\r\nExperience with Yocto/PetaLinux, Buildroot, or similar embedded Linux build systems.\r\nFamiliarity with IPC mechanisms (RPMsg, shared memory, message queues) in heterogeneous SoC environments.\r\nExperience integrating firmware with FPGA-based systems or custom ASIC's.\r\nFamiliarity with FPGA embedded software environments such as AMD/Xilinx Vitis.\r\nKnowledge of network protocols and experience building socket-based host-PC applications.\r\nExperience with continuous integration, test automation, and version control (Git).\r\nSoft Skills\r\nStrong analytical and problem-solving ability.\r\nExcellent communication skills for cross-team collaboration.\r\nSelf-starter attitude and ability to take ownership of complex features from architecture to deployment.\r\nComfortable working in a fast-paced, hands-on engineering environment.\r\nJ-18808-Ljbffr","company":"Extropic","rawCompany":"extropic","city":"Waltham","state":"MA","isRemote":false,"isActive":false,"createdAt":"2026-06-26T03:19:01.159Z","occupations":[{"code":"15-1252.00","title":"Software Developers","slug":"software-developers"},{"code":"15-1299.08","title":"Computer Systems Engineers/Architects","slug":"computer-systems-engineers-architects"},{"code":"17-2061.00","title":"Computer Hardware Engineers","slug":"computer-hardware-engineers"}],"industries":[{"code":"541512","title":"Computer Systems Design Services","slug":"computer-systems-design-services"},{"code":"541511","title":"Custom Computer Programming Services","slug":"custom-computer-programming-services"},{"code":"513210","title":"Software Publishers","slug":"software-publishers"}],"jobPosting":{"@context":"https://schema.org","@type":"JobPosting","title":"Embedded Software Engineer","description":"Extropic is seeking a highly skilled Embedded Software Engineer with deep experience in both bare-metal firmware development and embedded Linux application design. The ideal candidate should have a strong background working with heterogeneous multi-core RISC-V or ARM processors (e.g., Cortex-R5, Cortex-A53), excel in C/C++ and Python programming languages, and be comfortable developing across the entire embedded software stack—from low-level drivers to Linux user-space applications to host-side tooling.\r\nThis role is highly hands-on and involves close interaction with the systems, IC design, test, and physics cross-functional engineering teams. You will architect, implement, and debug complex embedded systems, integrating multiple processors, real-time firmware, and Linux-based applications.\r\nResponsibilities\r\nArchitect, design, and implement embedded software across bare-metal, RTOS, and embedded Linux environments.\r\nDevelop firmware, Linux drivers, user-space applications, and host-PC tools supporting the full embedded software stack.\r\nWork with heterogeneous multi-core SoCs (e.g., Cortex-R5 real-time cores and Cortex-A53 application cores), enabling inter-processor communication, synchronization, and resource sharing.\r\nImplement multi-threaded, multi-core software architectures with attention to power, performance, determinism, and reliability.\r\nDevelop and maintain low-level drivers for peripherals including SPI, I2C, UART, GPIO, timers, and DMA engines.\r\nDebug real-time embedded systems using JTAG/SWD debuggers, in-circuit emulators, and software diagnostic tools.\r\nPerform hands-on system characterization using oscilloscopes, logic analyzers, and protocol analyzers (SPI/I2C/UART, LVDS, Ethernet, USB, etc.).\r\nWrite clean, robust, well-tested C/C++ code for bare-metal and Linux environments.\r\nDevelop Python tools for automation, test, and host-side applications.\r\nCollaborate closely with hardware, FPGA, and systems engineers to bring up new boards, validate interfaces, and resolve integration issues.\r\nContribute to system architecture decisions, design reviews, and technical documentation.\r\nRequired Experience\r\nBachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.\r\n5+ years of hands-on experience in embedded firmware and Linux software development.\r\nStrong proficiency in C, C++, and Python, with emphasis on embedded and deeply embedded programming.\r\nDeep experience with bare-metal firmware development, interrupt-driven systems, and hardware bring-up.\r\nProven experience with embedded Linux (build systems, user-space applications, drivers, device trees).\r\nHands-on experience with heterogeneous multi-core RISC-V and ARM processors, such as Cortex-R5 and Cortex-A53.\r\nStrong understanding of multi-threaded and multi-core software design principles.\r\nExperience developing and debugging drivers and applications using I2C, SPI, UART, DMA, and other common peripherals.\r\nStrong lab skills: oscilloscopes, logic analyzers, protocol analyzers, power measurement, and signal debugging.\r\nProficiency with software debuggers (GDB, OpenOCD, Lauterbach, etc.).\r\nAbility to analyze, troubleshoot, and optimize system performance across the entire hardware/software boundary.\r\nPreferred Experience\r\nExperience with Yocto/PetaLinux, Buildroot, or similar embedded Linux build systems.\r\nFamiliarity with IPC mechanisms (RPMsg, shared memory, message queues) in heterogeneous SoC environments.\r\nExperience integrating firmware with FPGA-based systems or custom ASIC's.\r\nFamiliarity with FPGA embedded software environments such as AMD/Xilinx Vitis.\r\nKnowledge of network protocols and experience building socket-based host-PC applications.\r\nExperience with continuous integration, test automation, and version control (Git).\r\nSoft Skills\r\nStrong analytical and problem-solving ability.\r\nExcellent communication skills for cross-team collaboration.\r\nSelf-starter attitude and ability to take ownership of complex features from architecture to deployment.\r\nComfortable working in a fast-paced, hands-on engineering environment.\r\nJ-18808-Ljbffr","datePosted":"2026-06-26T03:19:01.159Z","dateModified":"2026-06-26T03:19:01.159Z","hiringOrganization":{"@type":"Organization","name":"Extropic","sameAs":"https://jobsearcher.com"},"jobLocation":{"@type":"Place","address":{"@type":"PostalAddress","addressLocality":"Waltham","addressRegion":"MA","addressCountry":"US"}},"identifier":{"@type":"PropertyValue","name":"JobSearcher","value":"231e1ab8b14906270cb7411d"},"url":"https://jobsearcher.com/jobs/231e1ab8b14906270cb7411d"}}