Embedded Systems & Linux Kernel Development

iGates is a Tel Aviv–based software house specializing in embedded systems development — from the Linux kernel up to the application layer. We build firmware, drivers, BSPs, and IoT solutions for global enterprises in telecom, industrial automation, defense, medical devices, and retail. Clients include Siemens (industrial PLM), AT&T (telecom), Orange, and Verifone.

What is embedded systems development?

Embedded development is the discipline of writing code that runs directly on dedicated hardware, not on a general-purpose server or PC. The code sits close to the metal — sometimes inside the operating system kernel, sometimes on firmware running on a single chip — and is constrained by real-time requirements, memory budgets, power budgets, or all three.

Typical embedded projects include industrial PLCs, automotive control units, medical devices, network routers and switches, consumer and industrial IoT devices, and payment terminals.

Embedded services at iGates

  • Linux kernel customization for dedicated hardware platforms
  • Driver development for new hardware (character, block, network, USB, I2C, SPI, MMC)
  • BSP (Board Support Package) work and board bring-up from scratch
  • Custom Linux distributions with Yocto Project and Buildroot
  • Firmware development on ARM (Cortex-A, Cortex-M), RISC-V, and x86 embedded
  • RTOS integration: FreeRTOS, Zephyr, VxWorks for hard-real-time systems
  • Wireless connectivity layers: BLE, Wi-Fi, LoRa, Zigbee, Thread
  • Embedded security: secure boot, signed firmware, TPM, hardware-backed keystores
  • Full-stack delivery: Linux kernel → user-space → REST API → cloud

Our embedded tech stack

Languages: C, C++ (11/17/20), Rust, Assembly (ARM, x86, RISC-V)
OS: Embedded Linux, Yocto, Buildroot, FreeRTOS, Zephyr, VxWorks, Ubuntu Embedded
Hardware: ARM Cortex-A (i.MX, AM335x, Raspberry Pi), Cortex-M (STM32, NRF52, ESP32), RISC-V (ESP32-C, SiFive)
Protocols: I2C, SPI, CAN, Modbus, OPC-UA, MQTT, CoAP, BLE, Wi-Fi, LoRaWAN
Tools: GCC toolchain cross-compilation, GDB remote debugging, OpenOCD, JTAG, U-Boot, Device Tree

Planning an embedded product? We take projects from initial spec to shipped device — including board bring-up, kernel work, and long-term support. Reach out for a no-commitment technical review.

Embedded Development

End-to-end engineering capability

Embedded Linux, Yocto, BSP and Linux kernel driver development for industrial IoT and connected devices. iGates has built embedded solutions for Siemens, AT&T, Orange, and Verifone — senior team in Tel Aviv.

This page content is sourced from the approved handoff and can be edited later through the CMS.

Frequently asked questions

What is the difference between embedded development and regular app development?

Regular application development runs on a general-purpose operating system such as Windows, macOS, Android, or iOS, with abundant resources. Embedded development runs on dedicated hardware with memory, power, and real-time constraints. Embedded engineers often work at the kernel level, write drivers, adapt bootloaders, and work with industrial protocols. That edge requires deep knowledge of CPU architecture, OS internals, and cross-compilation tooling.

Which operating systems do you support for embedded development?

We work with Embedded Linux, including Yocto, Buildroot, and Ubuntu Embedded; Android Open Source Project; and RTOS platforms such as FreeRTOS, Zephyr, and VxWorks. The OS choice depends on real-time requirements, resource budget, and scalability. For most cloud-connected edge projects we use Linux. For hard real-time or ultra-low-power products we use RTOS on Cortex-M.

Do you also develop Linux drivers?

Yes. We write kernel-level drivers in C: character, block, network, USB, I2C, SPI, MMC, and dedicated platform drivers for new hardware. When a client wants an upstream contribution to the Linux kernel, we prepare patches according to kernel.org standards.

What is Yocto and why use it?

Yocto Project is a framework for building custom Linux distributions for embedded products. Instead of taking Ubuntu and trimming it down, Yocto lets you assemble a minimal system exactly for the hardware and features you need: a dedicated kernel, dedicated packages, and a compact binary. It is the industry standard for projects that need long-term maintenance, security updates, and reproducible builds.

Do you do board bring-up from scratch?

Yes. When a client arrives with a new board, new silicon, or a custom reference design, we take the project from “no Linux boots on this hardware yet” to a complete system. That includes U-Boot bring-up, Device Tree, kernel boot, peripheral drivers, and validation.

Which embedded projects has iGates delivered?

Notable projects include work for Siemens in industrial PLM and industrial IoT, AT&T Interwise in telecom platforms, Orange, and Verifone payment-terminal firmware. Thirty years of telecom and industrial experience give the team depth in protocols, industrial standards, and regulatory security requirements.

How long does a typical embedded product take?

A focused POC on existing hardware typically takes 6-10 weeks. A product with board bring-up and firmware takes 4-9 months. A complete product with cloud integration and fleet management takes a year or more. We always start with a 2-3 week specification phase that summarizes timeline and cost before committing to full development.

See more: Embedded Systems & Linux Kernel Development