Job Code : HEX20_SW_J01002
Job Description
- Looking for a Mid-Level Embedded Software Engineer who can independently design, implement, and debug firmware for real-time embedded systems built on Ferrets.
- You will own features end-to-end, mentor junior engineers, and help improve the reliability of our embedded software stack.
Key Responsibilities
- Design and implement firmware modules and drivers for microcontroller-based products
- Develop and maintain FreeRTOS-based applications: tasks, queues, semaphores, timers, and memory management
- Lead root-cause debugging of complex firmware issues across hardware and software boundaries
- Optimize firmware for performance, power consumption, and memory footprint
- Define and execute unit, integration, and system-level test plans
- Review code from junior engineers and provide technical mentorship
- Collaborate with hardware and QA teams during board bring-up and product validation
Required Skills & Qualifications
- 3–5 years of professional embedded software development experience
- Strong debugging skills: JTAG/SWD, oscilloscopes, logic analyzers, and systematic root-cause analysis
- Practical, hands-on experience with FreeRTOS (task design, synchronization primitives, scheduling, memory management)
- Strong C/C++ skills with solid understanding of memory management, concurrency, and real-time constraints
- Experience with common communication protocols (SPI, I2C, UART, CAN)
- Comfortable working with datasheets, schematics, and low-level register access
- Experience with Git-based workflows and CI-friendly build systems
Preferred Skills
- Experience bringing up new hardware from schematic to working firmware
- Exposure to low-power design techniques and battery-powered embedded products
- Familiarity with bootloaders, OTA updates, or secure firmware update mechanisms
- Basic exposure to embedded Linux or Yocto