Embedded firmware engineering

Firmware that makes your hardware shine.

PCB design, board bring-up, firmware and secure updates: one engineer from schematic to production, based in the Eindhoven region.

We take on the whole path, from the first schematic to devices updating themselves in the field, so you work with one team instead of three.

Let’s make it work right
The problem

You’ve built great hardware.

But when it freezes, misbehaves, or just won’t talk to other devices, people assume the whole thing is bad. We get it. Debugging firmware under pressure isn’t fun, and those little issues can make or break your product’s reputation.

We make sure the firmware does your hardware justice.
The approach

We bring the same care to your firmware that you bring to your hardware.

Design

We agree on the architecture, interfaces and failure modes before writing code.

Test

Every change runs through automated tests on a PC and on real hardware.

Refine

We measure memory, power and timing, and fix what the numbers show.

Case studies

Recent work

Self-service kiosks · Raspberry Pi

Field updates that can’t brick a device

  • 18 releases
  • A/B rollback
  • Watchdog recovery
Challenge
A fleet of Raspberry Pi kiosks needed remote updates and provisioning, with nobody on site to recover a device when an update goes wrong.
What we did
Built the loader that supervises the kiosk software: A/B app slots with automatic rollback after repeated failures, a 21-step provisioning script that is safe to re-run, a systemd watchdog, and a Jenkins + Docker pipeline that checks every release before it ships.
Result
18 releases over 18 months, each rolled out remotely and rolled back automatically if it fails.
Open source · Rust

A TFTP server automotive engineers build on

  • 220k+ downloads
  • In NixOS & openSUSE
  • 33 merged community PRs
Challenge
U-Boot netbooting and board flashing need a small, dependable TFTP server and client that runs on any machine in the lab.
What we did
Wrote rs-tftpd from scratch in pure Rust, with RFC 2347–2349 and 7440 option support and a matching client, and maintain it as an open-source project.
Result
Packaged for NixOS and openSUSE, with contributions from engineers at Renault Software Labs, Ampere and Nokia. Renault uses the client as a library, and its duplicate-packets option cut an Apache NuttX network boot from 4 minutes to 20 seconds.
View on GitHub →
Clients

Trusted by teams who build things that matter.

Altuğ Bakan
About

Hey, I’m Altuğ.

I’ve spent years working on embedded systems in industries where failure isn’t an option. These days, I help companies turn hardware ideas into dependable products, without chasing firmware bugs at midnight. I’ve also written for Elektor magazine.

Process

Here’s how we usually work:

  1. 01

    Chat

    A quick call to understand your product and goals.

  2. 02

    Plan or audit

    A clear roadmap or a report for your existing code.

  3. 03

    Agree

    Agree on an actionable and fully transparent plan.

  4. 04

    Build

    Development and testing until it’s ready for production.

Simple, transparent, and built around your timeline.

Contact

Let’s talk about your device.

Whether you’re launching something new or fixing what’s already in the field, we’d like to hear what you’re building.

Start a conversation