Embedded Linux · real-time · product software · lifecycle engineering

Tailored embedded software—built to last

Embiox takes technical responsibility for a coherent solution adapted to the product's specific needs and developed through considered decisions, realistic planning, and dependable delivery.

Based in Støvring, approximately 20 km south of Aalborg, Denmark

  1. Scope and architecture
  2. Embedded solutions
  3. Linux, microcontrollers, and real-time
  4. Delivery and lifecycle

Today, a product must do more than just work

When an embedded product leaves the development bench, the long part of the work begins. Its software must do more than function at the first release. It must remain understandable, buildable, testable, diagnosable, updatable, and practical to extend – even as hardware, dependencies, legislation, and requirements change.

Embiox therefore considers architecture, the development environment, diagnostics, updates, and maintenance from the beginning. This reduces technical risk and technical debt, while giving the product company greater control throughout the product’s lifetime.

New product

Establish the requirements, architecture, and technical direction from the outset, so early decisions support both the product’s function and its expected lifetime.

From prototype to production

Move a working prototype through validation, production, and launch without losing control of the early technical decisions.

Existing product

Regain an overview of the platform, software, and dependencies so the product can be stabilised, taken over, or developed further without discarding what already works.

What Embiox can take responsibility for

Embiox can take responsibility for the complete software delivery, participate as an accountable part of a broader collaboration, or contribute specialised expertise to an existing solution. The scope is adapted to the product and the company’s needs.

Embedded Linux and product platforms

Yocto-based Linux platforms, BSP adaptation, and integration of the bootloader, operating system, drivers, hardware, and devices. Embiox can take the platform from board bring-up to a production-ready platform adapted to the product’s hardware, functions, and expected lifetime.

Yocto · BitBake · Linux · BSP · U-Boot · systemd · secure boot · Raspberry Pi CM4/CM5

Product software, real-time, and connectivity

Application software, low-level drivers, APIs, and communication layers for embedded Linux, microcontrollers, and RTOS. The architecture is designed around clear interfaces, predictable behaviour, robustness, performance, and practical debugging.

Embedded C · Linux C · C++ · Python · RTOS · PREEMPT_RT · APIs · communication protocols

Development environments, build, and release

Versioned Linux- and Docker-based environments, controlled tools, and automated build, test, and release processes. Each delivery should remain identifiable, reproducible, and practical for others to take over without depending on a particular development machine or person.

Docker · Linux · Git · CMake · Meson · Jenkins · test automation · production testing

Updates, security, and lifecycle

Secure and traceable firmware and system updates, known dependencies, and mechanisms for handling vulnerabilities. Together, these provide a practical basis for diagnostics, support, and long-term maintenance of products in the field.

A/B updates · RAUC · Mender · signing · SBOM · CVE · VEX · traceability

Consultancy and specialist work

Embiox also contributes targeted specialist expertise to a company’s existing development work. This can include complex debugging, code or architecture reviews, reducing technical debt, or providing technical guidance on difficult decisions.

When a field failure or another critical problem requires rapid clarification, Embiox can conduct a focused technical investigation to establish the symptoms, likely causes, and relevant next steps.

Workshops, teaching, and knowledge transfer can be adapted to the company’s products, technical context, and specific needs.

How Embiox works

Engineering principles

Good embedded software comes from disciplined simplicity. Embiox favours clear layers, focused components, explicit interfaces, and controlled dependencies. System components are decoupled wherever practical so each part can be understood, tested, diagnosed, and changed without destabilising the rest of the product.

Correctness is prioritised over cleverness. Decisions are grounded in measurements, reproducible evidence, and a clear understanding of the trade-offs. Uncertainty and technical risk are communicated directly—even when the findings are inconvenient.

A strong starting point – adapted to your product

Embiox does not build every solution from scratch. Proven methods, tools, and technical building blocks from previous work provide a known starting point, allowing the effort to focus on what makes the product unique.

That starting point is adapted to the product’s hardware, functions, requirements, and risk profile, reducing technical unknowns and creating a more predictable path from idea to product without forcing the product into a standard solution.

Control of the product platform

The Linux platform is organised in clear layers that separate hardware support, the operating system, and product configuration. This provides control from boot and hardware integration through to the finished platform.

Clear boundaries make parts of the platform easier to adapt or replace when the hardware or product requirements change.

General improvements and fixes can flow back into the shared platform foundation, allowing multiple products to benefit from the same learning in a traceable and controlled way – without mixing customer-specific code or responsibilities.

Product software with clear structure

Product software is divided into components with explicit responsibilities, interfaces, and data flows. This makes the system’s behaviour easier to understand, test, and diagnose – even as the product grows or gains new functions.

The architecture is adapted to the task while building on considered principles that keep complexity under control.

Reproducible development and delivery

