Here is where I track the technologies and techniques I work
with. It is inspired by Embedded Artistry which is
based on the original Thoughtworks radar. Itβs
a way of organising tools in categories and noting the maturity
or adoption level for each.
Though I use different categories: in addition to observing
technology trends, I wanted to highlight some aspects of embedded
software engineering that I find challenging in the focus areas
section.
Instead of including the flashy Javascript radar, I decided to
keep it simple and use a text based approach. To further simplify
it, I reduced the assessment scale to the following:
Adopt: This technology is proven, mature
and can be used in most cases
Evaluate: These tools are ready to use and
have been tested to various extent, but not as mature as the
adopted ones
Hold: These are the industry standard
tools which I rather not use or only in special
circumstances
Languages & Libraries
π‘ This section contains programming languages, supporting
libraries and occasionally complete software frameworks.
Adopt
C
C++
Python
Qt
Catch
Trompeloeil
Evaluate
Rust
Hold
WPE Webkit
Platforms
π‘ The platforms sections includes hardware platforms,
bootloaders, operating systems and cloud providers.
Adopt
NXP i.MX6
STM32F3
U-boot
Linux
FreeRTOS
Azure IoT Hub
Azure IoT Edge
Azure Sphere
AWS IoT Core
Evaluate
NXP i.MX8
πΊ GD32 RISCV
Nordic nRF5x
Zephyr
ELBE
AWS IoT Greengrass
Hold
π» NXP i.MX8X
NXP i.MX23
Tools
π‘ The tools section list supporting engineering tools:
software/firmware build systems, sanitisers, formatters.
Adopt
Yocto
Buildroot
FreeRTOS
Make
Clangd: clang-format, clang-tidy
Evaluate
πΊ ELBE
Zephyr
Techniques & Focus areas
π‘ This section contains engineering techniques and some
focus areas which I think requires special care in embedded
software engineering.
Adopt
Lifecycle management
Manufacturing: Factory floor configuration
Manufacturing: Cloud configuration
Provisioning: Server assignment(multi-tenancy,
geo-sharding)