Embedded Software Engineer
Team: Devices
Location: Boston
Commitment: Full-time
Workplace Type: onsite
Key Responsibilities
- Architect, design, and implement embedded software across bare-metal, RTOS, and embedded Linux environments.
- Develop firmware, Linux drivers, user-space applications, and host-PC tools supporting the full embedded software stack.
- Work 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.
- Implement multi-threaded, multi-core software architectures with attention to power, performance, determinism, and reliability.
- Develop and maintain low-level drivers for peripherals including SPI, I2C, UART, GPIO, timers, and DMA engines.
- Debug real-time embedded systems using JTAG/SWD debuggers, in-circuit emulators, and software diagnostic tools.
- Perform hands-on system characterization using oscilloscopes, logic analyzers, and protocol analyzers (SPI/I2C/UART, LVDS, Ethernet, USB, etc.).
- Write clean, robust, well-tested C/C++ code for bare-metal and Linux environments.
- Develop Python tools for automation, test, and host-side applications.
- Collaborate closely with hardware, FPGA, and systems engineers to bring up new boards, validate interfaces, and resolve integration issues.
- Contribute to system architecture decisions, design reviews, and technical documentation.
Required Qualifications
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.
- 5+ years of hands-on experience in embedded firmware and Linux software development.
- Strong proficiency in C, C++, and Python, with emphasis on embedded and deeply embedded programming.
- Deep experience with bare-metal firmware development, interrupt-driven systems, and hardware bring-up.
- Proven experience with embedded Linux (build systems, user-space applications, drivers, device trees).
- Hands-on experience with heterogeneous multi-core RISC-V and ARM processors, such as Cortex-R5 and Cortex-A53
- Strong understanding of multi-threaded and multi-core software design principles.
- Experience developing and debugging drivers and applications using I2C, SPI, UART, DMA, and other common peripherals.
- Strong lab skills: oscilloscopes, logic analyzers, protocol analyzers, power measurement, and signal debugging.
- Proficiency with software debuggers (GDB, OpenOCD, Lauterbach, etc.).
- Ability to analyze, troubleshoot, and optimize system performance across the entire hardware/software boundary.
Preferred Experience
- Experience with Yocto/PetaLinux, Buildroot, or similar embedded Linux build systems.
- Familiarity with IPC mechanisms (RPMsg, shared memory, message queues) in heterogeneous SoC environments.
- Experience integrating firmware with FPGA-based systems or custom ASIC’s.
- Familiarity with FPGA embedded software environments such as AMD/Xilinx Vitis
- Knowledge of network protocols and experience building socket-based host-PC applications.
- Experience with continuous integration, test automation, and version control (Git).
Soft Skills
- Soft Skills:
- Strong analytical and problem-solving ability.
- Excellent communication skills for cross-team collaboration.
- Self-starter attitude and ability to take ownership of complex features from architecture to deployment.
- Comfortable working in a fast-paced, hands-on engineering environment.
There are more than 50,000 engineering jobs:
Subscribe to membership and unlock all jobs
Engineering Jobs
60,000+ jobs from 4,500+ well-funded companies
Updated Daily
New jobs are added every day as companies post them
Refined Search
Use filters like skill, location, etc to narrow results
Become a member
🥳🥳🥳 452 happy customers and counting...
Overall, over 80% of customers chose to renew their subscriptions after the initial sign-up.
To try it out
For active job seekers
For those who are passive looking
Cancel anytime
Frequently Asked Questions
- We prioritize job seekers as our customers, unlike bigger job sites, by charging a small fee to provide them with curated access to the best companies and up-to-date jobs. This focus allows us to deliver a more personalized and effective job search experience.
- We've got over 200,000 jobs from 15,000+ vetted companies. No fake or sleazy jobs here!
- We aggregate jobs from 15,000+ companies' career pages, so you can be sure that you're getting the most up-to-date and relevant jobs.
- We're the only job board *for* software engineers, *by* software engineers… in case you needed a reminder! We add thousands of new jobs daily and offer powerful search filters just for you. 🛠️
- Every single hour! We add 2,000-3,000 new jobs daily, so you'll always have fresh opportunities. 🚀
- Typically, job searches take 3-6 months. EchoJobs helps you spend more time applying and less time hunting. 🎯
- Check daily! We're always updating with new jobs. Set up job alerts for even quicker access. 📅
What Fellow Engineers Say
