The Academic Mindset and Me

Tags life, research
Target Audience Computer science postgrads who are a little fed up.
Epistemic Status A rant.
Attention Conservation Notice I was coming out of a bad place when I wrote this.

As I come to­wards the end of my Ph.D, it’s hard not to look back on it and re­flect. Those who know me in person know that I al­most dropped out once and now, even though I didn’t go that far, I am still cer­tain that I don’t want a job in aca­demia.

There’s nothing wrong with aca­demia, it’s just not the place for me.

A Dif­fer­ence in Ar­che­type

My re­search has been in con­cur­rency test­ing. I think most de­velopers who have had to debug con­cur­rent pro­grams would agree that it’s a pain, and that they’d love tools which make it easier.

Well, wouldn’t you love to hear that there’s a con­cur­rency testing tool for Linux/p­thread pro­grams! It works by in­stru­ment­ing, and then re­peatedly ex­ecut­ing, the com­piled bin­ary, so the cog­nitive over­head of using it is low. This tool is called Maple, it’s de­scribed in an OOPSLA paper from 2012, and… it hasn’t really been up­dated since then. It re­ceived a few main­ten­ance com­mits up until early 2015, but that’s it. It doesn’t run on any­thing newer than Ubuntu 12.04.

Maple could be a fant­ast­ic­ally useful tool. It could easily have be­come a standard tool for Linux de­velopers in the five years since its re­lease. But in­stead it was used to get a paper written about how the ap­proach was feas­ible, and then dis­carded.

I’m not saying the au­thors are wrong for having done this, but it’s a good il­lus­tra­tion of an ar­che­type I have come to call the Re­searcher. Re­searchers may do prac­tic­ally fo­cused re­search, and they may well do so out of a genuine mo­tiv­a­tion to en­able better tooling or pro­cesses for working pro­gram­mers. But they are not in­ter­ested in main­taining this tool­ing, just in working out its the­ory.

Now let’s look at my re­search. I wrote the Déjà Fu lib­rary to test con­cur­rent Haskell pro­grams. While I did re­search in the pro­cess of im­ple­menting it, the re­search was primarily mo­tiv­ated by wanting to make Déjà Fu bet­ter. I’ve put a lot of ef­fort into making it user­-­friendly, and I do have a couple of users now! I do non-re­searchy things like work on doc­u­ment­a­tion and think about what makes a con­venient API. I fall into an ar­che­type I call the De­veloper.

Over­stating the matter to make the dif­fer­ence clear: the De­veloper is in­ter­ested in making things and in doing re­search to make those things bet­ter; whereas the Re­searcher is in­ter­ested in doing re­search about things and may, re­gret­tably, have to on oc­ca­sion im­ple­ment a thing to eval­uate their work.

Both ar­che­types can do “im­ple­ment­a­tion-driven” re­search, which is the pre­vious wording I used to try and de­scribe this dif­fer­ence in mo­tiv­a­tion. Un­der­stand­ably, the person I was trying to com­mu­nicate this to didn’t get it: they were a Re­searcher and from their per­spective their re­search is im­ple­ment­a­tion-driven. But not in the way which I meant it.

Most people in aca­demia, at least in a uni­ver­sity set­ting, are Re­searchers out of ne­ces­sity. I sus­pect De­velopers would be more common in in­dustry re­search labs, where the con­cerns and mo­tiv­a­tions are typ­ic­ally more prac­tical and more short-term.

Where else?

So I don’t want to be a re­searcher at a uni­versity, though I do enjoy doing re­search and like to think about hard prob­lems.

For now I’m looking for jobs in in­ter­esting areas like in­fosec and dis­trib­uted sys­tems. While not ex­actly re­search, there are a lot of hard prob­lems, and being able to keep up with what’s coming out of aca­demia will prob­ably be a useful skill.