Development environments, tools, and dependencies are versioned in controlled, containerised environments. This limits differences between developers and automated builds and makes the delivery less dependent on a particular person or machine.

A previous delivery should remain practical to reproduce, investigate, and continue when it is needed later.

Built for the product lifetime

The product lifetime is considered in the engineering work from the outset rather than treated as a separate compliance layer. The solution should therefore remain practical to understand, change, and maintain as the product, its dependencies, and its requirements change.

This is good product engineering first. It also strengthens the manufacturer’s technical basis for product security, documentation, and obligations such as the EU Cyber Resilience Act (CRA).

From product need to delivery

Clarify

We begin with the product and the business need. The product boundary, known and unknown requirements, significant risks, technical constraints, and expected lifetime are translated into the decisions that will shape the delivery.

Typical result: A shared basis for decisions, a clear architectural direction, and a realistic plan for the work ahead.

Adapt and develop

Embiox adapts the technical starting point and develops the product-specific parts as one coherent solution. Architecture, interfaces, and important decisions are made explicit so the delivery can be understood, verified, and continued.

Typical result: A coherent software delivery adapted to the product and ready for production or the next development stage.

Maintain and evolve

After launch, Embiox can continue to take responsibility for the platform and its technical evolution. New needs, product variants, and changing requirements can be addressed without losing overview or architectural coherence.

Typical result: Continuity, predictable change, and an agreed model for responsibility and support.

Close collaboration. Clear responsibility.

Embedded software is Embiox’s primary discipline, but it is developed as part of a complete product, not in isolation. Close collaboration with the customer’s own teams, manufacturers, and other suppliers is therefore a natural part of the work.

Software is often brought in only after the main hardware decisions have been made. Embiox prefers to be involved early, allowing software requirements to inform hardware and platform choices, interfaces, testability, production, updates, security, and the expected product lifetime. This helps avoid unnecessary constraints and expensive changes later in development.

When a project requires expertise in hardware design, RF, mechanics, compliance, or another specialist discipline, Embiox can involve trusted specialists from its network. Where agreed, Embiox can coordinate their contributions and take responsibility for the technical coherence, interfaces between disciplines, and a shared delivery plan. If the customer already has the necessary expertise or preferred suppliers, Embiox readily works as part of that setup.

Experience that shapes the method

Embiox’s method is shaped by practical work on embedded products – from new platforms and real-time systems to taking over existing solutions and investigating cases where timing, performance, or reliability does not meet expectations.

Selected experience:

  • Bring-up, system start-up, and updates: Yocto- and BitBake-based product platforms with BSP adaptation, U-Boot, systemd, low-level drivers, and hardware integration. The work has also covered controlled releases and secure firmware updates.
  • Real-time behaviour supported by measurements: C/C++ for microcontrollers, RTOS, and PREEMPT_RT Linux, together with analysis of timing, scheduling latency, and priority inversion. Experience includes cache-aware, lock-free queues for low-latency, high-throughput data exchange between Linux user-space processes, profiling with ftrace, perf, and Perfetto, and performance-critical user-space data flows using DPDK.
  • Reproducible development over time: Docker- and Linux-based development environments, complex build systems, and automation using Python and shell, with controlled tool versions and the ability to recreate previous deliveries.
  • Communication from hardware to network: Drivers, interfaces, APIs, and protocols ranging from hardware-facing connections to TCP/TLS and distributed systems. Experience includes DECT, BLE, Wi-Fi, NB-IoT, and LoRa, together with protocol analysis using Wireshark.
  • Products beyond the development environment: Hardware/software integration, production testing, diagnostics, and debugging. This includes software for healthcare products, real-time sensor processing, and other systems with demanding quality and reliability requirements.

About Embiox

Embiox ApS is an embedded software company based in Støvring near Aalborg, Denmark. The company was founded in 2021 by Daniel Mandrup.

The name Embiox combines emb from embedded with IoX, short for Internet of Everything. It reflects the company’s focus on software close to the hardware and on the interfaces that enable products, devices, and systems to work together.

Embiox was created to provide direct technical responsibility and build close, long-term relationships with product companies. The aim is to understand both the product and the company’s needs, make durable technical decisions, and deliver solutions that can evolve throughout the product lifetime.

Daniel Mandrup

Daniel Mandrup, founder of Embiox Daniel founded Embiox and has day-to-day technical responsibility for the company's deliveries. He holds an M.Sc. in Electrical Engineering – Networks and Distributed Systems from Aalborg University (2016) and has more than ten years of experience developing embedded systems.

Customers work directly with Daniel, and his background shapes Embiox’s practical, structured, and long-term approach to product development.

LinkedIn · Download CV

Do you have a product that needs to move forward?

You do not need to have every requirement or technical choice in place. Briefly describe where the product is today and what you want to achieve – then the first conversation can clarify the most important questions and a possible next step.

Contact Embiox