I guess I can call myself a professional asynchronous programmer, given that I've been working on stateful, concurrent, highly asynchronous systems for the past few years. However, I still feel like a clueless novice, I don't have a solid mental model for concurrent programming. For example, https://github.com/jimblandy/context-switch compares context-switch overhead between OS threads and tokio tasks and finds that switching tasks is faster, unless you pin the whole thing to a single core! I...