The EXP Internship Program

Summer is coming to a close, and this is a tough time for me because our summer interns are leaving us to go back to school. I feel personally invested in our internship program partly because I enjoy working with the interns so much. Their energy, enthusiasm, and desire to learn is energizing, and I’m amazed at the technical skill these students have already developed. I’m also very proud of this program because as a company we try to be intentional about how we run it, including giving students meaningful experience working on real projects. Although we’re always looking for ways to improve, I’d say we’ve been very successful so far. Last summer, we had three interns, all of whom returned this summer, two as full-time employees and the third for a second internship. This summer, we hosted a record five interns, which meant our summer workforce was approximately 12% interns. 

Our interns don’t work all summer.

Being an intern at EXP is very much like being a full-time employee with some special considerations for the short amount of time that they have with us. To start, we carefully pre-select projects where we think a junior engineer can come in, get up to speed, and reach closure by the end of the summer. The pool of project ideas comes from the teams; they’re generally self-contained, challenging, and important tasks we’d like to do ourselves but haven’t been able to yet. Each intern is paired with a project, based on their interests, and a mentor from the program they will be supporting. When the summer starts, the interns are integrated into the activities of their teams: sprint planning, code reviews, company all-hands meetings, and professional development and social activities. To ensure the internship is on the right track and able to course-correct if needed, we check-in regularly throughout the summer. 

Let’s get into the exciting part, the projects! In summary, the projects addressed different aspects of our work in deep learning: 

  • Chris experimented with different frameworks for parallelizing training and incorporating mixed precision in order to guide speed improvements in our neural network training. 
  • Cole, our returning intern this summer, coded up his own implementation of DARTS in TensorFlow and adapted it for object detection, since the original version was for classification. The architecture he discovered outperformed our existing model, and he made some cool visualizations of the alpha values as training progressed. 
  • Jesse, who worked with me this summer, applied the “anchor-free” object detection approach from Objects as Points to 3D object detection in point clouds. 
  • Josh implemented an algorithm to aid learning on small datasets by using transfer learning from a network trained on a larger dataset while providing a way to filter a dataset with noisy labels for signal classification. He then explored out-of-library detection using prototypical networks to detect signals not seen during training.  
  • Khalid applied CenterNet to object detection in images across a number of real and synthetic domains. He also presented on CycleGAN-based experiments to overcome the domain gap between training and inference datasets.

At the end of the summer, interns gain valuable experience presenting their work while the rest of the company gains the benefit of their thoughtful conclusions. Finally, exit interviews are used to gather feedback on how we can do better next year, and we send them back with our best wishes for the upcoming semester.

Although the summer just finished, it’s almost time to fill up our intern slots for next summer! If you or someone you know is interested in being an EXP intern, keep an eye out for our job listing on Handshake.