We’re shining a spotlight on the Linkerd project for its participation in Google Summer of Code and the Linux Foundation’s CommunityBridge. For several years now, Linkerd has sponsored intern projects that can impact the community at large, and last year, the project had a great success story with GSoC intern Tarun Pothulapati, who ended up getting a job with Buoyant, the company behind Linkerd.
We chatted with Tarun and project co-creator Oliver Gould about the great benefits of internships, for both Linkerd and the students.
Why did Linkerd decide to participate in GSoC and CommunityBridge?
Oliver: Way back in 2007, I had the opportunity to participate in Summer of Code as a student. It was transformative to get paid to work on open source software. It opened up career opportunities and helped give me the confidence to start an OSS-centric company (Buoyant). I love that we are able to give students that opportunity today.
How would you describe Linkerd’s philosophy around internships? What do they have to offer both the intern and Linkerd?
Oliver: When we sponsor an intern project, the goal is for their work to end up shipping. If we’re all going to spend time on this together, it should produce concrete results that benefit the community. This means that you have to work with the team to make incremental, reviewable changes. This is a big shift for many interns whose experience is more oriented around delivering complete assignments. This helps our project grow a broader, more diverse ecosystem of contributors.
What is it like to be an intern with Linkerd?
Oliver: The process usually starts by writing a project plan that outlines the goals of the project, and ideally, multiple deliverables. Again, we want to maximize the chance of code being merged to the main branch, so we try to collaborate extensively via Pull Requests. We also try to feature intern contributions and experiences at our monthly community meetings.
Tarun: The best part of the internship was definitely the people, hands down. I feel really fortunate that I had the opportunity to be mentored, and ask questions to people whose technology experience was sometimes >= my age. :p As they worked/built similar tools previously, it also gave me a historical context on why certain things are built in a specific manner. Most of the Linkerd maintainers also made sure I had a very comfortable contribution process. One other thing that stood out was that they considered me more than a student intern and made me feel confident enough to not only contribute code but also answer user questions, write blog posts, etc.
Attending KubeCon + CloudNativeCon 2019 is another highlight of my internship, as I was able to meet all the people that I was talking to online in-person. Talking to the Linkerd users and the wider CNCF community also made me understand the kind of impact that the technologies I was working on had. Also, it felt really great to meet and talk to people whose work I’ve been fascinated about, during college. (P.S. It was really great meeting Eric Brewer in person. 😉 )
Can you give any specific examples of valuable contributions Linkerd has gotten from interns?
Oliver: I’m really thrilled with how this summer’s internships are going. Ali Ariff has modified the project’s entire build and release system across multiple repos so that we can support ARM hardware. Matei David has dug deep into our discovery system to add support for new Kubernetes features like EndpointSlices and ServiceTopologies. And Mayank Shah has started porting our integration tests to Sonobuoy so that they can be used as a conformance suite. All of these projects make direct improvements for the community at large.
During his internship, what made Tarun stand out to you as someone you wanted to keep working on the project full-time?
Oliver: Tarun’s got one of the best attitudes of anyone I’ve worked with. He’s super eager to ask questions, share ideas, and give constructive feedback. It was awesome watching him grow into a full-time contributor, and I’m thrilled that we were able to continue funding his growth at Buoyant.
Tarun, what made you decide to take a job working on Linkerd full-time?
Tarun: It’s definitely the people again. From all previous interactions with Buoyant folks during my Linkerd internship, they have been very friendly and always encouraged and pushed me to do more. It’s been the same even after I joined the company. Most of the folks are really passionate about the project and enjoy working on it, answering questions, helping users, etc. It feels great to have co-workers who are excited about the work they are doing. It also makes you motivated. 🙂
Also the Project. People really love Linkerd, because of its focus on simplicity and user experience. Whenever I talk to users, It’s really rare to not get a mention about the simplicity of the project and how easy it has been for them to not only get started but also maintain. What’s more awesome than getting an opportunity to work on a project that people love and care about? 🙂
How has this year’s internship program been different in the time of Covid-19?
Oliver: We’ve done these all as full-remote internships. This is the really wonderful thing about building an open source community: We get to work with folks all over the world, bringing a diverse set of experiences to the table.
So, we’ve been pretty business-as-usual. I mean, as much as anyone can be this year, at least. In a way, we all have this experience to bond over, comparing how our lives have been affected across the globe.
What advice would you give to prospective interns?
Oliver: I think the biggest hurdle is learning how the project communicates. Each project has its own style, and so it’s important to get familiar with how people communicate in issues, pull requests, etc. The more you can do to make it easier for maintainers to say “yes,” the easier your application and internship will be.
Tarun: It’s really important to continue contributing even after GSoC if you are interested. Contributions are not just code. For students early in their career, it’s important to volunteer and take up various other non-code aspects involved in running a project, like testing out a use case, writing blog posts, etc. This will help in building a variety of skill sets that would help your career down the road. It’s also really important to showcase the work that you’ve done. Even if you feel like an imposter, try fighting it. Never feel shy to apply at conferences, or write blog posts and documentation.
One other thing that made my whole internship process more fun was bonding together with GSoC Interns/Alumni from CNCF. In most cases, they are going through a similar path as you, and it helps tremendously in learning what they are doing better and what you can take away. Also, it should be a great group to have fun! 😀