I show three addresses in my signature space below. The first teaches why and how to not use blocking code (delay, readUntil,...) to do multiple things at the same time like user I/O while something is running, a stop button or ability to change parameters during the run. The second link shows how to do serial I/O without blocking including a simple state machine example. Learn state machines!