_yag@@@@@@@@ggy_
_a@@@@@P@~~~`~~?@@@@g_
y@@@@@P~ . `~@@@@y
y@@@@@@` ___y_______ `4@@@@_
a@@@@@@ y@@@@@@@@@@@@@@@g 4@@@@L
z@@@@@@F|@@@@@@@@@@@@@@@@@L4@@@@@L
y@@@@@@@FZ@@@@@@@@@@@@@@@@@FJ@@@@@@,
$@@@@@@@F7MF$== =@@@~---L~RL$@@@@@@$
@@@@@@@$$$@$g$ggg@@$g-+uy_y $@@@@@@@
@@@@@@@@M@@@@@@@@@@@@@@@@@@F_j@@@@@@
$@@@@@@@@@@@@Fyg@@@@@`~@@@@L@@@F~~@$
`@@@@@@@@@@@ =@@E~` ~@$@$@@' @'
4@@@@@@@@@@@@@$$m--ays* Qg@@@@gyyF
4@@@@@@@@@@@@@@@gy$@~ _~@@@@@@F
~@@@@@4@g5@@@@@@@@F yg@@@@@@P~
~@@@K@@@@@@~~~``ygF@@@@@~
^=@R "~4@@p $F~ \@@=~
~'\ ~~ ` ~
Define your pipeline once in YAML and run it consistently across local environments and any CI/CD platform.
pipeline: - step: CreateVEnv module: pypeline.steps.venv - step: PreCommit module: pypeline.steps.precommit - step: PyTest module: pypeline.steps.pytest - step: BuildDocs module: pypeline.steps.sphinx config: source: "docs" output: "build/docs" # $ pypeline run # → identical results, every machine.
A Python CMake/Ninja build-system generator for C/C++ software product lines.
$ yanga run --variant Disco # resolving variant: Disco ✓ light_controller ✓ brightness_controller ✓ main_control_knob ✓ power_button ✓ auto_off # generating CMake/Ninja… ✓ CMakeLists.txt ✓ variant.cmake ✓ component libraries # building… ✓ sources compiled ✓ unit tests passed ✓ Disco.elf Build succeeded artifacts: build/Disco/
C language utils and tools based on the `clang` and `binutils` modules.
$ clanguru --help Usage: clanguru [OPTIONS] COMMAND [ARGS]... C language utils and tools based on the libclang module. Commands: parse Parse C source and print TU docs Generate docs for C/C++ sources mock Generate mocks for functions analyze Analyze object files dependencies
Coding Dojos are a great way to practice and enhance your skills in Test-Driven Development (TDD), software craftsmanship, and incremental software design. Detect whether your program runs on Jenkins or locally and determine the CI context based on the environment variables.
Designing a build environment for engineering software product lines.
Here are some highlights on the projects/applications I have been working over the years.
Mindmap as basis for discussing about Software Product Line Engineering.
I have generated a dependency graph of the objects in my Matter Smart Temperature Sensor project. It is surprising how many objects are created and how they are connected to each other, for just a simple temperature and humidity monitoring application.
Example of generated reports for an embedded software product line with multiple variants using YANGA.
I have prepared this Marimo Notebook to help my 14 years old son understand the concept of functions in general and linear functions in particular.
This notebook is intended to clarify concepts like "length", "surface area", and "volume" for 5th grade schoolers. It is designed to be used by parents and children together, with the goal of helping children understand these concepts in a fun and engaging way.
This notebook demonstrates how to analyze experimental data using basic statistical methods. We'll work through an example to show the practical steps involved in exploring data, assessing distributions, and ranking samples based on multiple parameters.
Currently I develop software applications for the automotive industry and I help individuals and teams to improve their software development skills.
I am interested in engineering software product lines, software architecture and build systems.