Giving It The Boot
An embedded bootloader is a good exercise in writing highly-reliable and maintainable code. They need to be designed to be easy to use, but can reliably recover from power loss, partial updates, and poor communication. I had the opportunity to write the bootloader for over a dozen microcontrollers. They're used in automotive modules, spectrophotometers, and autonomous vehicles. I've supported both microcontrollers and DSPs, Harvard and Von Neumann, and NOR and NAND flash.
To compliment the bootloader, I've written “one-click” installers for a PC which contains the firmware to be updated. An easy-to-use app, it allows the user to click and upgrade their system without having to worry about hex files or special tools.