{"@context":"https://schema.org/","@type":"JobPosting","title":"Embedded Software/Firmware

microTECH Global Limited
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Tech stack

Board Bringup
ARM
Booting (BIOS)
UClibc (C Standard Library)
C++
Software Quality
Computer Engineering
Datasheets
Software Debugging
Linux
Device Drivers
Microprocessors
Embedded Software
Ethernet
Firmware
FreeRTOS
Joint Test Action (IEEE Standards)
Python
Linux kernel
Multipoint Control Unit
PCI Express
Performance Tuning
Real-Time Operating Systems
System Software
Universal Asynchronous Receiver/Transmitter
USB
VxWorks
Graphics Processing Unit (GPU)
Serial Peripheral Interface
Real Time Systems
Application Specific Integrated Circuits
Concurrency
Caching
Yocto
Information Technology
Low Latency
Bare Metal
Build Tools
Trace32
U-Boot

Job description

  • Design, develop, and maintain embedded firmware and device drivers for a wide range of processors and accelerators, including ARM Cortex-M, Cortex-R, and Cortex-A; DSP cores (e.g., Tensilica); NPUs, TPUs, GPUs, and custom accelerators
  • Lead chip, SoC, and board bring-up from first power-on to production readiness
  • Develop and maintain BSPs, bootloaders, and low-level system software
  • Write and debug device drivers for peripherals and interfaces such as I2C, SPI, UART, CAN, USB, PCIe, Ethernet; GPIO, PWM, timers, DMA, watchdogs; sensors, cameras, storage, and custom hardware blocks
  • Develop firmware for RTOS-based systems and Linux-based platforms
  • Integrate firmware and drivers into a larger production software stack
  • Debug complex system-level issues across hardware, firmware, kernel, and user space
  • Optimize for performance, latency, memory footprint, power, and reliability
  • Collaborate closely with hardware, silicon, systems, and application teams to define interfaces and requirements
  • Establish and follow best practices for embedded software development, testing, documentation, and code quality
  • Support validation, manufacturing, and field issues with root-cause analysis and fixes

Requirements

  • Bachelor's degree or higher in Computer Engineering, Electrical Engineering, Computer Science, or a related field
  • 7+ years of experience in embedded software, firmware, or driver development
  • Strong hands-on experience with bare-metal and RTOS-based firmware development; Linux kernel, device drivers, and system bring-up
  • Experience working across multiple processor architectures and cores (MCUs, CPUs, DSPs, accelerators)
  • Deep understanding of embedded systems fundamentals: boot flows, interrupts, memory hierarchies, caches, MMUs; concurrency, synchronization, and real-time constraints
  • Strong proficiency in embedded programming languages: C and C++; Assembly (at least at a debugging / bring-up level); Python and scripting for tooling, automation, and testing
  • Experience with hardware bring-up, debugging, and validation
  • Ability to read schematics, datasheets, and silicon reference manuals
  • Experience delivering production-quality embedded software

Preferred Qualifications

  • Experience with common RTOSes (e.g., FreeRTOS, Zephyr, QNX, ThreadX, VxWorks)
  • Strong Linux experience, including device tree; kernel configuration and build systems; driver development and debugging
  • Experience with bootloaders (e.g., U-Boot, custom boot ROM flows)
  • Familiarity with embedded Linux build systems (Yocto, Buildroot)
  • Experience with hardware debug and bring-up tools: JTAG/SWD, logic analyzers, oscilloscopes; GDB, OpenOCD, Lauterbach, Trace32, etc.
  • Experience with SoC and ASIC development environments
  • Familiarity with power management, clocking, and performance tuning
  • Experience in robotics, autonomous systems, or other safety-critical or real-time systems

Apply for this position