Senior Firmware Design Engineer at Schneider Electric
Immediately after I joined the business normally located in Plymouth, but launching a remote office in Maidenhead, I started to work on a smart domestic heating controller, which after various marketing turmoils ended up known on the market as Wiser Heat. Regardless of relatively tight hardware resources this project straight away started in C++14 and continued to this day. The core MCU is ATSAMS70Q21 based on ARM Cortex-M7 core, with 2 MB of Flash and 385 kb of RAM. The second MCU used to talk over Zigbee with remote devices (sensors and actuators) was EFR32. Tasks I handled included work at various levels, from controlling hardware peripherals up to business logic and communication with the Cloud.
However, various winds and currents caused we sailed toward a new product based on Linux. That opens a new chapter in terms of development, including Docker containers, C++17 and more normalized development environment characteristic for typical Linux system programming. It's no longer going to be firmware development (in the sense of constrained embedded development).