Newinvisible AI for interviewsTry Cue
Featured

Senior Software/Driver Engineer

MicroTECH Global Ltd

You will work across CPUs, MCUs, DSPs, NPUs, TPUs, and custom ASICs, developing firmware, boot flows, device drivers, and board-support packages (BSPs). The role spans early silicon and board bring-up through stable, scalable deployment, with a strong emphasis on correctness, performance, reliability, and maintainability.


What you'll do

  • 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


Required Qualifications

  • 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