Software Engineer (Embedded Engineering)
Neuron Industries Gardena, California, United States
Automation Machinery Manufacturing · 2-10 employees
Applying here? Try the free cover letter tool — paste this posting and your résumé, no account needed.
About the role
You will develop low-level software for industrial controllers, including runtime services and hardware interfaces. Your role involves integrating peripherals, debugging complex hardware-software issues, and ensuring system reliability through testing.
What they look for
Requirements
The role requires strong systems programming fundamentals in languages like Rust, C, or C++ and practical experience with Linux. You must demonstrate the ability to debug low-level software that interacts with physical hardware and understand memory, concurrency, and timing.
Full description
About the role
You’ll build the low-level software that makes Cortex a dependable industrial controller. Your work will span the controller runtime, embedded Linux services, and interfaces to physical hardware. You’ll turn application intent into working machine behavior and own the implementation, integration, testing, and debugging that gets it into customers’ hands.
You’ll work directly with the founders, electrical engineers, and application team. This role requires strong programming and computer fundamentals: understanding how memory, concurrency, operating systems, communication, and timing affect a real system, then using that understanding to build and debug it.
Gardena, CA • Full-time • On-site five days a week
What you’ll build
- Develop low-level software for the Cortex runtime and the services that execute controller applications.
- Integrate industrial I/O, peripherals, and device communication with electrical and controls engineers.
- Build embedded Linux services and reliable interfaces between applications, the runtime, and hardware.
- Debug issues across software and hardware using traces, profiling, logs, and bench measurements.
- Improve latency, resource use, concurrency, and recovery behavior through measurement and targeted changes.
- Validate functionality and failure handling with automated tests, hardware-in-the-loop testing, and reproducible fault cases.
- Ship controller updates and diagnostics that make deployment and field troubleshooting dependable.
What you’ve already proven
- You’ve built and debugged low-level software that communicates with or controls physical hardware, and can explain what you personally implemented, tested, and resolved.
- Strong systems programming fundamentals, demonstrated in Rust, C, C++, or another relevant language.
- You can explain how memory, concurrency, timing, and hardware interfaces shaped your implementation, how you measured its behavior, and what you changed.
- Practical Linux experience and the ability to isolate failures across processes, device interfaces, and hardware boundaries.
- You use tests and instrumentation to establish correctness and diagnose difficult failures.
- You take ownership of working software, communicate tradeoffs clearly, and collaborate across disciplines.
What gets you here faster
- Rust experience, embedded Linux runtimes, device drivers, or integration across Rust and C/C++.
- Industrial automation, robotics, or device communication using protocols such as CAN, Modbus, SPI, I²C, or UART.
- Hardware-in-the-loop testing, real-time systems, controller updates, or diagnostics for deployed devices.