I am interested in designing and building systems that are reliable in the presence of both hardware faults and software bugs. This means designing systems that employ fault-tolerant replication, formal verification---or both.
That said, these days most of the projects my group starts are in formal verification. While I still love the occasional replication project, I typically don't initiate those myself.
If you like to understand how and why systems work, you may be a good fit for our GLaDOS group. If you already have some experience with formal verification, so much the better. If you don't, that's not a problem, as long as you are willing to learn. You may find my course on formal verification of distributed systems a good place to start.
The most important skill that a good PhD student must possess is the willingness to set a goal and work hard until that goal is achieved. Doing a PhD is not just about intelligence; it is foremost about perseverance.
If you are looking for a postdoc, feel free to send me an email. Postdoc positions are harder to fund, but they can be very beneficial (to everyone involved) when there is a good fit between the postdoc and the advisor. A strong postdoctoral candidate would have experience in publishing at top venues in their field (e.g. SOSP/OSDI/NSDI for systems, CAV/POPL/PLDI for formal verification, etc.).