1. 16

As a basis for discussion:

  • Does anyone know stories of people without degrees or PHD’s doing strong research work in their respective fields (submitting co-authoring papers etc)?
  • If so, what their journey was like?
  • What other companies / organizations have research teams beside Amazon, MSFT, Google?

Some experience of breaking into “researchy” roles & teams:

Note all these folks below that I’ve observed have habits of reading research papers, RFC’s (perhaps expected), they’re pretty phenomenal engineers & people

  • Friend at Microsoft Research works alongside researchers, they build tools that bring the researchers tools to life; they have to have a solid grasp of the tech side to a certain degree
  • Friend alongside a team full of CS/Physics PHDs; they spoke at a quantum conference recently
 & they do some research; bootcamp grad, dropout
  • Friend works on database internals / distributed systems, has worked alongside creators of core tech, has presented at conferences, written very strong technical content for his company’s engineering blog (FAANG+ company)

; bootcamp grad, no tech degree

From the outside, breaking into research doesn’t seem impossible, BUT it seems there are some factors that can increase your opportunity:

  • Does the current organization have research opportunities/teams?
  • Joining the right team/timing; maybe who you know?
  • Breaking in from the inside – years at the company, /social capital, reputation internally?

  1. 8

    I took a pretty long break from officially doing research after my PhD (and now I work on things that are in no way connected to my thesis), then I went back to university as a postdoc at Cambridge (on a one-year fixed-term contract, which six years later would have kept employing me indefinitely if I’d chosen to stay) and then moved down the road to a permanent research position at MSR.

    I went back to academia to work on the CHERI project because it looked as if it could solve some of the problems that I was working on in my spare time. The job that I applied for was advertised by Robert Watson, who I knew through the FreeBSD project and who was aware of some of the research that I’d been doing in my own time but hadn’t published anywhere other than blogs. I wasn’t actively looking to go back to full-time research and wouldn’t have applied if I hadn’t seen Robert post the job ad in the FreeBSD developers’ private IRC channel. A lot of self-deselection goes into research jobs: candidates that would probably stand a very good chance of being hired don’t apply because they don’t think they have a chance. That group hired a load of great people from non-traditional career backgrounds. Being involved in open source projects that research teams use helps from the outside.

    A few somewhat disjointed thoughts:

    Computer science is still one of the few fields where you can be a Victorian-style ‘gentleman scientist’: Even working on your own, without any resources beyond a cheap PC, you can make a significant contribution. Journals (at least, reputable ones) typically don’t charge you to publish (though they may charge for open access - this doesn’t matter as an individual because you can just post preprints on arxiv.org and people will find / read those instead of the official version). Most conferences charge for admission and require someone to attend and present any accepted paper but they’ll pay expenses for invited speakers. If you’re doing interesting work then you can get invited to talk at conferences and have someone else pay at least your travel and accommodation costs. This is much easier for the less-academic conferences, but often there you can meet the more academic-leaning crowd and find folks that are interested in collaborations.

    A lot of publication venues have a very strong in-group mentality that is enforced by having an expected style (paper structure, evaluation criteria). It’s hard to pick this up by just reading papers, it’s much easier if you can find a co-author who is experienced getting papers accepted at that conference / in that journal. Folks in academia are often assessed by the number of high-impact publications, so is there’s a low-effort path to their having an extra one then that’s a good incentive for them to help. In the UK, there’s a thing called the Research Excellence Framework (because the old name, Research Assessment Exercise, was too informative). Every few years, each department needs to present 2-4 ‘outputs’ per member of full-time research staff. There are some weird incentives here: if two people in the same department collaborate on a paper then the department can enter it only once, if two people in different departments collaborate then both of their host institutions can enter it. They also try to measure impact beyond simply publishing papers, so if you’re building a production system and jointly write a paper about it with an academic then they can point to the real system as evidence of impact and everyone wins.

    Academia is full of echo chambers. I’ve reviewed papers that are proposing new security technologies and cite a load of other papers for related work, yet ignore the fact that Windows or iOS ships something that’s a more robust solution to the problem that they’re addressing (or a weaker solution but one that actually works with real-world constraints). I doubt more than half of the people publishing papers at the top-tier systems research venues have any clue about how the iOS sandboxing framework or the Windows Secure Kernel work. Academia could benefit from more people with industrial experience (and vice versa). The good groups are aware of this and actively encourage industrial collaborations.

    Our last blog post had over 50,000 downloads in the first week. A paper with a few thousand downloads is typically doing very well (my most downloaded paper has over 450,000 downloads but a) that’s an outlier and is the 6th most downloaded paper from any ACM publication and b) I am a master of clickbait trolling titles). If you want people to know about the interesting research that you’re doing, blogs and Twitter are far better than conferences and journals. Being known by researchers in your field is really helpful in trying to get a research job.

    MSR has a distinction between Researcher and Research Software Development Engineer (RSDE) roles. There’s increasing recognition of RSDE / RSE in other contexts (there’s now an annual RSE conference in the UK, for example) and a lot of universities are trying to properly recognise the role because they need to do real engineering work to get high-impact publications and their salary scales aren’t even vaguely competitive for folks that don’t have a PhD. In practice, there’s a continuum between theoretical researcher, through applied researcher and RSDE to product engineer, with quite a lot of overlap between the most practical researchers and the most research-facing RSEs. Generally, researchers roles require a PhD, RSE ones don’t, but RSEs are still doing research. Some of our RSDEs do PhDs along side their job, this is much easier if they’re working on a project that’s a collaboration with a university and their PhD thesis is a write up of things that they did in their day job.

    Most of the things that require a PhD actually require ‘a PhD or equivalent’, having a few papers (ideally in top-tier venues) that you did without getting a PhD counts at least as much as a PhD. If you’re doing interesting research related to your current work or for fun, publishing it will help transition to a full-time research role.

    1. 6

      “Research,” at least to me, means publishing papers. It’s extremely hard to publish; even people who do it full time often take 1-2 years to publish a paper, and suffer a lot of rejection along the way. Also, it’s not clear why you would want to, unless it is part of your grad degree or tenure application. Most papers are read by a few dozen people and then quickly forgotten. The ones that have a high impact are the unusual exceptions.

      If you’re aware of this, the best way is to find someone who HAS to publish (like a grad student or professor), and volunteer to work with them. A lot of these people have great ideas but not so great programming skills. Perhaps you could do the implementation work or performance testing for something they’re working on.

      Otherwise, the people I know who have published outside academia have made something really extraordinary that was incredibly successful, and then told their story. For example there is a great paper from the founders of LetsEncrypt about what they did and how it became so successful. This seems like a harder path, and you probably can only do it once!

      Finally I think there is a lot of need for people who read papers, and translate the ideas into practical implementations that people can really use. Making a free library for doing the latest new thing from research will probably get you further than trying to make that thing 1% better.

      1. 1

        This is a situation I’m in. Helping a close friend on the side automate some things for DNA research. I’d have to be on the paper.

        1. 1

          Btw any idea how common it is for PhD candidates to talk with VCs? My friend is up for it. Want to make the connections. Friend already made a lab breakthrough in the past and the lab director or whatever looks like they positioned the whole thing to syphon it off. Sort of understanding the politics can be tricky with committees. I’m interested in developing a command line tool and library, but see a need for a service. I’ve only worked with PhDs, not candidates, on VC stuff in past

          1. 3

            I wouldn’t expect to finish your PhD while starting a company. On the other hand it is likely a very good tradeoff, since unless you want to be a professor the PhD degree itself has little value.

            1. 1

              I see. Doesn’t sound like there is some unbreakable unwritten rule. Friend has no interest in continuing in academia and is already toying with the idea of dropping out. University and lab politics. So close to finishing PhD though.

            2. 2

              As far as VC, you could try asking on HN, in theory that’s one of the focus topics there - though actually getting any answers there depends a lot on luck. But it shouldn’t hurt much to at least have a try.

              1. 2

                That makes sense. Also VC stuff probably not appropriate for lobsters (I’ll try not do it again). Yet if my little question was violently wrong, somebody perusing would have said something by now in very pointed terms. Just don’t want to sound stupid when I initially introduce the idea to a couple VC folks. And HN tends to attract users that spread fud and like to psychological box people in.

                1. 1

                  Didn’t intend to criticize, sorry if it sounded like so :) just sincerely had this thought as above; maybe obvious, maybe not, so decided to write in case it could help you :) the old adages still apply, that luck has no chance to happen if you don’t try ;) and FWIW, personally I think your question was decent enough :) ah, also this reminded me that lobste.rs have a list of sister-sites, maybe some of those could also be of interest to you in this case.

          2. 5

            I mean, honestly? Just pick a topic you are interested in and deep deep deep dive into it! Start a blog about what you’re learning in hopes of finding other people in the community to collaborate with, get feedback from, etc. Understand the problems with current solutions, and then look for ways to improve on them. This is a long haul. If you wanna do this as a job, in industry, pick a topic that has immediate practical potential. Databases are a great example because, well, people need to store and retrieve data in optimal ways. Distributed systems and other networking topics want to increase reliability, reduce latency, etc.. Operating systems want better security, more performance, etc.. There’s plenty of things we don’t know how to do, or can do better, but you need to understand what we already know, what’s been done before (and why it didn’t/ couldn’t work) and who to ask.

            Someone probably has better advice than this, and note that I am not a researcher.

            1. 2

              Do you mean research at a company?

              I would suggest working for the company as a regular SWE and then make a lateral move.

              Do you mean at a university?

              I would suggest becoming an assistant at a lab that does research you like and making a lateral move.

              1. 2

                In my experience, and as you seem to have picked up on: the best way to get into research is to collaborate with a team at your organization that’s already doing it!

                The mechanics will, of course, depend a lot on your organization. For example, I used to work at a US national lab where the whole organization was pretty research-friendly. Despite working on a production computing team, we had regular contact with a lot of research teams, and it was often easy to get involved in their efforts. This extended pretty easily to folks with no degrees, but who could still contribute to a project.

                I’ve also worked at large Silicon Valley tech companies. In those settings, I’ve seen less casual contact between regular developers and research teams, and therefore fewer obvious opportunities to get involved. Now, in my experience, industry research teams are often pretty happy to let others help out, assuming there’s a clear way for them to do so! But the lack of regular contact makes it a bit harder to get a foot in the door.

                However, that organizational association matters. Getting published in academia depends a lot on establishing credibility. I know several folks who, without degrees, have co-authored papers with established research groups that have a good track record. I don’t personally know anyone without a PhD who has published outside such a group.

                1. 1

                  Adding more to this thread: below is the redacted conversation that inspired this question. My friend & I both work{ed} at FAANG companies, don’t have undergraduate degrees, we took the bootcamp path a few years ago

                  Conversation: 👤Friend:

                  I’m thinking about doing Columbia University’s General Studies undergrad program, which is tailored for working professional’s who come from non-traditional backgrounds (Ex: starting college later in life, have lots of life experience, looking to get back into academics).


                  I attempted doing UC Berkeley undergrad part-time, while working full time and I’ll share my experience. For context I got a full time programming job at Salesforce right after graduation from a coding bootcamp in 2016 in the summer right before the fall I was admitted as an incoming 3rd year undergraduate transfer (my major was Sociology..nothing to do with CS). Berkeley doesn’t an official program for part-time undergrad students, that I’m aware of, but they do for master’s + level degrees.

                  My personal experience trying to get undergrad degree + work full time:

                  • I gave UC Berkeley part-time an attempt 1 semester by taking only 2 classes: CS61A & an elective. It wasn’t hard, but it was just MASSIVELY time consuming what they required.
                  • Trying to make a curriculum designed for undergrad students , who 99% of them are full-time students, who typically live on/close to campus work, is a lot different than a working professional who is in the field already and has working full-time job; there are things like: in personal labs 2x a week on different days than the actual class, group projects etc… Things I didn’t like about my personal experience:
                    • I felt like I was grinding for grades? Why? Well if you’re investing in an undergrad experience, you want to do decently well to perhaps leave the opportunity for grad school open.
                    • doing these strange problem sets & diagrams to prove I knew how to reverse a linked list or to understand the time complexity of a binary tree felt like a big time sink; definitely valuable for my peers who were not already in the field or had exposure to these concepts

                  I’m not saying traditional education isn’t good, but I think for a bootcamp graduate from a caliber coding bootcamp like “Hack Reactor”, “Codesmith”, “Fullstack Academy of Code” etc… its not too useful to go back to a traditional undergraduate setting when there are now respectable good alternatives educational institutions like Bradfield nowadays.

                  • For those who don’t know there are coding bootcamps that take you from 0-80, start from nothing, to other program’s that take you from 20-100. In the latter bootcamps, you need to come in with a baseline level, there is pre-courswork, the curriculums cover applied data structures/algos, practical recursion, system design, group projects etc. Me & my friend went to one of the latter bootcamps

                  There are few people championing the non-traditional path in research (as mentioned in the original question post) that I know of, but I wish I knew more folks:

                  Jason Benn - a classmate of mine at Bradfield (bootcamp grad too) went from Devbootcamp (2013) to Machine Learning engineer and researcher. Fun fact: he’s the programmer that Cal Newports mentions in his book “Deep Work”.

                  Richard Artoul (HRX & Bradfield alum) — I’m not sure if Richard is writing research papers, but this doing pretty deep stuff in Database engine internals. This is some of his work below:

                  Kyle Kingsbury – does distributed systems research (creator of jepsen - A framework for distributed systems verification, with fault injection) I think he holds an undergrad degree in physics, and no postgrad degree (doesn’t have LinkedIn)

                  Personal Opinion(s):

                  • If you’re in the situation of being a software engineer in the field already without a “formal education” and you want to dive deeper into the topics that the top computer science departments in the world have done an excellent job at identifying over the past few decades, consider Bradfield (not endorsed by them, I like their mission + took 6 classes here)

                    • I took 6 classes at Bradfield covering all the major topics of computer science you would typically cover at places like UC Berkeley, Stanford you’re last 2 years of undergrad. I enjoyed Bradfield a lot due to my peers, who were all working professional software engineers (ranging from SWE - Sr.Staff levels, Managers etc) who were curious/passionate about learning; i observed that their “skin in the game” factor maybe was higher than undergraduate students – you don’t accidentally sign up to take on additional studies accidentally on top of having a full-time job or family) the teachers and environment were great as well.
                  • forking 10-50k on an undergrad degree, even if it is a brand name, not only sounds expensive financially but also from a time investment perspective, especially if you have a job & want to continue doing well, and/or have other obligations like a family.

                  • If you want a fancy master’s degree, I know Oxford has an undergrad program that doesn’t require an undergrad degree; you just need a strong amount of work experience, demonstrated work work & recommendations. A friend of a friend I know worked at SOME_FAANG_COMPANY , did this It costs like 50k though and its a huge time investment outside of work, and again, I’m not a fan of the curriculum, since its very general IMO. If you’re chasing prestige, I think its not a good use of your time to go back to undergrad