19

I'm curious to know what kind of choices does someone with a recent Ph.D in theoretical CS have, in the industrial research labs, and how to find out about existing opportunities. In particular, I'm looking for:

  • Links to sites where such opportunities are listed, if something like that exists.
  • Information regarding the scope of working on pure theoretical topics in industrial labs, which tend to be product-oriented IMHO.

It would be really great if anyone working in an industrial lab would share his experience (which lab, what kind of work you do etc), even if he/she may not be working on theoretical CS (or CS at all!).

  • +1 This style question is very useful, and should (and will) be asked for numerous fields of research. – eykanal Feb 15 '12 at 13:09
  • I think the title to the question is unintentionally misleading. What matters is not whether your PhD is in theoretical CS, applied CS, math, physics, etc., but what you know and what you want to work on. There are hotshot programmers who have degrees in theoretical CS and are happy to work on real-world problems. I think you're asking: "What PhD-level industry job opportunities are there in theoretical CS?", which is a different (but dandy) question. – Ellen Spertus Mar 13 '12 at 0:30
  • @espertus - The title is intentionally worded this way! I wasn't implying at all that I would want to work on "theoretical" problems (i.e. not involving coding/prototyping), but that I'm open to any kind of work in industry that would utilize a theoretical background in CS. Btw, I could go on a bit about how the intersection between "theoretical" problems and "real-world" problems is not a null set, but this is not the place for that ! – TCSGrad Mar 13 '12 at 3:56
  • @shan23, absolutely. A knowledge of algorithms, graph theory, probability, etc., is vital for solving non-trivial real-world problems. – Ellen Spertus Mar 13 '12 at 17:35
  • @shan23 maybe you were the one who asked this question over at cstheory ? cstheory.stackexchange.com/questions/5293/… – Suresh Mar 16 '12 at 15:09
8

AT&T, Google, IBM, and Microsoft all have thriving basic research labs that regularly hire PhDs in theoretical computer science, and whose members regularly publish in theoretical computer science conferences and journals. Yes, research at those labs is colored by the needs of their parent companies, but not as much as you might think. All four companies (and several others) have thriving internship programs.

As with any other research job, your best bet in finding opportunities is to talk personally with people at the labs. Go to FOCS/STOC/SODA, sit at the same lunch table as David Johnson or Muthu or Ken Clarkson or Yuval Peres, and just talk to them. (It obviously helps if you have some research results that they care about.) Ask your advisor to introduce you if you don't feel comfortable just introducing yourself.

(I'm about to get some angry emails from David, Muthu, Ken, and Yuval, aren't I?)

  • +1 for being specific - that's exactly the kind of answer I was hoping this question would generate! – TCSGrad Feb 16 '12 at 9:07
  • 4
    I work at (but do not speak for) Google. While Google does hire people with degrees in theoretical CS, you also need to know how to program well in order to get hired. – Ellen Spertus Mar 13 '12 at 0:26
  • @espertus - Thanks for affirming it - I'd have anyway ensured my coding skills did not rust while in grad school! – TCSGrad Mar 13 '12 at 3:58
6

I'm not sure what is the "frontier" of theoretical computer science, but some companies, such as IBM Research or Microsoft Research, also make money by applying to some public funded research project, and as such, can work on rather theoretical work. For instance, I was involved in a project with some guys from IBM TJ Watson on security, and I can assure you that the work was rather abstract, and not at all IBM product oriented.

As for sites where such opportunities are listed, I'm not sure there are many, I'd say (but that's just my impression) that's it's usually by "networking" (i.e. you need to be involved with some guys from a company in some project, and then they might hire you). However, a good technique could be to apply for an internship first (if you're still doing your PhD), although it might a bit too late now, or even for a postdoc (if you've finished it). And in order to find the labs, I'd suggest to go to your favourite conferences, get the accepted papers, and scan for some big companies :)

EDIT: Concerning the sites where you can find job offers, I'd actually suggest to look for specialised sites in your topic of interest, where it can be possible to find offers from industry, rather than on larger sites. I guess most companies prefer to focus their search rather than dropping an ad on Monster, and receiving tons of irrelevant CVs.

For instance (although most ads will be from public academy, some are from industry, it can give you some pointers as to which companies can recruit, even if the ads are out of date):

1

I would strongly suggest you to join ACM (Association of Computing Machinery). The organization focuses on the advancment of Computer Science both as a Science and profession. Join the community and mingle with experts, share your knowledge and skills with them.

You can also find a lot of opportuites on their jobs page as well. Wish you all the best in your career!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.