I am giving a talk at the event Lost in Translation: Early Career Researchers moving from academia to industry at St Andrews university on the 14th of October. I’m writing this post to get my thoughts together about how I made the transition and any advice I might have for others to help them decide what is right for them.
I’m going to tell my personal story but I’ll also try to give some reasoning that I hope will help other people too.
Who am I?
Since I left the University of Glasgow with a Computing Science degree I have worked in three different places: The University of St Andrews, HP Labs and Adobe.
My PhD in St Andrews was related to the work I completed for my final year dissertation of my undergraduate degree working on applications of the constraint satisfaction problem (CSP). I enjoyed doing academic research and enjoyed the University lifestyle, so I embarked on a PhD. I was lucky enough to work with a fantastic research group in St Andrews containing Ian Gent, Ian Miguel, Chris Jefferson, Pete Nightingale and Lars Kotthoff. The rest, as they say, is a fairly small footnote in the history of a niche field (unless they are American, and then they say “nitch”).
I don’t think I struggled with my PhD more than I should have. It has to be hard or it’s not worthwhile. However I don’t think it came naturally to me, I had to struggle and I felt like I could only ever become a mediocre researcher. I think that is because I experienced some rejections of work that I was emotionally invested in. I did get plenty of publications, but I took the rejections hard and was perhaps not emotionally suited to it. Having said that it was satisfying to eventually get improved versions accepted elsewhere. Up to that time I had not experienced failure like this in an academic sense, and that possibly also came as a shock.
Hence towards the end of my three and a half years I began to feel that while I was likely to pass my PhD and be able to get a follow on postdoc, I was not sure that it was right for me. Hence I looked for something a bit different to try while I made a decision about what to do next.
I found a simple transition into industry via a 6 month placement at HP Labs in Bristol. There was a project there that called for the application of CSP techniques to security problems. This was an Industrial Mathematics knowledge transfer project, hence it was funded partly by EPSRC and partly by HP Labs. The project is described here.
Hence I could dip my toe into industry without being too far out of my comfort zone and I would heartily recommend this to any PhD student. I did mine at the end of my PhD once I’d already completed my thesis. I’m not sure whether it would have been a good idea to do this in the middle of my PhD, it might have caused me to lose momentum.
It was intended to be applied research with the potential of being sold to customers in a few years. I worked with some brilliant people like Helen Balinsky, David Subiros Perez and Steve Simske. While somewhere like HP Labs does value basic research, it is never research for its own sake. They valued techniques provided they worked, but had no sentimentality. Their target was
- quality demo’s to enable to research to transition to a saleable product, and
Also to a lesser extent published papers. The project’s mixture of research and practical application appealed to me. It ws also a success because we had one paper published and three patents applications submitted.
HP Labs was a very interesting place to work as there were many different disciplines of research going on ranging from cloud computing to materials research for building computer storage and printers. I would say a lab like this is very much like a University department, except with no teaching and a little more commercial focus.
Overall it was an opportunity to experiment with my career, changing just one variable at a time, i.e. I got to take my existing research area but apply it in industry instead of academia. How did the experiment turn out? I liked my work and the people at HP Labs but the location in Bristol was not ideal. So I had discovered that I could really enjoy working outside a university, and that was an eye opener. I also got used to having more money than when I was a PhD student, which perhaps made it even less likely I’d go back to academia.
I asked around my St Andrews colleagues about potential employers, and Adobe was recommended to me by Al Dearle. I interviewed with Adobe in Edinburgh, liked the people and decided to see how that worked out.
The work I have done at Adobe has not followed on from anything I have done previously, so in a sense I wasted a bit of momentum. However the skills that I learned at St Andrews and HP Labs definitely gave me a head start against new graduates, both in day to day work and in the sense that I skipped the new graduate level of jobs. So I was perhaps only a year behind where I would have been had I never done a PhD, but with a different set of skills than my colleagues.
From the day I started at Adobe I have been extremely happy. From day one I have been shipping code to appreciative customers and working with great colleagues who have taught me how to work efficiently and achieve a high quality standard.
I was lucky enough to have an Adobe Illustrator file format plugin that I worked on from my second day at Adobe demonstrated at the Adobe MAX keynote talk, which is where Adobe makes its yearly product announcements. From there I ended up working the strategically important file sync component of the Creative Cloud. At the next Adobe MAX conference, file sync was demonstrated, along with Typekit Desktop sync which I was also centrally involved in. As well as these products I’ve worked on a few other things including a research project focussing on efficient file upload and download.
I have also been lucky enough to give talks at two internal conferences and ship countless versions of our software to literally millions of machines (/usually/ without incident). I have volunteered to go to the USA so many times that I’ve lost count and seen great places like San Francisco, Los Angeles and Seattle in the process.
This has made things varied, but the day to day process of specifying, writing and testing software has captured my passion. I’ll explain later in more detail what else I like so much about working in industry.
High level characteristics of industry and academia
I want to say what I think characterises each type of workplace, to put into context the differences in the types of work and the way that people work.
In industry everything is driven directly or indirectly by the need to make money sustainably. That may sound excessively cynical but I think it’s true.
The positive side effects of this focus include
- focus on customer experience (customers will only pay for something that is valuable to them),
- focus on finding methods that deliver good results irrespective of their novelty (customers don’t care how you do it as long as you do it well), and
- focus on teamwork (so that no one person is too crucial to the business).
However the negative aspect is that some aspects of good software development are considered to be guidelines rather than strict requirements. Unit testing, good software design, documentation and code hygiene may be sacrificed occasionally to achieve faster short term progress.
Engineers must justify the use of their time. Dogmas like 100% test coverage are not accepted automatically and must prove their worth.
But enough tributes to capitalism. What about the friendly, cuddly world of academia?
The aims of academia are more diverse.
Turning out well educated students is a primary aim. That is valuable for a variety of reasons only tangentially related to money. A well educated populace do fertilise successful industry. Early career researchers have a supporting role but my feeling is that education is mostly left to more established academics.
Academic research is the other aim. Academic research is really what early stage researchers are spending their time doing. In my opinion such research is not for making money but rather to
- take people’s undergraduate education to the next level;
- provide a vibrant background for teaching;
- to satisfy the innate need to discover and communicate;
- enhance international competitiveness; and
- to provide ideas and people to industry.
By stating my opinions on the value of academia I am seeking to lay bare why it has different characteristics than industry as a job.
You see relaxed and self indulgent styles of work in academia that are seldom seen in industry. That is because the aim is not necessarily to be as productive as possible in terms of end product, but to maximise much more nebulous aims such as novelty, engagement and elegance.
Vive la difference
This is why academia is not exactly like industry. There is a lot of creativity in industry but directed towards pleasing customers. There are a lot of efficient working practices in academia but directed towards novelty. However the flavour of work is very different and I think each individual needs to discover, like I have, where they fit and what they enjoy.
What I love about working in industry
I’ve explained that I like working in industry, I’m going to go into a bit more detail on why. I have spent more time in industry than academia, never having even done a postdoc. I hope that my impressions of academia are not too biased.
The main thing is that I like the engagement levels in industry. It’s unusual for somebody not to care deeply about whatever you are working on and to be intensely interested in the results. There are frequent milestones around features, bug fixes, releases and so on. Hence there are frequent small milestones to give satisfaction every day. I felt academic research worked to longer time horizons of papers, grants and so on. Milestones in academia are much more difficult so they come along less often. You just cannot be finding novelty every day.
The other side of engagement is that you are typically producing software that is important to customers (external or internal). Customers care whether it works as their own livelihood or free time depends on it. In academia often papers can develop very little interest, I’m sure everyone has had that experience of being ignored. Some papers have a great impact that changes the world, most do not. Papers may turn out to be relevant only a niche group.
The type of perfection required for software engineering in industry is different. Making code work on every conceivable platform, for every locale, for every possible input etc. is highly valued. My experience of academic software engineering is that the code is generally only used by its creator(s)1 hence it doesn’t have to be bug free or simple to use. There is a learning curve and unique discipline to writing code that is outwardly perfect. I say outwardly perfect because the perfect interface can hide a lot of bad code underneath it.
I must mention that industry has been more financially lucrative for me. I think it is for most people. In academia you can aim for a permanent academic job, which is the closest thing to a job for life that exists today. However many people fail to achieve that goal. There just aren’t enough academic jobs for everyone to get one. The computer industry has a high level of demand for qualified staff and I think that the chances of a hard working and qualified person ending up redundant is low compared to other industries. I think that over the course of a career equivalently talented computer scientists in industry will earn more in most cases.
The sorts of problems one is solving in industry are frequently conceptually simpler. There are people in industry doing advanced research, but novelty is generally not an aim. Novelty is valued if it can be patented or is something that customers will want, but is not valued for its own sake. Most business problems are not particularly new, and engineers are have to be able to solve these simple problems quickly and efficiently.
So I have said I think the average problem engineers are solving in industry is probably simpler than the average problem academics in Computer Science are working on. Does that mean that all the industrial problems are simple? Absolutely not. Just in Edinburgh we have companies writing computer games, compilers, medical imaging software, defense projects, AI and … file sync. The best engineers will still be hired to work on the hardest problems, and there are plenty of hard problems to solve. Just as HP has its Labs, Adobe has its own pure research labs with people who move backwards and forwards to academia, and there is everything in between.
Further my descriptions are frequently biased by the fact that I work as an engineer, there are other specialities in industry including IT, quality assurance, engineering management, product management, statistics, etc.
Overall, picking a job at the right level of novelty and challenge is a difficult task. You may have to take a pay cut to work on what you want. Being able to tolerate boring work is a skill that is financially rewarded, and every engineer must decide his or her own priorities.
What frightened me before I took the plunge
As I said earlier, towards the end of my PhD I was already feeling that academia was perhaps not entirely for me. I was basically only reluctant to leave academia because I felt a failure. I spoke to my supervisor, Ian Gent, and he said something to me (which I will attempt to quote) that flipped my thinking and let me leave with my head held high:
You can have a good academic career. Just because you can have an academic career doesn’t mean you have to do it. – Ian Gent
That might sound like nothing but it really helped me. Ian was kind and reassuring to me by saying that I could have a good academic career. It also reminded me that I can do what I like and I don’t need to pursue sunk costs by having an academic career just because I started on that path. I would say the same thing to anybody just now who isn’t sure they want to be in academia. You can leave and there is no shame. You can have a good career in industry that may make your happier than you are now, and that is the thing that matters. Both industry and academia will survive without you, but you should try to be happy.
Another thing that worried me for a while was the idea that I would be unable to return to academia if my new job didn’t work out for me. I cannot really confirm or deny that from personal experience. I suspect it’s true that the longer you spend out of academia the harder it would be to return. However I have been told by various people that suitably qualified people coming back from industry will be welcomed back.
Do I feel able to do research again? Honestly I do. I think my improved engineering skills and focus would make me a better researcher. I think I have gained general skills in communication and decision making. Moreover the work I’ve been doing on file and data sync has been intellectually challenging and I have not been overwhelmed by it. I have read research papers on file sync and been able to relate them to my practical work, e.g. some of Benjamin Pierce’s papers. When I did a little bit of work on building Venn diagrams using constraint programming I was able to read and understand the technical papers in the area. I don’t feel like my time away from University has made me stupid. So I think that if you keep sharp and hone your skills you should be able to go back, but I don’t know that would happen in practice.
What still bothers me about industry
Autonomy is one of the great attractions of academia. As you would expect learning amongst academic researchers is expected and encouraged. I have to say that in industry I have found that there is generally little time available during work hours to investigate new technologies and ideas. That is perhaps a function of where I work and the job I do. I think it’s perhaps my mistake and I should be consciously delivering less work and focussing on building my skills more during office hours. Nevertheless I do feel pressure to produce work for the project, and very little pressure to expand my skills. I think that experience may be typical in industry. That is a definite disadvantage, and it makes me feel sorry for people who have out of work responsibilities like looking after children, relatives and other commitments, meaning that they haven’t the free time that I have (at least for the moment!)
The other side of autonomy is freedom to follow your interests. This is something that has to be earned in industry, to a greater degree than in academia. I can affect the project’s aims and what I work on by having good ideas and of course the implementation decisions are down to us. However I typically can’t decide to work on a new idea for a week, there are other priorities that I must advance. Hence my priorities are often external and I don’t have a lot of say what they are. Again this is something that’s familiar in academia. Academics must march to the beat of somebody else’s drum too: e.g. grants must be written to be tailored to available funding; and students and postdocs must work on somebody else’s research agenda. What I’m saying is that it seems to me there are more constraints on your time in industry, compared to early stage research careers.
So to summarise what I like most about industry I’d say
- the fact colleagues and customers care so much about the work I do,
- the engagement levels in projects, and
- the salary.
What I liked about academia was
- the freedom to explore and learn, and
- the collegiate lifestyle.
I would simply say that if you already love what you do then keep doing it. It’s the people who are not so sure that I want to address. If you are not sure you’re happy in academia or realistically you are not going to be able to make a long term career of it, then consider making a jump to industry. As I have said there is a great demand for software engineering and research skills. There is no shame in making the move and if you enjoy it then it will have been worthwhile. Otherwise you go back with improved skills in new areas.
If you are happy in academia, consider making a different type of jump by diversifying your research. Try to be unsentimental about your previous research output and make a switch if there is an opportunity elsewhere. Even Donald Knuth has never found any subsequent application for his PhD research, and he seems to have recovered from that initial “setback”. Perhaps do some work with industry, as I did with HP Labs, as there is a plethora of interesting problems that people want solutions for.
I think what drove me is really the buzz of my software being used by millions of people, which is what I think I really set out to achieve with my computing skills, and that is easiest to achieve in industry.
We are lucky enough to be in an industry where there is a skills shortage. To me that is an opportunity for us to try jobs out with an expectation that we can find another job should it not suit us. Certainly in my case I tried out being an academic for 4 years, had a good time doing it but it wasn’t how I wanted to spend my whole life.