I've been thinking about concurrency and distributed messaging system for a while now. I started tinkering with various aspects of ZeroMQ, then explored designs and protype-implementation of a QUIC-based message protocol (like an alternative to NATS and similar). Hit some roadblocks and went back into thinking about concurrency and async I/O.
Then after a few pivots I landed on a good design for a framework which embodies what I'd like to see about programming concurrent systems without the gotchas of today's primisitives (e.g. callbacks/promise hell).
So I recently open sourced it (https://github.com/pmbanugo/tina). It's a high-throughput concurrency framework that bridges the Erlang-style concurrency with native performance (no VM, no GC).
One other area I'm interested in is formal method design using TLA (by Lamport). But I'm still scratching the surface on that one.