This month we will look at one of the basic building blocks for embedded systems, though it may not seem like much, the non-blocking timer (https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay). Non-blocking timers mean you register a button press while blinking an LED or run a servo while updating an LCD, and so forth. Basically, if you want to do anything beyond Hello World you need them.
If you do not use a non-blocking timer what you use is something like the Arduino delay function (https://www.arduino.cc/en/reference/delay). This works great if all you want to do is blink a LED but the moment you want to do more it fails. To see what the issue is look at this example (https://circuits.io/circuits/3496305-blocking-timer) and try to use the button to turn on the red LED. This behavior happens because delay is a blocking function which means the process waits for the function to end before any other code can execute. We will go over how non-blocking timers solve this problem, how to create your own, and some libraries that can speed you up.