Embedded Software Engineer

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