This article was co-authored with Nathan Smith
Every summer Mission Data hosts software development interns to work alongside our development team. In recent years our interns have hailed from schools like George Washington University, Johns Hopkins University, and George Mason University. When the COVID-19 Pandemic began, we had to shift our internship to be fully remote, and as we enter our third summer of fully remote internships, we have learned quite a bit about how best to structure this remote experience.
2020 was our first summer doing this, and we tried to make the internship as close to an in-person experience as possible. We collaborated closely on Slack, held Friday afternoon Happy Hours, and started a weekly Lunch and Learn program. Early on, the interns collaborated on OpSense projects. Towards the end of the internship, they got to experience client work, assisting our developers in optimizing a legacy site that was in dire need of a tune-up. As the internship came to a close our interns presented their own Lunch and Learn, summarizing the projects and technologies they’d worked with that summer.
While this first remote internship went well overall, and one of our interns even opted to join the company the following year, it still felt like a demo run with a number of areas to improve. The OpSense projects our interns worked on were somewhat isolated from the other client projects our teams were developing. Additionally, our traditional onboarding process focused on Ruby on Rails with a segment covering React, while the OpSense tech stack featured a Spring back-end. By the time the interns returned to our Rails-focused projects, a lot of the initial onboarding info had faded, and while they did get to work on optimizing queries across our projects, they didn’t have the opportunity to work directly with our clients on issues that leveraged the front-end knowledge they’d built while working on OpSense.
By the summer of 2021, we had more time to prepare for a fully remote internship. With feedback from the interns in 2020, we learned what worked best and what didn’t. We expanded our company wiki to include more training resources to give the interns a more solid foundation of knowledge when starting out. The interns got the opportunity to work together on internal labs projects, and then presented their findings in a Lunch and Learn, as well as a two-part blog post (linked below). The interns also got more hands-on experience with our client projects, fully assisting our developers in deploying code that is helping our clients to this day.
← Intern Articles resulting from our 2021 summer program: • Lab Notes: Creating a basic chatbot using Watson Assistant • Lab Notes: Slack integration and the inclusion of Watson Discovery
2021 felt like a clear step forward in structuring our internship and giving the interns a better sense of what day-to-day full-stack development is like, which had been a core piece of feedback we’d received for many years. One similar piece of critical feedback returned – while working on the research-based labs projects, the interns spent enough time away from Rails to forget some of what they’d learned, and they experienced some whiplash when returning to our client projects after a number of weeks away.
Moving into 2022, we’ve made a number of updates to our approach, aiming for the most productive and seamless remote internship yet. We consulted with other members of the team much earlier about research projects the interns could get involved with and planned out a rough schedule to ensure that their training throughout the summer continues to build on itself. We also reorganized our internal training resources into a company-wide Google Drive, containing past company talks and slideshows, as well as helpful links to training resources and tutorials. Finally, we began doing morning slack stand-ups, providing the interns with a structured time to discuss any issues they might face. While we’ve always done our best to be quick and responsive to intern questions throughout the summer, this scheduled time ensured that the interns and coordinators are all informed and able to work together with a call or screen share, strengthening the internship’s collaborative environment.
As summer 2022 began we compiled all of the feedback we’ve received from the past two years and developed a list of helpful tips to create a successful and fulfilling remote internship.
1. Make sure that the interns feel fully connected to the company.
We accomplished this by doing daily slack stand-ups, organizing Zoom Happy Hours, presenting Lunch and Learns, and introducing the interns to client work that our full-time development team was working on. In addition, we found that pairing the interns together on projects helped them succeed individually because there was always someone to reach out to.
2. Give a clear sense of what it’s like to work at your company full-time.
Reworking our internship program to be more aligned with our everyday client work has had a big impact on interns choosing to join the company the following year. While side projects and research tasks can be exciting, they’re just another summer project unless you clearly link that work to the rest of your company. While meeting people at the company can make interns feel like part of the team, there’s nothing better than getting to collaborate and learn directly with full-time employees on something that will be released to users. We’ve received a lot of feedback from previous interns that the practical experience from the internship fills a gap in development that most schools do not offer.
3. Ask the interns what their goals are for the summer and work to tailor the internship experience toward those goals.
We know that the interns are here to experience real-world software development, but everyone has their own personal goals. If an intern wants to experience the full development life cycle of a project, make sure they join client meetings and see how we move issues through GitLab. If they want to learn a certain language outside of our tech stack, the labs projects are the perfect opportunity for them to both learn a new technology and to share what they learned with the company.
4. Prepare an engaging training program, and plan your projects to build on one another.
With the way our company operates, it can sometimes be a mystery what projects our interns will be involved with during the summer. It’s important to plot out a rough course of how the summer will go, and tailor the beginning weeks of the internship to introduce the interns to core technologies they’ll continue to work with throughout the summer. Over the years, we’ve developed a training program that begins with learning Ruby and Javascript by building up a project using the Sinatra framework. After developing a foundation in how web applications work, we introduce the interns to Ruby on Rails and React and help them to build their own personal project that they can show off on their Github. This then flows directly into a tour of some of our legacy applications that use these same stacks. We like to focus on tasks that only involve narrow slices of the application, so the interns can apply their new development skills without getting overwhelmed by jumping into a new codebase.
5. Make sure there is a dedicated internship coordinator who can help them navigate the company.
It can be intimidating being an intern. Having a dedicated coordinator can help onboard the interns and serve as a helpful resource that can answer any questions they have. The internship coordinator can help them get set up in Slack, GitLab, and introduce them to who works on which projects and who could be a good resource for whatever they’re working on. Also, it’s always good to have a dedicated person to talk to in case any issues arise.
Final Thoughts
As we move through the summer, we’ll continue to work along with our interns to create the optimal remote internship experience. We know that there is a challenge when we can’t work together in person, but we hope to continually refine the process so our interns don’t feel like they lose out by not working in person.
About Mission Data
We’re designers, engineers, and strategists building innovative digital products that transform the way companies do business. Learn more: https://www.missiondata.com.