Skip to main content

External opportunity

Firmware Engineer

Bengaluru, Karnataka, India Full-time
Apply for this role

Posted 4 Nov 2026 · Engineering

Job description

Company Overview The world is moving towards an autonomous future where sooner or later everything that is driven, pushed or pulled today, will be moving by itself. At Flo Mobility, we believe that the true adaptation of autonomy lies in the seamless coexistence of humans and bots. By leveraging the power of sensors, computer vision, edge computing, and actuators, we optimize this relationship to deliver the best speed, agility, comfort and control. Our hero product, FLO Hauler, is an Autonomous Electric Material mover, helping customers reduce time and cost of moving material across Construction, Agriculture, Mining and Warehousing industries. Flo Hauler is being used by industry leaders like L&T, PSP, Total Environment to gain 50% savings on cost and time for the last mile of material movement. Our solutions are offered on Raas (Robot-as-a-service) model. The no capex approach makes it easy for our clients to adopt our MMRs (Material Movement Robots). Role Overview We are looking for a Firmware Engineer with 1 to 2 years of hands-on experience to join our robotics team and build the next generation of autonomous systems. You will design, develop, and debug embedded firmware that controls and communicates with our MMRs and autonomous platforms, working closely with electronics, mechanical, software, and systems engineers. This role offers real ownership of production-grade firmware on robots deployed in the field, along with the chance to deepen your expertise in STM32, ESP32, CAN, and robotics communication stacks. You will collaborate with firmware and cross-functional engineering teams to troubleshoot hardware-software issues, optimize system performance, and develop robust firmware for production-grade robotic platforms. Responsibilities Embedded Firmware Development: Design, develop, and maintain firmware in C/C++ for robotics platforms, primarily on STM32 and ESP32 microcontrollers. STM32 Development: Use STM32CubeIDE, STM32CubeMX, HAL, and CMSIS for peripheral configuration, driver development, hardware bring-up, and debugging. ESP32 Development: Build embedded applications using PlatformIO, Arduino framework, or ESP-IDF, including sensor integration, wireless connectivity, and system-level firmware. Peripheral Interfacing: Develop and debug drivers for GPIO, UART, SPI, I2C, ADC, DAC, PWM, timers, interrupts, DMA, and watchdogs. CAN Communication: Implement and debug CAN-based communication between STM32 controllers, motor controllers, sensors, and other embedded nodes, including frame design, IDs, baud rates, filtering, termination, and error handling. Protocol & Sensor Integration: Integrate sensors, motor drivers, displays, and other devices over UART, I2C, SPI, CAN, RS485, and similar interfaces. Exposure to higher-level protocols such as Modbus or CANopen is a plus. Debugging & Diagnostics: Debug firmware and hardware issues using ST-LINK/SWD, JTAG, oscilloscopes, logic analyzers, multimeters, CAN analyzers, and serial terminals. Analyze logs, reproduce field issues, and drive problems to root cause. Python Tooling & Automation: Write Python scripts for firmware testing, log analysis, CAN/serial data parsing, test automation, and diagnostic tools. Testing & Validation: Create test procedures, perform functional and integration testing, and validate firmware against system requirements. Firmware Architecture: Design modular, non-blocking, interrupt-driven firmware with state machines, fault handling, and clean driver abstractions. Cross-functional Collaboration: Work with electronics, mechanical, and software teams to resolve hardware-software integration issues and improve system performance. Version Control & Releases: Use Git for branching, merging, code reviews, and maintaining versioned firmware releases. Contribute to documentation of firmware design and release notes. Education Background Bachelor's degree (B.E./B.Tech.) in Electronics & Communication Engineering (ECE), Electrical & Electronics Engineering (EEE), Instrumentation Engineering, or a related field. Relevant certifications in Firmware Design (ESP32, STM32,Arduino), Embedded Systems Skills 1 to 2 years of hands-on experience in embedded firmware development Strong fundamentals in Embedded C/C++ (pointers, structures, enums, bit manipulation, memory management, interrupts) Hands-on experience with STM32 microcontrollers using STM32CubeIDE / STM32CubeMX, HAL, and CMSIS Hands-on experience with ESP32 (PlatformIO, Arduino framework, or ESP-IDF) Solid understanding of UART, SPI, I2C, GPIO, ADC, PWM, timers, interrupts, and DMA Practical experience with CAN protocol: frames, standard/extended IDs, arbitration, baud rates, acceptance filters, and error handling Proficiency in Python for scripting, tooling, and test automation Strong debugging skills using ST-LINK/SWD, JTAG, breakpoints, watchpoints, register inspection, and serial logs Comfortable with lab equipment: oscilloscopes, logic analyzers, multimeters, bench power supplies, and CAN/serial analyzers Proficiency with Git (repositories, branches, merges, tags, releases) What We Look For A strong foundation in embedded C/C++, microcontrollers, communication protocols, and basic electronics A debugging mindset: the ability to analyze logs, reproduce failures, find root causes, and fix issues on real hardware Candidates who have shipped STM32/ESP32 projects, CAN-based systems, sensor or motor-controller interfaces, or other embedded products will be preferred Hands-on experience and the ability to solve real hardware/firmware problems are valued more than purely theoretical knowledge Ownership, curiosity, and the ability to work collaboratively in a fast-moving robotics startup
Pay, skills & work eligibility

Compensation

A clear compensation amount was not identified. Ask the employer for the range, currency, pay period and whether it covers base pay or total compensation.

Location, eligibility & working hours

Listed work location
Bengaluru, Karnataka, India
Visa sponsorship
Not stated clearly
Relocation support
Not stated clearly
Working hours / time zone
Not stated clearly

Remote does not automatically mean work from any country. A location match does not confirm work authorization, sponsorship or relocation eligibility.

Requirements at a glance

Experience mentioned: 1–2 years

PythonC++Git

Named skills identified in the listing. A mention is not always a requirement; read the full description and employer conditions.

Location & work arrangement

Listed work locations

  • Bengaluru, Karnataka, India

Explore related jobs