Tell us what your product must do
Write one paragraph about the product, the silicon and the deadline. An engineer who does this work will read it and answer you.
We take on two kinds of work. We do engineering on your embedded Linux and firmware, and we build the AI development system that your engineers use to ship it. Choose the one that matches your problem.
Board support packages, kernel migrations, build system work, custom operating systems.
Coding agents in your own repository, reviewed by a person before every merge.
Tell us about your product. We help you find what it needs and how to get there, before you commit to anything.
Start from the problem you have today. If two of these fit, tell us, and an engineer will say which one comes first.
Then security fixes arrive again.
Or reproducible build environments with Nix.
We join the software to the hardware design.
Start with a Starter, or a Diagnostic if your case is not standard.
Add the agent queue, so agents take the ready issues.
Coding agents write, test and review the code. Your engineers decide what to build, and a person approves every merge.
We set up this system inside your repository, under version control, next to your code. You keep it if we stop. We started this work in 2025. Today it runs on our own products and on customer code in C, Rust and Go.
Paid, short
We read your repository, your build and your process. You get a written answer: where agents help, where they do not, and what to set up first.
Fixed scope, fixed price
We set up the AI development system on one repository, for a stack that we already have a kit for. It is the quickest way to see it work on your own code.
Your whole codebase
We set up the full system across your repositories: the domain records, the project rules and the review agents. Then we hand it over to your engineers.
Unattended
Agents take the issues that your engineers mark as ready, and they return pull requests. Your team gets more work done without more people.
Ongoing
We keep the system current as the tools and your codebase change, so it does not decay after the handover.
It lives in your repository. It is under version control, next to your code. You keep it if we stop.
A person approves every merge. Agents write, review and propose. Your engineers decide.
It works on hardware code. We use it on C, Rust and Go, in Yocto Project, Zephyr Project and UEFI firmware products.
Unattended agents stay sealed. Each run has a one-hour token for one repository, limits on time and cost, and a kill switch.
A legacy controller, moved to Go in 135 engineer hours
These are the pieces of engineering work we take on. Each one is an offer, and not a past project.
In service since 2002 · A commit in meta-freescale in every year since 2011
We build the software layer between your hardware and your application. You get a kernel, a bootloader and a build that your own developers can run.
Your product runs a vendor tree that nobody updates. We move it to a long-term support kernel, and then it receives security fixes again.
We move a product from LTIB, Buildroot or LinuxLink PRO to the Yocto Project, so one build produces the same image every time.
We shape the operating system around the product: what starts, what is present, how large the image is, and how long it takes to boot.
We build your development and continuous integration environment with Nix and NixOS, so a build from two years ago still runs today.
We join the software to the hardware design while the hardware is still a decision, and not after the boards arrive.
Each of these runs for months, not days.
This is the software our engineers write and maintain today. Each row has a public record behind it.
AI
We build the agent system around your code. We run it on our own products and on customer code in C, Rust and Go.
YOCTO
We build custom Linux distributions with the Yocto Project. We contribute to OpenEmbedded-Core since 2011.
BSP
We maintain meta-freescale, the BSP layer for NXP i.MX platforms. We also build BSPs for other hardware.
KERNEL
We write kernel drivers and device trees. Our commits are in the mainline tree since 2007.
UBOOT
We port and configure U-Boot. We maintain three boards in the mainline U-Boot tree.
ZEPHYR
We maintain six areas of the Zephyr Project, and the UpdateHub subsystem in it. We write this firmware in C and in C++, and we publish ZephyrBT, our behaviour tree framework.
LANGS
We write device software in C, C++, Rust and Go. We reworked the Go support in OpenEmbedded-Core in 2017.
RENODE
We run the firmware in Renode, so a test needs no board. Twister and Robot Framework then drive those tests in continuous integration, on every pull request. We maintain the renode package in nixpkgs.
We do this work for products in these industries:
See our experience by industryA commit in every year since 2011, with no gap.
The repositories are public, so you can confirm it before you write to us.
The founder is still the named maintainer of meta-freescale.
Write one paragraph about the product, the silicon and the deadline. An engineer who does this work will read it and answer you.