August 24, 2018
A summer full of interns
OUR JOURNEY TOWARDS CRAFTING AN IDEAL INTERNSHIP EXPERIENCE AT SKYLARK DRONES
I remember how he had walked in, a talented engineer who loved talking to machines more than he liked talking to people. But after 2 months of getting to know each other, finding common interests and working together to solve problems that would eventually go on to make help drones benefit the world, he stood there completely at ease recollecting his time with the 20 odd friends he had made here.
“I really enjoyed the freedom that I was given,” he continued, “I was allowed to explore all that I wanted, and propose my own solutions, and then implement them. Overall it was a great experience.”
I would have breathed a sigh of relief, but I had already breathed enough of those. It might as well have been officially stated. The programme had been a success.
The Intern(al) Problem
The internship programme at Skylark Drones had never really been given full justice. We have always had great applicants, and continue to do so, but we had never given much thought to what we wanted the programme to be about.
We had used internships as a litmus test for candidates. Many of our employees first went through an internship before joining the company full time, and while that truly helped us define our culture through the people we hired, it didn’t really quite work the other way around, because there were a few problem areas where our internship program was falling short on:
- Giving a fluid but goal oriented structure to the internship.
- The experience varied from intern to intern, and month to month depending on the vagaries of product and project cycles.
- The internship itself said nothing about the company or what is stood for.
Essentially, we felt that an internship should be less like a short term stint that was useful only for resume-padding and more like an experience about what the company stood for.
As a result of this lapse in planning, we had several excellent interns, whom we could not really give the greatest experience to, nor extract the maximum value from, resulting in what essentially amounted to wasted resources. They often worked on projects that had no real lasting impact, while a lot of deeper seated problems remained untouched.
This was again, mostly because we had to structure the way we documented all the problems we faced. There are many small self contained problems that have a deep impact, but we never really could find the resources for.
deep impact, but we never really could find the resources for. We knew these would be perfect tasks for an intern, and often discussed who would be the ideal candidate for such a project, but we never ended up translating that into a meaningful internship simply because we were not writing them down. Thus when interns actually joined, we didn’t have a well of problems to select from, and ended up giving them problems off the top of our heads, which was, quite frankly, wasteful.
Now that we had the problem defined, it was quite obvious what we had to do. We had to engineer the heck out of it.
Creating Tasks, Assigning Them & Finding Balance
We started off with the trivially easy problems. We don’t have all the tasks documented? Okay. Let’s start documenting them. We don’t know what tasks the intern should work on when they first join? Okay. Plan it.
So we started by creating a Google sheet about four months before the first intern was stated to join, and we filled it with all the tasks that we could think of, and shared that around. Every time someone thought of a task that would be ideal for an intern (or as often was the case, not really ideal), they would just add it to the sheet. Along with the task itself, we also noted down the required expertise, approximate time frame, as well as how well the problem was understood, and how much of it had been solved.
Then, with just a few days to go and an inbox full of emails from excited interns, we had a large meeting where we then discussed all the tasks that had been added. Some were rejected immediately, while others warranted some discussion. Eventually, we ended up assigning priorities to each of the tasks. There were two main criteria for this.
- One criteria was how well we understood the problem:
This was important to us because only well understood problems could have solutions that would last for a long time. As our understanding matures, our solution matures with it, and we didn’t want our interns writing code that would have to be rewritten immediately after they left.
- The second criteria for us was how impactful the solution would be:
This was important as it would both help us, as well as give the interns a greater ownership of their product as they would be able to see where it would be implemented.
As a result, we were far more organised. As interns joined, they were very quickly given their first task. As a rule of thumb, we tried to ensure that the first task of every intern was isolated and interesting. We didn’t want their first experience to involve deep diving into some large codebase and then spend a couple of weeks just figuring out where they had to write their code. Instead, they were given an interesting problem statement, and a very clear goal. This helped a lot, as they were able to constrain their research and development to just that field, and then as they got more comfortable, they were able to venture out and contribute more.
Once their first task was complete, generally, the tasks got a little looser. They often might have had to dive deep into someone else’s code, or do some less exciting code monkey work. In order to offset this, they were free to propose tasks that they were interested in. Over the period of their first task, they had been exposed to plenty of new technologies, ideas and data, and often they had some interesting ideas and problems that they could work on.
As long as their interest was even tangentially relevant, they were free to pursue it, while it was their responsibility to ensure that the original task wasn’t ignored. This was definitely a hit with a lot of the interns, who essentially, got to live out their own versions of a dream job.
Overall, I would like to assume that we did good work on this problem.
Normalising Experiences and Sharing Knowledge
With the the pipeline of problems and tasks now taken care of, we approach the intermediate problems. Interns were having very insular experiences. Their entire internship revolved around their tasks and their team. They had no access to the wider company as a whole, and often had no idea as to what other development was going on in the company.
As a fairly small, growing company, we have several threads of development going on at all times. People are writing software for drones, code for flight planning, data processing algorithms, automated data pipelines, web portals and a whole lot more. While one internship can never cover all of these fields, we still wanted interns to be aware of the other ongoing development.
To this end we had a Weekly Programmer Jam Sesh. These meetings consisted of all the programmers meeting up once a week, and discussing what they did in that given week. The format was simple. People would take turns, and briefly explain what they did in the week. They would then mention one thing that they learnt, or one problem that they faced. Even with sixteen of us, the entire session ended up lasting for less than 45 minutes.
As a result interns got multiple opportunities to peer into the world of their peers, and really get a good grasp on what was up at the company. These sessions also were a boon to the interns who had been stuck on problems for a long time, as they had an opportunity to either rubber-duck their way into finding a solution, or get a helpful lead on how to go about doing the same. These sessions also led to people getting exposed to new technologies as other people in the company learnt how to use them. Interns were excited about all these things they were learning about, and many of them went out of their way to lead technical sessions where they taught the other programmers about what they had learnt. We got talks about Docker, Django Rest Framework, a bunch of machine learning frameworks, git and many more.
This also gave interns from different teams an opportunity to get to know each other, and the myriad of social benefits that come along with it. They explored the city, went on trips, and got into all sorts of mischief.
Overall, I would have to conclude that this problem was sufficiently well addressed.
Delivering The Skylark Drones Experience
Ahh, yes. The most interesting problem of them all. With a small number of interns, it is fairly easy for them to intermingle and diffuse into our team and automatically imbibe our culture and our values, but once the number gets bigger, it is no longer the case. Interns often group up among themselves, and just general social dynamics lead to a split, and they may not get to experience what we think of as the Skylark experience.
Before we can go about imparting our culture onto them, we have to ourselves know what it is all about. So the culture of a company is something that can be a little ineffable. While it is easy to write down exactly what our values are supposed to be, in practice they may not be followed. Skylark is a fairly small company. There’s around 25 of us. So all of us have direct lines of communication with our founders. Personally, my idea of what the company stands for come directly from these conversations. These are the values that we want to share with our interns, and when they look back (or hopefully forward) on their time at Skylark, this is what they should think of.
For the sake of this blog post, I can try boiling it all down to a sentence.
A passion to learn, a drive to improve, and a belief that we can make a difference.
So these values will have to fundamentally affect every interaction that we have with each other. That’s what the culture of a company is really all about. It is hard to put in place formal instruments to make sure that these reach across to our interns, but we still try.
One thing we have always done, which acts to showcase of these values is our Knowledge Sessions. We have had sessions with Balaji Vishwanathan, Dr. Mylswami Annadurai of the ISRO Satellite Centre, Ujaval Gandhi of Google and more interact with everyone and discuss topics ranging from core interests to broader topics about nation building and the future of technology.
As a part of this, several interns also gave talks of their own, on topics ranging from photography to how a computer sees images. We also had Mughilan, our CEO, lead a question and answer session that went on for a few hours, where interns learned why we started Skylark Drones, and what we are looking to do. I think that played a large role in imparting values that have evolved over time and the principles that the company was built on.
Another must for all of our interns was our field tests. We ensured that every intern got to visit the field, and watch a test flight, and in some cases, even pilot the drone itself. The interns got a real kick out of this, and I am sure it was a highlight for many of them.
So on this front, I think only time will tell how well we solved this problem, but I have a feeling that it went pretty well.
Now as summer draws to a close, and the last of our interns are on the verge of going back to their colleges, I have the opportunity to look back and reevaluate. I would like to think that we created something meaningful, and gave our interns an excellent experience, both as a stand-alone internship, as well as a peek into what working with us is really like.
From the companies side, the programme was an overwhelming success. Interested individuals, and an encouraging environment does wonders for productivity. We absolutely blew through the list of tasks that we had defined, and got a significant chunk of work done.
On the part of the interns however, I am not really the one to give any sort of conclusion (biased as I am). What I do know however, is that a considerable number of the interns expressed an interest in joining us full time. By that metric, I guess I can safely assume that the internship programme that we crafted was a success.