How I organize the work

My work is organized around three pillars. In each one, I detail the tools and methods I use to design, test, and improve my embedded projects.

Software development

Good software is simple, readable, documented, and reproducible. These are the principles I apply to build a solid software foundation in my embedded projects.

Hardware development

Prototypes are modular and scalable to enable progressive integration of ideas at lower cost.

Project management

Each project follows a hybrid agile development method, encouraging creativity and responsiveness while ensuring the need is addressed.

Software development

Good software is simple, readable, documented, and reproducible. These are the principles I apply to build a solid software foundation in my embedded projects.

Embedded software development stack

For embedded firmware development, I use the libraries provided by microcontroller manufacturers. Software design always starts with a benchmarking step (existing open-source code) to validate technical choices, then continues with step-by-step development of product subsystems (drivers, communication protocols, human-machine interfaces), each with dedicated tests. I also use JTAG and GDB debugging phases to validate the system.

Neovim + Rust/C/C++ toolchains ESP-IDF, Zephyr, and FreeRTOS Git workflows, CI/CD, and test scripts GDB, OpenOCD, and JTAG
Software stack illustration

Hardware development

Prototypes are modular and scalable to enable progressive integration of ideas at lower cost.

From prototype to verification

Numerical simulation is essential to validate solutions. I start by testing functions whenever there is uncertainty. Then I move to breadboards or build a PCB prototype. Prototypes are debugged using an oscilloscope, logic analyzer, and multimeter to validate behavior. They always include extra connectors so the design can evolve as the project progresses.

Oscilloscope, logic analyzer, and multimeter Breadboards and development boards KiCad for schematics, PCB layout, and manufacturing files Engineering logbook and wiring diagrams
Electronics tools illustration

Project management

Each project follows a hybrid agile development method, encouraging creativity and responsiveness while ensuring the need is addressed.

1. Scope and requirements

The high-level direction is defined first (objectives, performance). No detailed technical choice is fixed at this stage so there is room for creativity and adaptation.

2. Fast prototyping

Using the hybrid agile method, I build a minimal prototype to test the most critical assumptions as early as possible and reduce technical risk.

3. Integration and validation

Hardware and software are integrated progressively, with performance measurements used to validate behavior.

4. Capitalization

I keep a daily engineering logbook where I record results and feedback to keep the project maintainable and make future iterations easier.