Embedded courses and Training

Embedded TDD Training. Engineering the Embedded Craft

Training Objectives

  • Present the mindset, techniques and tools enabling an iterative,incremental, faster, more reliable and more sustainable embedded software development process
  • Develop a complete running system example from scratch during the practical sessions
  • Accompany the Whole team into its adoption following safe baby steps

Course Resume

  • Duration: Up to 32 hours (12 hours of theory-practice + 20 hours of practice)
  • Modalities: Live 100% online. Live mixed online/onsite
  • Available languages: C and C++

Course Topics

Part 1. Context, culture and mindsets

Does context really matter? How?, Why?, When?
Waterfall and the Software Factory
Agility in a nuthsell. Management and Technical Excelence
Introduction to Scrum
Technical Debt vs Cruft
Introduction to Extreme Programming
Craftmanship movement

Part 2. Software Development Economics

Coupling and Cohesion
Cost of Change
Software testing
Test Later
Test First
Testing anti-patterns

In this podcast we talked about some of the most common testing anti-patterns, their origins and how to prevent and combat them.

The comprehensive safety net
Code coverage
Mutation Testing
Mutation testing in C
Mutation Testing applied in C

Part 3. Software Design Principles and Practices applied to Embedded

Design for changeability
SOLID Design Principles
Software Design Patterns
Dual-Target Test Driven Development
Continuous Integration, Testing and Delivery
Embedded Continuous Integration System

Continuous Integration & Continuous Testing Dutal-Target pipeline

Part 4. Software testing entities

Types of tests
Test Pyramid vs Test Trophy
The never ending discussion about test types
A concise definition of 'unity'
Clean Tests
Test Doubles
Clean Tests

Part 5. 'Modern' Software Architecture

Hexagonal Architecure. Ports and Adapters
Clean Architecture
Portable Embedded Architecture
Hardware and microcontroller independent embedded Architecture

Embedded software system fully composable, decoupled from the underlying hardware and portable to any microcontroller

Part 6. Practical Exercise (KATA)

Initial system specifications
Just Enough Design Up-Front: A Quest towards proper abstractions
Inside-Out Dual-Target TDDing a portable IC Driver: HVAC Driver
Clean IC Driver test example
Dual-Target TDDing a portable GPIO Processor Abstraction Layer
Dual-Target TDDing a generic Temperature Controller
End-to-End on-target system accepting tests
Dealing with Change
Embracing the change. Taking The First Bullets
The art of dodging bullets
Get more info

What are they saying?

Excellent course! His point of view regarding good practices in development in general and with embedded in particular is certainly interesting and relevant. Course attendees finished it with a high level of motivation, a good collection of practical recommendations, and generally very satisfied. I recommend it without a doubt!

Iván Gómez Rodríguez

Lead Software Developer at ThoughtWorks

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.

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.

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.

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

Javier Barahona

Embedded SW Engineer at Witrac

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 LIFULL Connect

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

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.

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

Amazing training about how to develop firmware following TDD methodology, sharing experiences, improvements and the benefits it gives in the long term. Thanks for the passion and motivation you transmit, and for sharing with us your knowledge!

David Ferruz Garcia

Senior Software Manager at MaxLinear