Knock, knock, Embedded Developer...
Wake up

... and follow the Red, Green, Refactor Test-Driven Development cycle

Embedded Software Craftmanship

Can you evolve your firmware at a sustainable pace?

Product Portability

You should be able to port your solution with minimal effort

Profitable and long run embedded solutions are decoupled to specific short term details, like:

  • The PCB and its internal and external components
  • The running processor or microcontroller
  • Any third party or vendor library, framework or tool
ADC reading Processor Abstraction Layer

Reading an analog variable using a Processor Abstraction Layer (PAL) static Template Method

Learn how

Removed "Hardware Bottleneck"

Underlying hardware should be barely needed to develop our embedded software application

  • From Business Entities to the Special Function Resgisters (SFRs) related tasks
  • Ability to develop from anywhere in the world
  • Expensive hardware development tools no longer needed (oscilloscopes, signal generators, power supplies, etc)
  • Greater competitiveness throughout portable solutions
  • Escape from the Plug & Pray development approach
  • Embrace a real Plug & Play approach!
Learn more

Dual-target Test-Driven Development

Everything changes when you are sure all the code was working one minute ago

  • Embedded Software incrementally developed under less than a minute feedback loop
  • 100% tested at least under two different processor architectures
  • Conprehensive suite of specifications (aka tests)
  • Better sleep patterns and less burn out across the whole team
  • Out of the Box tools: mutation testing, static and dynamic analyzers
Learn more

Can I Help You?

Proven Experience

Surviving between the hardware and its running software since 2005. I really know how difficult it is because I learnt it by the hardest possible way. Let's let behind your survival mode and learn how to rule your embedded systems (again)!

Embedded Craft

If you are not developing under less than a minute feedbak loop then your x10 developer version is still waiting to be unleashed.  Let's put advanced engineering  practices to work  (SOLID, TDD, Design Patterns, Mutation testing...) even under tiny bare-metal microncontrollers

C/C++ Courses

Learn how to create more long run embedded software and less hardware specific firmware. Do it by using development techniques which lead to a decoupled, evolutive and portable architecture, all guided through practical Kata examples that run under real embedded devices.


  • SOLID Principles and Design Patterns
  • Architecture, Test-Driven Development, test doubles and managed dependencies
  • Unit, Integration and System testing, performed both in development host (Linux PC) and in target microcontroller
  • Practical development example from scratch without using the underlying hardware until its very first and successful run on the final platform
  • Learn how to refactor your embedded code following the Boy Scoutrule

Introduction to 'Unembedding' embedded systems during the First International TDD Confererence

What are they saying?


Our Firmware development team has quickly internalized a faster and better approach to create higher quality long run products. Excellent course, professional and trainer. Strongly recommended

Elías García García

R&D Director at Fermax Technologies

This course has certainly saved us months of headaches in the development of our projects. A great course from an excellent communicator and a mentor in the Embedded Software Craftmanship world.

Pablo Martinez Crespo

CTO Firmware at Cecotec Innovaciones S.L.

A much better approach to develop fully tested, highly reusable, greater quality embedded software while being decoupled from Hardware

David Sanz Vidal

Principal Embedded SW at Power Electronics

Fantastic course about Agile methodology! Analyze, deocuple, think a test and pick code. Let’s work as a trust team!

Toni Garcia

HW & FW Engineer at Fermax Technologies

Are you interested in applying state-of-the-art Software Engineering practices to embedded development? This course is what you have been looking for!

Mario Cervera

Software Craftsman at DAS Photonics

Enlightening course! Thanks to him, I learned the basics of TDD and embedded system programming good practices

Javier Barahona

Embedded SW Engineer at Witrac

Revealing course! From a passionate teacher, learning by test-driven coding in order to achieve clean working code that produces higher quality applications and avoids debugging time

Pablo Soriano

Firmware Engineer at Cecotec Innovaciones S.L.

Clarifying, relevant and necessary! Essential to avoid continuing to survive in the world of development. I am looking forward to applying everything I have learned to my projects and continuing to improve

Claudia G.

Firmware Engineer at Cecotec Innovaciones S.L.

A very interesting, enjoyable, useful and easy to follow course for any software developer, coming from the embedded context or not. Great course and experience!

José María Martínez Martínez

CTO of Artificial Intelligence at Cecotec Innovaciones S.L.