Version 1 (modified by simonmar, 10 years ago) (diff)

info about internships at MSR

Microsoft Research Cambridge now runs a year-round internship programme. You can apply for an internship slot in any area covered by the lab, but Simon and I are of course keen to attract strong applications from people interested in functional programming, Haskell, and GHC.

What is an internship?

An internship is a paid post, for three months (occasionally up to 6), at Microsoft Research in Cambridge (MSRC). You get to work on a project agreed, usually in advance, with your MSRC sponsor. Both parties benefit. You get to work in a leading-edge research lab, with fantastic people floating around all the time. We get the benefit of your hard work, and perhaps the start of a collaborative relationship.

In principle, Microsoft owns any intellectual property you generate, but this isn't relevant for an open-source project like GHC. You're also strongly encouraged to publish your work as a paper, often written jointly with your sponsor.

Who is eligible?

Internships are aimed primarily at students currently studying for a PhD. That's the norm, but it's not a cast-iron requirement.

Internships to work on Haskell and GHC

Simon and I always have a zillion projects that we'd like to see done, but do not have time to do. An internship is a chance for you to work closely with us --- we usually meet with interns daily, and we never have more than one at a time --- on one of these projects. (Or you can suggest a project of your own.)

To give you some idea, here are some past projects

  • Kevin Donnelly is changing GHC's intermediate language to support equality constraints.
  • Roshan James is writing a parallel garbage collection
  • Geoff Washburn made the first implementation of GADTs in GHC
  • Dimitrios Vitytonis worked on type inference for impredicative polymorphism
  • Krasimir Angelov completed and released Visual Haskell.

Here is a list of some possible future projects we have in mind:

  • Update/improve Visual Haskell
  • Work on the GHCi debugger
  • Implement semi-tagging or other optimisation improvements in GHC
  • Experiment with multiprocessor Haskell and/or STM by building and measuring applications, investigate improvements
  • Build a Windows-native version of GHC (using MS tools instead of gcc).

MSRC has lots of other interesting work on programming languages too: F#, security, etc. Check it out here.

When can I apply?

You can apply ANY TIME. Internships are not just the summer months. Contact one of us in the first instance (or another sponsor if they are more suitable)