Tuesday, August 30, 2016

I have consulted four times. Really!

Those who know me know that I work on stuff that is not readily applied. Or perhaps not applied at all. Certainly my current state of knowledge does seem like it would be useful to  a company. Many theorists, at one time in their lives, were excellent programmers. (For example, Lance helped write a program that played Othello see here and an email system see here.) I have no such stories. I took ugrad compiler design and ugrad Operating Systems as a grad student (not at the same time!).
I was taking Operating systems and TAing Aut theory. Dave (I forget his last name) was taking Aut theory and TAing Operating systems. We both got B's which you can regard as either very good or very bad planning.

Anyway, I never was a programmer. Could I have been a good programmer? Irrelevant! Would real world experience have helped my research? Very hard to know, but prob yes.

Four times I have worked for a real world company of some sort (never for more than a two months) and I always wondered Gee, I don't know anything they would care about. But in all four cases they seem to like what I did for them.  Why?

For two of the four I signed an NDA (Non Disclosure Agreement) so I will need to talk in general terms.

1) I was hired to find out which of two ways to schedule jobs was better. I did some easy math, did some easy simulations, found out that it didn't matter much. I think they knew that, but having someone with a PhD tell them comforted them.

2) I was hired to find out why the Operating System was so slow. I had already had the course in OS but it didn't help at all. I did some easy math that identified some of the problems, but told them that they had a more overwhelming problem and what it was. I think they sort-of knew this, but I clarified it for them. AFTER the course I took a course in queuing theory since the job peaked my interest. If I had the course before the job it would  not have helped.

3) I was hired to do some statistical work. I wrote a report detailing the methods that I used, and then I used them. Everything I did was elementary statistics. The techniques were standard. But they really appreciated having it all laid out for them. Originality was not needed, just using known stuff.

4) A company working on SAT Solvers- I helped clear up some misconceptions they had.

I suspect that 3/4 of the people reading this blog could do 3/4 of the consulting I've done. What I learned from these experiences is

(1) just knowing math in a general sense may be all they need,

(2) you can pick up what you need,

(3) sometimes they just need someone with a degree to tell them what they already know.

In all four cases I was intrigued by having to solve a REAL problem as opposed to a CLEAN math problem.


  1. What did you charge?

    As a more general question, what is the range of consulting fees that CS professors charge? It is relatively easy to learn the range of faculty salaries, but I have never seen any data (even anecdotal) on consulting.

    1. The notion that asking about salaries is impolite is a
      device by THE MAN to keep the working class down. So I
      happily tell you, though the general answer for me is
      NOT MUCH.

      SAT Solving- a 4 person company that is not well funded
      so they just paid expenses and took me to a resturant
      that served `the best fried chicken in the country'
      Or maybe it was `the best fried chicken in the county'

      Statistics Consulting- that was off of an academic
      grant. About $3000 for a weeks work.

      OS and Queing theory were summer jobs that I got
      as a grad student. That was back in the 1980's so
      I really don't recall, but it wasn't much.

      So clearly I didn't do it for the money.
      Consutling for Lawyers can be a real boon. A collegue
      of mine (at a diff school) who testified at a trial
      involving copyright and crypto stuff didn't know
      how much to ask for so he said
      ``I'll take 100 an hour''
      and the lawyers said
      ``No. If we don't pay you at least 200 an hour
      they won't take you seriously''

      So my impression is that consulting for some
      venues can be VERY profitable. That I haven't
      managed this may be my lack of practical skills
      OR just timing and luck (and that I haven't
      really sought it out anyway).

  2. I think the value you added isn't the "easy math" as such, but the ability to take a real world problem, and translate it to the easy math.

  3. Previous anonymous: consulting rates vary significantly, depending on the type of work, the experience and level of the person being hired, and the situation of the people who are paying. It's much harder to make a blanket statement regarding rates. It's usually best to ask regarding a specific situation, and recognize that in many cases it's a negotiation.

  4. I agree with the previous comment; in general, what you get paid for consulting depends on the field, the type of work (e.g., research vs. applied), who is paying, the person being hired, and -- of course -- what you ask for. You can also be paid by the hour or by the job, so there is no easy answer to the question.

    However, to give you an idea of the range, I can say that as a full professor working in theory I have been paid between $100/hour (for research-y work) and $400/hour (for serving as an expert witness in a patent case).

  5. In the industry and also in other fields of computer science what people like is simple solutions, not complicated ones. What seems to be easy and obvious for you is probably not for them. You have spend a long time working in math and have intuition that makes things look easy for you, it is not that way for most programmers.

    Why do they hire us? The answer is very often not the advanced topics we know but the general skills we have: strong math background, mathematical modeling and problem solving skills, the ability to explain difficult topics clearly, ...

    There is a reason why big tech companies like Google and Facebook and Microsoft and Amazon and ... hire PhD. It typically has nothing to do with their area of expertise but their basic skills in algorithms and mathematics and problem solving. And the greatest complain you hear from the industry is that CS PhDes often lack even basic coding skills, they cannot write python or C++ or Java code for something as simple as a simple dynamic program (which is a shame really).