I currently don't offer internship opportunities, except for those who have a proven research experience in computational complexity theory per se, with a clear alignment to my research (that is, a paper published or in review in computational complexity, where `computational complexity' here means a topic that is in the scope of the leading conferences in the field: STOC, FOCS, CCC, ICALP, ITCS, LICS).
Comment: My area of research is theoretical computer science, which involves mostly mathematical analysis of abstract computational models.
To join my group a PhD candidate, M.Sc. or B.Sc. (including internships) students should normally have prior knowledge in the theory of computing and complexity theory as taught in most standard undergraduate computer science programmes (e.g., under the name "theory of computing" or "complexity" or "algorithm and complexity"---but for the latter, the course must go beyond basic algorithms and into rigorous study of computational complexity classes and NP-completeness proofs, in detail). Additionally, undergraduate linear algebra, undergraduate combinatorics, and undergraduate discrete probability are expected, along with some "mathematical maturity" (acquaintance with first-order logic is an advantage).