Wednesday, June 16, 2010

Outsourcing My Research Group

A PhD student at Carnegie Mellon costs approximately $80,000 per year. (Research programmers and post-docs cost about the same.) Given that PhD students have to take classes for the first couple of years and are therefore running at 50% capacity, this means that each effective person in my research group costs on average $100,000 per year.

I'm from Guatemala. For $100,000, you can hire 4-5 extremely competent full-time engineers there (even accounting for the 50% overhead rate inside CMU). My question today is: would it make sense to take 5 engineers instead of a PhD student next time I have extra money?

I understand that CMU PhD students have a much higher IQ than the average programmer, and that for certain tasks you can't just rely on programmers, but if the exchange rate is 5 to 1, I think the experiment is worth a try.

And from there, it's a slippery slope: why not just move my whole research group to India or China, since a large fraction of our PhD students come from there anyways?

Part of the goal of being a professor is mentoring, and I love that part: I am not saying we should get rid of PhD students, but that perhaps a mix of some outsourced coding and PhD students would be a better investment for everybody.

Disclaimer: 100% of my PhD students are working on projects of their own choosing, and if anything my biggest flaw as an advisor is not giving them enough direction (instead of micromanaging them).


  1. About the first question: Because you are not running a company and you are a mentor as well.

    About the second question: Make totally sense, if one could overcome the bottlenecks of the infrastructure.

  2. You can choose to do so and lower the demand by a little. Apparently, though, other people think it's worth it to hire them at about that price.

    2 developers is not twice as good as one, and 5 may only be as good as 1 on the same project if the one is smarter than the five.

  3. Because they came for U.S. rather than PhD degrees, nearly 25 students from my graduating class (in India) went for PhD in USA (Chem Engg. not CS though). And 80% of them went for the 25k$ Stipend and a chance to live in USA (and to become future US citizens).

  4. That strikes me as being similar to clear-cutting. It works great for you, but when everyone does it, there are no new researchers being trained.

  5. > That strikes me as being similar to clear-cutting. It works great for you, but when everyone does it, there are no new researchers being trained.

    Sure, but I'm selfish :)

  6. > Apparently, though, other people think it's worth it to hire them at about that price.

    I don't think anybody thinks that. I think we normally just have no choice in the matter if we want to have any PhD students.

  7. Luis,
    There are two reasons.
    1) You are not paying the $100K. It is being paid by the US government or private entities.
    2) Most students from India are interested in studying more, and I see no reason as to why they would want to do their MS/PhD in India on $200 stipend when at CMU they can get $2200.

  8. Seems like you are looking for programmers not researchers.

  9. 1. I understand it's not *me* paying, but it is *me* begging for the money, and getting $500k/year is pretty hard as it is.

    2. I think there are many people who are smart and don't come to the US. I'd like to hire those :)

  10. Btw, with this scheme the "stipend" paid to the people in the other countries would NOT be $200. It would be closer to $1,500.

  11. I agree with the comment about programmers vs. researchers. If you just need someone to implement your ideas, you don't need a Ph.D. student to do it.

    How about this: hire programmers to work for your graduate students.

  12. Luis
    The full professors at IITs get $1000 per month (basic healthcare and housing is free).
    Also most Indian kids want to settle in US. And some like me, who want to go back to India don't mind staying in US for 4/5 years.
    Now with better modes of communication and travel I almost feel at home. It takes me less time ~16 hrs to go to my place in India, then taking a train from Bangalore to Delhi!!!

  13. How long do you think the US Funding agencies would let you get away with doing that?

  14. > How long do you think the US Funding agencies would let you get away with doing that?

    Yeah, they probably won't. Some companies may, though.

    I also think that because of this imbalance, the US will eventually lose competitiveness, so maybe the US government *should* let me get away with it.

  15. Provide each graduate student with a full- or even part-time programmer (from India or Guatemala or wherever) to do some of the dirty work, leaving them to read more papers and develop their ideas more conceptually. You'll probably get a superlinear ROI.

    Disclaimer: I'm a CMU grad student. =)

  16. Serious question: don't you pay postdocs much more than grad students? Is the salary difference made up by not having to cover tuition for postdocs?

  17. > Serious question: don't you pay postdocs much more than grad students? Is the salary difference made up by not having to cover tuition for postdocs?

    Yep. Grad students only see like 24k of the 80k. The rest goes to tuition and overhead.

  18. Wow! This is kind of an insensitive thing to say about your grad students. If you want programmers, you could go to work for some company like Google that focuses on developing programs. If you want to be a professor, it seems logical that part of the job is developing the theoretical foundation of the field by developing future researchers to carry on that work.

  19. To be clear. I am not advocating to stop training PhD students. I think there is a place for them, and I love mine! However, I also think that many of the things that PhD students do could very easily be done by smart programmers.

  20. I think you are assuming that the programmers in Guatemala/India/China are as good as students who get into the top 5 programs in the US. From my experience in the Stanford Ph.D. program and working in silicon valley, that assumption is not even close to reality.

    Also, as an earlier commentator notes, work that you get out of programmers don't scale linearly, read the mythical man month for examples.

    Also reality seems to corroborate my statements, if outsourcing programming jobs (and we're not even talking about research here) is so effective, why is it that outsourcing programming jobs to India (which started happening 10 years ago) hasn't even come close to taking over a significant margin of programming jobs in Silicon Valley?

  21. A programmer from a shitty university in India = A programmer from a shitty (below 30 ranked) university in USA.

    A programmer from a good university in India = A programmer from a good university in USA.

    Most students from good universities end up staying in USA. So don't compare the coding standard of top 5 schools in US to normal outsourcing standards.

  22. Because the $80k covers your recruiting and advertising costs, too. Think of it as your franchise fee for being a part of the McEducation world. ;-) You get a trusted brand, a way to recruit high-quality talent for lower-than-normal wages (because they get paid with a voucher for future earnings, in the form of a Ph.D.), and all of the administrative infrastructure for filtering out the first round of potential candidates, etc. The difficulty of trying to find a group of programmers who are, on average, as good as CMU's Ph.D. students, and willing to work for peanuts, is daunting.

  23. If you're a professor, isn't your job to educate students? How would that goal be reached by sending your money elsewhere? How would that help education in your university?

    It seems like you view your students as your employees. If you want employees, you should probably find another job than being in education.

  24. I got pretty worked up about the low efficiency
    of academia-as-a-place-for-achieving things. Then
    I noticed that it's not meant that way. It *is*
    meant as a place for training PhDs. Few people
    care what they do exactly as long as it looks good
    and the graduates are employable.

    NSF and other grants have training as their implied goal; furthermore, the 24k of tuition
    that are forked off for tuition from the grant
    money end up paying your salary.

    But maybe you're right. Maybe postgraduate education is just overrated and it would be
    better to give you a small post teaching CS 101
    to undergrads and ample time to do crazy stuff
    on the side using your own money.

  25. The effectiveness of PhD students as programmers (as opposed to researchers) varies widely. It is not what is being selected for on admission! But you can try and recruit the better programmers from the admit pool if you have big programming tasks.

    If you seriously know 5 "extremely competent" engineers, that speak english, who will work for that little money, I want their names!

  26. I don't treat my grad students as programmers. Hell, they treat *me* as their programmer.

  27. It sounds pretty interesting to a programmer like me, too. I get to work on cool cutting-edge stuff(compared to boring work most programmers have to do daily, at least), get mentored more or less by very smart people, learn a few interesting things about research or academia, hone my skills or even expand my capacity (assuming the projects are indeed challenging). Compared to all these, money is of secondary importance.

  28. You're good at making a provocative post, but I don't think you're going to do it. It would be too much hassle, and you know it.

    If you actually do it, then it's interesting.

    Dan F.

  29. I have been working in Silicon Valley for a few years, and have a degree from MIT before this. I have been admitted to the PhD program at a top 3 school and your article scares me.

    If you had smart PhD students, they'd work on the things they wanted to work. No? You're the enabler and a wall to bounce good ideas off.

  30. All of my students work on whatever they want. If one of my students is reading this, please chime in :)

  31. I used to like your work. Frankly, I find this post utterly disappointing. It is a telling confirmation that many professors view their students as resources, much less employees as you have here.

    You are not running a business. Students are not your employees.

    If you want to help students in other countries, which is indeed a noble goal, perhaps you can move there physically and help them?

    You too were a student not too long ago. To speak of them as employees now that you are a professor is crass and I'm a bit shocked that you think this way.

  32. Luis,
    Why don't you update your list of publications?

  33. The posture outlined in the blogpost is fundamentally flawed.

    First, why are you accepting PhD students if you don't think they are capable of research?

    Second, when you are more interested in completing a project rather than in teaching and in mentoring researchers, why are you at a University and not at Google?

    Third, if you are job is do "projects", why should the US taxpayer pay you to do projects and not some other research leader in Guatemala? Clearly even if you are better than anyone in Guatemala, at a more than 5-to-1 ratio, wouldn't that be an experiment worth trying?

    Fourth, why should Professors have tenure? Rather, shouldn't we just compete the positions out for the most cost-efficient lecturer or instructor each year? Perhaps one of the deserving grad students would qualify?

    Ultimately of course it all comes down to your value system. For example, does one think society needs Universities as centers that foster innovative thinking and considered analyses without the pressures of the economic rat race?

  34. > First, why are you accepting PhD students if you don't think they are capable of research?

    I never said that, and I didn't mean to come across like that. I think PhD students are PERFECTLY capable of doing research. At least mine are.

    > Third, if you are job is do "projects", why should the US taxpayer pay you to do projects and not some other research leader in Guatemala? Clearly even if you are better than anyone in Guatemala, at a more than 5-to-1 ratio, wouldn't that be an experiment worth trying?

    YES! I think it's worth trying.

  35. Hi! My name is Heber Chacon, a Graduate Student at CMU, and a Guatemalan as well (full disclosure). I think Luis is just asking a question that goes back to the differences in cost of living. He is not by any means proposing doing it.
    I do know for a fact that Guatemala has very very talented people that because of economical reasons don't have access to education in the US.
    My impression from knowing the US and Guatemalan systems is that Luis is thinking "why in the world we cannot make those people work, and by the way, they only ask for a fifth?".
    Let's not judge Luis too fast, and let's appreciate he is bringing to the table something that might become an issue in the future. That way we have enough time to work on the issue.

  36. I'm one of Luis PhD students and I agree with his post (I think I am not replaceable by 5 programmers :))

    I think in the end it boils down to: should a professor be economical or not? Should a professor waste grant money or not?

    Besides: the salary gap is already closing as wages in China and India are rising quickly.

  37. If you start outsourcing your team, I wouldn't want to be anywhere near you when s*** hits the fan. And it will, because people will lose respect for you for "giving away jobs that belong to Americans". That being said, it would be extremely advantageous economically for you to outsource, because as you said before, they would be more productive than a grad student who works at 50% capacity. However, the flak aimed at you would make hurt you in a political sense.

  38. If you need extra engineers to complete your research, hire them. Many/most researchers at CMU hire undergrads to help with programming work that needs to be done (I did this for the FRC in the past). Undergrads at CMU are exceedingly cheap (typically $12/hr) and usually solid programmers. Plus, I would guess that most of your grants allow this. The role of a grad student is very different than a programmer - your post confuses the two

  39. From comments I have heard most companies value the researchers that universities turn out more than they value the research itself. The training of good researchers is the more useful output for society in general. For a researcher who is employed by either a university or a corporation additional technical people at low cost can be valuable - no argument. But what makes funding academic research worth the money that is spent on it is that researchers are also trained. If not for that output I think most funding agencies would drop the amount of money they will be willing to spend on research.

  40. It seems like most of the commenters misunderstood the original post.

    Most if not all large research projects do in fact hire programmers or full-time engineers to complete the work in addition to PhD students (think lab techs in biology or chemistry). It would be quite difficult to accomplish these large projects otherwise. Undergrads are a great source of talent but they are often not able to contribute on a consistent or full-time basis because of the demands of coursework.

    PhD students are not directly comparable to full time staff, like programmers even though *many* advisors treat them as hired help (Luis excepted of course). But he is not saying PhD students are employees, or that PhD students should be replaced by programmers (guatemalan, indian, or some other nationality). The question here is the relative benefits of budgeting one way or another.

    In fact, it may actually be educationally beneficial to the PhD students on a research team if the PI added outsourced programmers. Then the PhD students can focus on the "research" while the dev is done by someone else. This kind of outsourcing arrangement may be against the policy of some funding agencies but not all of them. I think the big question is whether for research work the costs of managing this kind of enterprise (more time, recruiting from a far, checking up, etc.) would substantially outweigh the benefits (lower $ in the short term).

  41. The easy way would be you find a collaborator over there, and you do work with his/her PhD students.

  42. $1500 I doubt at least in China and India surely not. In india the stipend in more like 200$ per month!

  43. In my opinion, you are kind of reducing the problem too much. One of the reasons you can get $500K is that it'll go to these students helping US economy. I guess your counter-argument is that a significant part of that money can be put to good use facilitating US economy. I doubt that it's as linear.

    Once you start paying people outside the US, you are creating jobs there, losing tax money if you have to set up shop over there. I can't simply imagine whomever is paying that $500K get a better return of investment just by outsourcing it.

    And all this without considering a lot of overhead. For example, would the US government be OK with transferring US intellectual property over there? What about security implications if the research is on some sort of security or defense?

    This is all in addition to the much discussed cost of maintaining an overseas office, lower quality code, overhead in communication costs.

    But then a significant part of my counter argument becomes moot if, say Indian government convinces a company like Yahoo who has offices back there to pay their smart grads enough to stay in India instead of going to US.

    I have no idea how that would work; I know PhD grads in US earn a bunch so you could definitely go a lot lower than that but then a lot of Indian kids come to US to make money or just find it more exciting.

    Anyway, my 0.02$.

  44. Personally, I think the solution is to hire the five engineers and let the PhD student use them for development work. Development is done quicker and cheaper, and the PhD student has more free time to work on other projects.

    Disclaimer: I'm a PhD student :-)

  45. A Ph.D. student should not be given "help" of any kind. He/she is supposed to know the nuts and bolts of his work, including writing "int main()". The student is, afterall, not being asked to clean toilets!

    As for the context of this post, this is precisely the reason many schools are setting up satellite campuses in developing nations - cheap and smart labor. And yes, they confer Ph.D. degrees there.

  46. Some research tasks require more programming than others. Some require running lots of human subject tests, or robot tests, or in other disciplines doing lots of lab experiments. As much as grad students would like to have people to do some of the hard yards for them, in most cases they are not going to get them!

    Not all Professors, particularly younger ones, are successful enough to be able to hire local support for their students. Luis however actually *does* support some of his students' efforts with local programmers.

    But if you can't afford to hire someone locally full or part-time, out-sourcing something that requires a professional programmer's skills, or a sys admin etc, seems like a pretty good idea! It would just be hard to pay for given all the restrictions on using grant money overseas.

  47. It is done all the time, even with government grants. NSF grants let you hire "outside consultants" to get things done. More specifically, Science profs. use NSF grants to hire programmers all the time: a Bio prof might need to get some data into an SQL database, a Physics prof needs a program to apply his equation to the data from the super collider, an Econ prof. needs to generate pretty graphics, etc.

    It's really no different that a CS prof. might need to get a program written to analyze/gather/display some data.

  48. CMU ought to start a center in Bangalore, Chi has one in Paris...

  49. There is an official position for what you are talking about, called by many physical science departments a "Lab Technician" or "Research Scientist" or something else depending on the university and the person's education/seniority. But for this to work, it would need to be a permanent position that must be competitive with what that person could otherwise obtain as a programmer. For grad students and postdocs the extra incentive of a tenure-track job at the end makes up for the lower salary and the fact that the job security is the lowest possible: it is guaranteed to end after a few years! Not to mention that postdocs and grad students tend to be younger and more willing to move when the job ends.

    Someone who has no intention of applying for academic jobs would need a much bigger salary and job security to compensate. You identified "tuition" and "overhead" as extra payment to grad students that does not apply to regular employees, but "overhead" should apply as well, and postdocs have no tuition to pay for either. So I am not sure how cheaply you think you could hire a regular employee. If they are smart, they will demand a long-term contract so that they don't have to fret every 6 months about being fired because you get unlucky on a grant application. And if your grants run out, then the department would be obligated to pay, so you would have to sell them on the idea.

    Then again, working work a startup is fraught with similar perils. But unlike a startup you cannot offer the chance to be a millionaire.

  50. As Jim Davies mentioned, hiring programmers to work for your grad students is a worthwhile experiment. I'm a grad student at MIT and I've been hiring undergraduates and external consultants to help with different aspects of the implementation and maintenance of my research project. It has worked for me so far.

  51. Programmers for PhDs is an awesome idea. The best thing would be to hire smart and eager to work ones. They don't necessarily need too much experience. The PhD students will then guide them quite closely on what needs to be done and teach them when necessary.

    Everyone benefits:
    1. Luis saves money
    2. PhD students get a lot more done:
    2.a. they think about the research more
    2.b. they think clearly what needs to be done
    2.c. they teach programmers
    3. The programmers get awesome training and quite some $$.

    If feels a bit recursive though.

  52. This sounds interesting. It might specifically work for systems research. I haven't followed all the comments, but it looks like it's easier to add programmers to existing projects (with grad student brains behind them), rather than starting a complete new project with just programmers.

    Another big aspect is "managing people". It's easy a ton of people, if you have the money, but getting the right work done, is not that easy. (See

  53. This comment has been removed by the author.

  54. Correcting my comment above. It's easy "to add" a ton of ...

  55. Que tal Luis, te saludo desde Guate.

  56. Que tal Luis, te saludo desde Guate!

  57. Your posts are very educational and informative. I enjoy the way you write your articles.

    Keep it up!

  58. This is interesting!

    I agree with one of the commentators that it might specifically work for systems research and it seems like it is easier to add than starting from scratch.

  59. I just wanted to say that I am also a Guatemalan, and I am currently pursuing my undergraduate degree at St. Mary's University in San Antonio, TX.
    Last summer, I had the opportunity of doing an internship back home, and I just couldn't believe the amount of work 6 engineers could get done. I worked at an industrial automation company, where these guys automated certain production processes for different companies. It was amazing to see how much they did (and how little they got paid...)
    This year it all changed for me. I am now doing a research internship with IBM in California, so my pay is unbelievably good. Anyway, my experience here has taught me that I am no less than a PhD student just because I am still pursuing my Bachelor's degree. I might not have the course prerequisites, but I am workiing in a lab next to a PhD student from Stanford and I don't feel like I am less productive, or that he understands the project better than me...

    Anyway, I enjoyed the article and the comments very much! Keep it up.

  60. Good for you Alvaro. In other countries like yours pay lower rate than in the place you are now in. One of the reasons why many people are going abroad is to earn more money for good. That's really true so we have to accept that fact.