This past summer I took a break from my PhD to do a data science internship at Allstate. I will talk a bit about that experience at the end of this post, but the primary topic I want to discuss here is whether an internship is right for you and, if so, how to actually get an internship. Last year when I was thinking about doing an internship, all the advice I read online seemed to be aimed at undergraduate and masters students, presumably because fewer PhD students do internships. But this advice wasn’t all useful as, for a few reasons, PhD students are in a unique situation.
First, doing an internship means leaving your program for a short amount of time because you are probably expected to continue working over the summer (perhaps this is even a time when you are expected to get more work done). You probably have some ties to wherever you are living, such that moving across the country for the summer is impossible or at least comes with additional challenges like subleasing your apartment. There is also a general assumption that, as a PhD student, you are committed to academia and there is pressure (internally and externally) to avoid seeking out industry opportunities. This means that there may be fewer support systems available at your institution and you may feel uncomfortable discussing your search with colleagues. This can make searching for internships a kind of lonely experience. You might be using an internship as a way to feel out industry as a potential career path, but may worry about potential fallout from advisers and collaborators that closes doors if you decide to continue on in academia. Finally, if you are like me, you might not have any industry experience if your past summers were all spent working in labs. Here I hope to add my advice for any PhD students in the same boat I was in.
Should I do an internship and, if so, when?
After my first year or so, I was strongly considering the possibility of becoming a data scientist. This was primarily due to a combination of wanting more personal freedom in terms of where I choose to live and the realization that I enjoy the technical aspect of my work and would have to give that up as a professor in favor of more writing, which is one of my least enjoyed aspects of my work. At the end of my second year, I became interested in doing an internship in order to gain some industry experience. Here’s a few questions to ask yourself when considering if you should do an internship:
How interested am I in going into industry?
In my opinion, if you are not leaning towards industry you should think carefully about doing an internship. There are some costs to doing an internship for PhD students that don’t exist for others and, if data science is just a plan B for you, it’s probably better to commit yourself towards your academic work. That said, doing an internship is not wasted time even if you do continue with academia. I personally learned a lot of new skills that I’ve taken back with me and having a few months off from the work that I had though about continuously for 3 years was surprisingly refreshing.
How much will my research suffer due to taking 3 months off?
One of the costs of doing an internship is that you will probably make no progress on your research for the entire time that you are gone. I had plans of writing or going into lab on the weekends, but once I was removed from my daily routine I found it much harder to actually work on my research. Instead I found myself spending extra energy on additional work related to my internship and just for fun side projects. If you are worried that doing an internship is going to significantly delay your degree, it’s probably not going to be worth it. You can always do a bridge program for PhD students entering industry after graduating if you are having trouble finding a job.
How useful will an internship be on my resume?
This is an unknown for me as I haven’t started my job search yet. I personally decided that having a bit of industry experience on my resume would give me a meaningful advantage over other students lacking that experience. This was mostly due to reading online and seeing a common (though not necessarily majority) opinion that there are many PhDs that don’t end up succeeding in data science roles due to a lack of real world experience. I definitely feel as if my experience will give me a head start in my first data science role, though it’s not clear to me how important it will be to hiring managers.
How supportive are my adviser/collaborators/etc.?
I think it’s reasonable to worry about backlash from revealing you are interested in leaving academia. For me, I was worried enough that I didn’t mention it until after I had agreed to start at Allstate. Your adviser will probably be more supportive than you expect, but we have all heard horror stories of students having their careers ended by vindictive advisers. If you are worried, it might be worth reaching out to previous students who went into industry or department staff members who might have a read on how your adviser will react.
When to do an internship?
I did my internship the summer after my 3rd year. Any earlier would probably be hard to pull off as the summers are extremely valuable to early PhD students who may be juggling courses, TAing and preparing for quals on top of research during the year. One exception to this rule is if you are considering dropping out with a masters (if so, you will probably want to leave sooner rather than later and the information gained from doing an internship could be important in your decision making). Doing an internship towards the middle of your program is nice as your time is probably the most flexible compared to the beginning or end of your program. You also will probably get more value out of the skills you gain in your internship. However, in retrospect, I think the summer before you finish is probably the best time to do an internship. This is because a lot of companies use internships as a way of hiring young talent so if you are not looking to join the workforce soon you may be at a disadvantage when applying. You will probably also have a stronger resume the later you are in your PhD as well as a better idea of what sort of industry you want to work in, so your experience will potentially be more useful.
Required technical skills
I only completed one set of interviews, so I don’t have a ton of firsthand experience. However, my understanding is that in order to get an internship you will probably need to have at least one “data analysis” language (i.e. python or R) under your belt, a basic knowledge of SQL, and some basic statistics and machine learning experience. Overall, I felt that my interviews were pretty straightforward, but if you are lacking in any of these areas it is probably worth devoting some time to practicing using online resources (e.g. https://github.com/colinquirk/useful-resources).
How to find an internship
So, if you’ve decided to do an internship and you have the necessary skills, how do you actually find one? First, you’ll need to do some work to present yourself including creating a resume (if all you have is a cv), polishing up your linkedin account, and showing off some technical skills somewhere (e.g. by creating a blog or putting some code up on github).
I mostly used online job boards such as google jobs and linkedin, but overall it felt like most of my applications went into an abyss never to be seen or heard from again. I think the best way to find an internship is to try to find meetups in your city or at your university to try to make personal connections. Luckily, there’s a lot of these groups in Chicago such as ChiHackNight and ChiPy. But, even if you don’t have meetups where you are you can try to get connected through global slack groups like the Data Visualization Society and even twitter. Time spent making connections is probably much more useful than time spent filling out online applications. Still, I did end up finding my internship online, so those applications can work out!
Bigger companies are more likely to have well established internship programs that show up on online job boards, but they are also going to be more competitive due to a higher number of applications. Local job boards might have have positions listed where it’s easier to get your foot in the door. Chicago has BuiltInChicago as an example.
The general structure of interviews is, as far as I can tell, a chat with a recruiter followed by a technical phone screen and, ultimately, an onsite interview. This structure will vary by position, so make sure you get the details from your main point of contact. I felt I did pretty badly on my phone screen, but luckily I moved on to the onsite. I think my preparation was misguided, as I spent time focused on sites like leetcode preparing as if I was trying to get a software developer job.
What I should have spent time on was understanding business problems, practicing case studies, and learning business vocabulary. This is how I prepared for my onsite interview, which went much better. Unfortunately, this is much harder as fewer online resources are dedicated to this sort of question. Spend some time searching for examples online and work through how you would approach them, what possible follow up questions could exist, etc. The goal is to increase your understanding of business problems, learn the vocabulary that business people use, and practice communicating your ideas, rather than being able to answer that exact situation in an interview.
My Experience at Allstate
As promised, I want to reflect a little bit about my experience at Allstate and what I felt went well. I was lucky enough to land on a great team and was assigned a tractable problem that fit well with my skill set. I think this is mostly luck of the draw, but there are a few things that are within your control to make sure your experience is a good one.
- Figure out who has the answers to your questions
Don’t ask your direct manager all of your questions. Instead, figure out the strengths of all your team members so that you know who to go to with whatever you get stuck on.
- Don’t be afraid to contribute outside of your defined project
I think this is the sort of thing that will vary greatly depending on your experience, but I was lucky enough to be on a team that viewed me as a temporary team member rather than as a helpless intern. This gave me the confidence to contribute beyond the exact specifications of my project, which resulted in genuine contributions to my team. As an example, my personal coding style differed from what was used by my team, so I set up linting to make sure I conformed. I shared this with my team to make conforming to the style guide easier for everyone.
- Figure out how to provide value with your work
In research, we care mostly about understanding complicated systems. In industry, understanding is only a piece of the puzzle; you must also be able to do something with the information. Being able to find ways to convert your understanding into actionable insights and value evaluations will go a long way towards showing that you “get it.”
Thanks for reading, I hope you found some of this information useful. Overall, I really enjoyed my internship and I hope that this post helps you have a good experience as well if you choose to pursue one. If you have any questions, feel free to reach out on twitter!