An internship is a fixed period of work experience offered by an organization, typically lasting from a few weeks to a year. Internships are typically undertaken by undergraduates and graduates who want to gain relevant skills and industry insights for their careers. Machine learning internships, in particular, can be elusive. You might assume that internships are only for postgraduate to doctorate level, making finding and getting an internship an intimidating task for undergraduates and those without formal education in computer science. If you are looking for an internship in machine learning and do not know where to look and what will make you successful, this post is written for you. This article condenses all the information you need to land your first internship that may grow into your dream job.
Table of contents
- Where To Find Machine Learning Internships
- 1. Build Machine Learning Side-Projects
- 2. Target Start-Ups and Small Companies with Dedicated Machine Learning Research Teams
- 3. Strengthen Your Software Engineering Skills
- 4. Find a Topic In Machine Learning That Interests You and Read Around It
- 5. Research the Company of Interest
- 6. Offer To Work Part-Time
- Concluding Remarks
- Start building machine learning projects.
- Target start-ups with a dedicated machine learning research team.
- Start building your software engineering skills.
- Find a topic in machine learning that interests you and read around it.
- Research the company of interest.
- Offer to work part-time.
- Enthusiasm and being able to discuss concepts is probably the most important quality to get hired as an intern.
As a research scientist, I have worked alongside many interns with varying education and machine learning experience levels. I have seen that there is no guarantee that a more qualified candidate will have a more successful internship and vice versa. There are some common qualities that I have seen all successful candidates have that not only landed them full-time, year-long paid internships but ensured they produced rewarding quality work. The following tips are focused on finding and getting an internship.
Where To Find Machine Learning Internships
Knowing where to find machine learning related internships is half the battle. You can find a shortlist of the best and most relevant website to find roles and upload your resume to become visible to the world.
- AngelList – AngelList provides access to a wealth of start-ups and fast-growing technology companies. Start-ups are more likely to have intern programs and are usually fast-growing. Invest time in building a strong profile and project portfolio to increase your chances and possibly get headhunted!
- Dice – Dice is one of the best recruitment websites for tech-focused applicants. They offer a wide range of search criteria allowing you to browse jobs by title, skill, and category.
- LinkedIn Job Search – LinkedIn is the social network for job-seeking and career-building professionals and provides access to arguably the widest range of jobs and internships on the internet. LinkedIn allows you to build an online profile, which in turn will allow you to build an online network. Connect to like-minded individuals on the same career path from all levels of experience whenever you can. You can put keywords in your bio like “Machine Learning Enthusiast” and “Seeking Internship” to appear in recruiters and company searches.
- Meetup – Your offline presence is significant for increasing your visibility and building your professional network. You can look for machine learning and data science events near you, which is especially effective if you live in a large city; otherwise, you may have to travel a bit to get to the right meetups. By going to meetups, you will be able to engage in discussions and meet with other professionals and possibly managers looking for talent. Aim to go as frequently as the events are available to become a familiar face and meet as many people as possible.
- BrightNetwork – BrightNetwork is a UK-based company that connects the next generation of talent with the opportunities, insights, and advice needed to succeed in their desired careers. They partner with over 250 leading employers and connect their network members to all sectors through events and online networking. You can search for both internships and jobs through their search engine. They also provide a free e-learning platform to help prepare you for work and applications.
- Indeed – Indeed is a powerful search engine for UK-based applicants. You can upload your CV and search through machine learning internships.
- SimplyHired – SimplyHired is similar to Indeed, providing millions of opportunities via an easy-to-use search engine.
- Glassdoor – Glassdoor offers a search for millions of jobs and internships plus salary information, company reviews, and interview questions from people on the inside, making it easy to find the best internship for you.
To make the most out of this list, be proactive. Instead of uploading your resume and crossing your fingers someone will find it and pick you, use the services with networking attached such as LinkedIn and Meetup. Being active in network building as well as simply searching will boost your presence and visibility and connect you to more people who can help you.
1. Build Machine Learning Side-Projects
Machine learning internships are practical by nature; you will need workable knowledge of at least one programming language, ideally Python. You want to be able to use a programming language to demonstrate familiarity with machine learning concepts. It can be tempting when sending out your resume to play “Technology Bingo” and throw every programming language and big data technology you have googled on the page, but this is not effective. If you want to demonstrate your experience with software and machine learning, the best way is to start building a portfolio of side-projects. These projects do not need to be the next AlphaGo; in fact, the more compact and self-contained the project is, the more likely you will complete it and demonstrate it. The important aspect at the start is to find a problem that genuinely interests you, that you can tell a story around, and that can be solved with machine learning techniques. Some examples of machine learning projects for beginners include:
- Film Recommendation Algorithm
- Sentiment Analysis of Tweets
- Human Action Recognition using Smartphone video data
- Stock Prices Prediction using Time Series Data
- Predicting Wine Quality
I would recommend using Github to start developing as it is the most well-known, meaning if something goes wrong using it, someone has likely experienced the same problem, plus a Github project is more recognizable on your resume and expected. Use Kaggle to build projects with diverse datasets and look at how other data scientists and machine learning researchers have built solutions. Kaggle also has an active community that will ensure you stay up-to-date on the latest trends and skills. Kaggle has a strong competitive element so you can build your skills, get recognition on leaderboards, and be financially rewarded.
There are plenty of paid side project opportunities that you can use to build your resume. You can sign up to Upwork and Toptal as a freelancer and work on problems provided by companies or individuals with a machine learning related problem. This path to building a resume is tougher than using Kaggle and Github, but it is definitely achievable and more translatable to what working in an internship is like.
2. Target Start-Ups and Small Companies with Dedicated Machine Learning Research Teams
While big companies like Google and Amazon offer machine learning internships, given their popularity, the competition can be very steep, and the interview process can last months. To be time-efficient and maximize your chance of landing an internship, seek out early-stage start-ups and smaller, mature companies. Start-up companies have high growth rates and generally have a fast uptake of new employees. Start-ups are more likely to have short-term (order of 1 year) projects, which are ideal for interns, given their product or service will still be maturing. Start-ups are also more inclined to take interns to minimize costs. Remember to use AngelList to specifically target start-ups.
Each company you reach out to should have a dedicated research team or at least one member who works on machine learning research and development. These people are likely to come as data scientists, research scientists, applied scientists, and machine learning engineers. If a company has resources dedicated to research and development, it will have projects that they want to explore beyond the immediate scope of the product and therefore have space to be developed in a long-term research context. In some instances, the research and development team may focus on augmenting or introducing new user-facing features in their products, in which case an interns project could directly impact the product. The trade-off for this exposure is there will be a higher pressure and work-rate compared to research-centric projects. It is important to research the company to understand what type of project you would be given if you are hired. Your experience in machine learning and software engineering will also help determine what type of project you get.
3. Strengthen Your Software Engineering Skills
If you are searching for your first machine learning internship and you are undergraduate level or below, you need to have working knowledge of probability and statistics, programming, and data wrangling. However, building your software engineering skills will make you even more valuable and help you stand out from the crowd. Software companies value employees who can quickly grasp their infrastructure and have practical knowledge around creating scalable tools, cloud deployment, database access, and API development. In my experience, I have observed that the most successful interns were able to integrate well with the existing software ecosystem and build easy-to-use, well-documented applications within a 12-month timeframe. Start learning the most common tools that make up the typical software engineering ecosystem; including:
- Docker – Docker is a Platform-as-a-service product that provides OS-level virtualization to deliver software in packages called containers. Containers are isolated, hold unique configuration, and can communicate with each other.
- MySQL – MySQL is an open-source relational database management system. MySQL uses the Structured Query Language (SQL) for relational (table) data access and manipulation.
- IntelliJ – IntelliJ is a special programming environment or integrated development environment (IDE) largely meant for Java. It provides a wide range of assistance features (refactoring, code navigation) and has advanced error checking, allowing faster and easier debugging and application building.
- Jira – Jira is a proprietary issue tracking product that allows bug tracking, issue tracking, and agile project management.
- AWS – Amazon Web Services (AWS) is a large and comprehensive cloud platform offering 175 services from global data centers. EC2, for example, allows users to rent virtual computers on which their own computer applications. Virtual computers are particularly important for machine learning applications as GPU and memory availability can be scaled.
- Quarkus – Quarkus is a full-stack, Kubernetes-native Java framework made for Java virtual machines enabling containerized Java applications to be deployed in serverless, cloud, and Kubernetes environments.
- Kubernetes – Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management.
You do not need to be an expert in any of these tools to get an internship or be successful in your internship. Software expertise comes with a medium to long time horizon, i.e., years of practice. Instead, view these tools as things to become familiar with that will make you a more desirable candidate and allow you to tackle a wider range of problems, and give you access to more interesting internships. For more information on the overlap between software engineering and machine learning research, see our blog post titled “Key Differences Between Data Scientist, Research Scientist, and Machine Learning Engineer Roles.”
4. Find a Topic In Machine Learning That Interests You and Read Around It
You want to convey your passion for machine learning research to the companies you are interested in. Whether that is when you are first reaching out to the company or during an interview, while you are likely passionate about machine learning, going the extra mile by actively reading around research topics will boost your confidence in discussing concepts and make your passion more apparent. You should be able to name a couple of recent developments at the cutting edge of your favorite area of machine learning. Start with finding one research area that attracts you the most, e.g., computer vision or reinforcement learning. You will need to invest some time reading some papers to get an idea of what appeals to you. The best place to search for the latest machine learning papers is Papers With Code, which also provides code repositories if available to reproduce results further or investigate techniques.
If you know the area or areas of machine learning that your company of interest is working in, you can read papers addressing the techniques they use. Furthermore, if the company has a research team that actively publishes papers, it would be beneficial to read them. Bearing in mind, you will not be expected to know all the details of every research area, but having a general idea and discussing it is extremely valuable. It will help separate you from other applicants. Make staying up-to-date on machine learning research a priority and a habit; you can do that by following blogs that cover the latest developments. At the Research Scientist Pod, we do paper readings on exciting new research to help you stay up-to-date; for example, we covered the hotly discussed OpenAI’s GPT-3 model from earlier in 2020.
If you have started building your portfolio of side-projects and have a base of research topics you are interested in, you may want to start building an online presence through a website. A website does not have to include a lot of information, it can simply be your CV and your portfolio. To further build your confidence, start contributing your ideas online by creating your own blog and documenting your journey learning about machine learning whether through university or online courses.
5. Research the Company of Interest
Researching employers is one of the best ways to stand out during the hiring process and make your preparation for interviews much smoother. There are several things to research and learn about a company. Follow the company’s social channels, particularly their LinkedIn page, which will give you an insight into the company culture, their recent news and developments within the company, such as a new product launch or a pivot. You should pay attention to what is written on the company website regarding its values and mission statements to confidently say that you are a good fit for the company’s culture during the interview. Stay up-to-date on the company’s blog, which will go into more detail about their clients and services and give you an insight into the type of work you would be doing. Case studies and white papers, in particular, will allow you to hone in on the company direction.
You should know what the company looks for in an intern; they may be looking for research-intensive candidates with a good theoretical background or a candidate that can apply science with scalable applications. Go the extra mile, reach out to current employees in the relevant team (research/science) who work there via LinkedIn or email, and ask them what the company values the most. By going into an interview with the context, you will have a greater understanding of where you fit within the company and answer interview questions with confidence.
Glassdoor is a great resource for finding the inside scoop about the company. You can typically find information, including the interview process, salary figures, employee duties, and company reviews. You can use Glassdoor to find who is highly likely to be interviewing you, and then you can research them on LinkedIn. Chances are if they are in machine learning research, they will have authored a publication, and they may bring up a related topic to their area of research during the interview, so read around their work where possible.
6. Offer To Work Part-Time
Internships from the employer perspective can be viewed to recruit new full-time employees whilst providing industry experience for early-career candidates. If a company does not have an active internship program – programs tend to be more common for mature companies – you can reach out directly and offer to work part-time. This will allow you to cast a wider net when applying and increase your likelihood of landing an internship. If you are a student, it is possible you already have a part-time job. In this case, you can aim to have your internship coincide with the summer break so you can invest more time in the internship. If you have just graduated and are about to start a master’s degree, an internship is a perfect bridge. If a company offers a part-time internship, you will also have the available time to do it and another job to earn more should you need to. If you are still at university and working within a computer science department, you can ask academics if they have available research projects you can undertake over the summer. Otherwise, start a conversation with academics expressing your interest in working as an intern outside of academia. Academics within your department are likely to have connections to companies offering under-the-radar internships for the right candidate.
Getting an internship at any point in your career can be a daunting experience. Fortunately, there are many resources available to give you the best preparation necessary to get one. Whilst working with senior scientists who hire interns (both undergraduate and postgraduate), I have noted that enthusiasm is the most important quality for taking on an intern. This enthusiasm is most effectively displayed through side-project portfolios, an online presence, and an ability to discuss machine learning concepts. That should tell you that being successful really is in your hands and is not necessarily dependent on your degree level. Going above and beyond to be curious about research and new ideas whilst putting them into practice is likely the key differentiator for many employers. By reading through this article, you now have six straightforward ways to separate yourself from the crowd of applicants. With the spike in remote working and online education, the availability of internships will likely continue to increase in the coming years; take advantage and gain the valuable experience you need to build the career you want.
Thank you for reading to the end of the article. If you are completely new to machine learning and data science, go to the Online Courses section to get started on the basics. If you are looking for more theoretical deep-dives, you can go through the paper reading series available on the Blog page. Please click on the following links ff you are interested in the history of machine learning and reinforcement learning. I have written a list of the best books for machine learning, which can be found here. See you in the next post.