JOBSEARCHER

Software Engineer (Embedded Engineering)

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 buildDeveloplow-level software for the Cortex runtime and the services that execute controller applications. Integrateindustrial I/O, peripherals, and device communication with electrical and controls engineers. Buildembedded Linux services and reliable interfaces between applications, the runtime, and hardware. Debugissues across software and hardware using traces, profiling, logs, and bench measurements. Improvelatency, resource use, concurrency, and recovery behavior through measurement and targeted changes. Validatefunctionality and failure handling with automated tests, hardware-in-the-loop testing, and reproducible fault cases. Shipcontroller updates and diagnostics that make deployment and field troubleshooting dependable. What you’ve already provenYou’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 fasterRust 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, I2C, or UART. Hardware-in-the-loop testing, real-time systems, controller updates, or diagnostics for deployed devices.