How do you know if it's overkill without knowing anything about what I am/will be running on it? Certainly, there are projects for which this setup might be appropriately sized, wouldn't you think?
Incidentally, this setup does leave me some significant headroom in terms of compute resources, but that's by design.
It should be obvious to the reader that this is very much overkill, even for the stated goals of expandability and learning.