I am a hobbiest in this and have been programming in C/C++ using Atmels AVR series: Atiny, Atmega, Xmegas and AVR32 - UC3A series chips for the last 9+ years and also the Atmel SAM ARM. Also started working with the STM32 series ARM microcontrollers.
Have written TCP/IP stacks for micro controllers from scratch, worked with various protocols like DNP, Modbus, SMAnet, Toshiba to name a few.
Have written code and developed circuits for interfacing with various types of sensors, analog (0-10V, 4-20mA), and digital, proprietary RS485 data format etc, ESP8266 and ESP32 custom firmware with Wifi, 433MHz/ RFM73/75 transceivers (Hope RF), motor controllers (BLDC), 3G/4G data logers, Ethernet, IoT applications.