Next semester I will teach a very experimental class called "Build your own Proof Assistant," in which we come together as a class to build a proof assistant from scratch, targeting some specific set of users (I'm thinking about making it a proof assistant for educational purposes). In doing so we will learn about every piece of the proof assistant, from the foundations to the automation to the interface.
Worst case we learn a lot. Best case we build something useful and get to write a paper about it too.