Skip to content
GitHub Copilot is now available for free. Learn more
Karthik Iyer

The art of learning a little about a lot

Karthik goes with the flow, follows his passions, and gives back to the community.

Karthik Iyer // @KarthikRIyer

Hey there! I’m Karthik. I graduated from IIT Roorkee in June of 2021, and am a software engineer at JPMorgan Chase. I love anything related to software used in films, and like to read about computer graphics. I’ve been a Google Summer of Code candidate twice (TensorFlow and OpenTimelineIO with the Academy Software Foundation), love watching movies and TV, working on 3D art on Blender, and reading.

Ahmedabad, Gujarat, India

@karthik_r_iyer

https://karthikriyer.github.io/

Organizations

The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.

My sophomore year in high school, a senior I admired made small animations with Blender, and I started making my own 3D stills. There were small things like soda cans, simple VFX shots, and glasses of beer, but they were realistic and I loved it. I don’t consider myself an artist, but my mom has that artistic sense, and the enjoyment trickled down to me. What I hadn’t realized was that even people like me, who were using a project like Blender creatively as an end user and didn’t have professional experience—could get involved and make a real contribution. 

That same year, there was a Java course in our curriculum, and some friends and I decided to get a head start by taking a class outside school. Once the logic clicked and I knew how to think in a programming language, I fell in love with it. I continued my programming journey when I got to university—and then I got into open source and the world just opened up.

Author Karthik sitting on an urban staircase working on his computer

Learning a lot about a little (or a little about a lot)

I knew before joining college that I wanted to do something with computers. In India, we have an entrance exam for universities. You get a rank, and according to the rank, people compete for spots. I got chemical engineering at a really good university, and since I was interested in physical sciences, and good at physics and chemistry, I figured it would be a great combination. 

Freshman year, I was part of a mobile development group (MDG IITR) that created Android and iOS applications for the university community. The seniors told me about Google Summer of Code (GSoC), so I looked at all the organizations taking part. The one that really caught my eye was Blender, which I had been using for two to three years at that point.

I knew I wanted to explore something in the creative space with images and visualization, and found Appleseed, an open source rendering engine that creates realistic images. I looked into their code and how people were interacting in the community, and found it really approachable. The existing members took time to support those new to the field and nurture their talent. By looking at the code and documentation, I figured out how to contribute. I also read books, a few tutorials and blogs, and did some Googling to understand the prerequisites. 

I made a few contributions to Appleseed, but by the time the GSoC deadline came in 2019, I had transitioned to TensorFlow. Deep learning is a completely different domain for me, and I haven’t explored it a ton. But a good friend, Samagra Sharma, told me there was no data visualization framework or library that could run on all the platforms—Linux, Windows, macOS, watchOS, tvOS—and they wanted support for as many as possible. Google was rewriting TensorFlow from scratch in Swift, and I saw a great opportunity to help fill a gap in the Swift machine learning ecosystem. 

Swift was a completely new language for me, but I was able to learn it and make a framework at the same time, which was a fun and new experience. The community members were really supportive and I collaborated and communicated with my Google mentor, Brad Larson, and made a proof of concept to show the team. Luckily, they were impressed, and chose me as the GSoC candidate for 2019. 

That project, SwiftPlot, got me a lot of visibility in the community. Within a short amount of time, people recognized that the project solved a need, and that a first-timer was trying to maintain it. At the end, I got to present all my work to Chris Lattner, who created Swift. I had so many emotions: It was a huge rush but also nerve-wracking. After my presentation, Chris shared how it might look to ship my framework as a default part of a machine learning package—and that’s when I knew I made a meaningful contribution.

I think it’s helpful to have short-term and long-term goals, but to also go with the flow so you don’t miss unexpected opportunities. My main goal in 2019 was to pursue Appleseed and ray tracing, but I got involved with TensorFlow and followed that path instead. I did not have a lot of experience or knowledge with TensorFlow, but since I kept myself open, I had a new opportunity and learned a lot.

Even though I went to school for chemical engineering, I was more drawn to software engineering over time. I like to know a lot about a lot of things. Or maybe it’s more accurate to say "a little about a lot of things." It never hurts to know more. 

Author Karthik walking with his laptop in front of an old building

A passion for film translates to open source

I’ve been a movie buff for as long as I can remember, and inherited my love of technology from my father. He doesn’t have a technical background, but he did some programming in his day. Even when I was a kid, he used to discuss new gadgets and how things worked, which ignited my curiosity. 

Following my work on TensorFlow, I became aware of the Academy Software Foundation (ASWF). The Academy of Motion Pictures Arts and Sciences, which awards the Oscars, and The Linux Foundation came together and formed ASWF to support open source software in the film industry. It was an exciting discovery and I immediately looked for ways to get involved and contribute.

In 2020, the organization list for GSoC was released and ASWF was on it. That was my opportunity, and I was lucky enough to get selected for OpenTimelineIO. This project is both an interchange format and library for editorial cut information. A single video production may require dozens of software tools, run by several different studios, to handle storyboarding, animation, sound mastering, and more. Historically, it’s been challenging to get all this data to work seamlessly in the final video because the outputs may not have been compatible. This is what OpenTimelineIO aims to solve.

OpenTimelineIO was owned by Pixar before it was open sourced, and it now sits under the ASFW umbrella. Their CI/CD pipeline was built on Travis CI, and we wanted all the projects under ASWF to be in a unified environment. I had used GitHub Actions before, and figured I could use my knowledge to help OpenTimelineIO, and learn something new along the way.

I wrote the Java bindings and C bindings from scratch. The mentors who helped me with that project were Pixar and Netflix engineers, and Netflix was really interested in the Java bindings project—so my code is probably in some show by now. I also just heard that some of the code I wrote was merged into Pixar’s pipeline for Luca. That’s all really exciting.

Another thing that helped me get involved with OpenTimelineIO was a filmmaking club, CineSec IITR, that I joined freshman year of college. I edited short films and teasers, and did motion graphics, and animation. So I had a fair idea about video editing, and knew a little about visual effects, which gave me domain knowledge and made getting involved a bit easier. 

Author Karthik standing in front of an outdoor food market

Learning with and from others 

Self-learning is good: You fall down and you get up and you move forward. But if you have people to guide you throughout the process, even better. If it wasn’t for my mentors, I wouldn’t be where I am today. You can read books and watch tutorials, but mentors with real life experience have priceless stories to tell. And mentors don't need to be formally assigned, they can be a colleague, classmate, or friend. 

I’d like to give a big shout out to all the mentors I’ve had in open source, many who still help me to this day. Specifically Brad Larson and Mark Rasi from TensorFlow; Nick Porcino, Eric Reinecke, Stephan Steinbach, Joshua Minor from OpenTimelineIO; Anton Margoline from Netflix and David Baraff, a really great computer graphics scientist who works at Pixar. 

For the past few months, I’ve been less active on open source. During this time, instead of making contributions by myself, I try to see if I can help someone new. It’s so important to mentor others—otherwise, how will the community improve? I’ve had all this help, so it’s my duty to pay it forward. So I work with juniors who are still in college and guide them wherever possible, helping them explore open source, make contributions, and review pull requests. Mentoring is also a learning opportunity for me. Trying to explain things in a way that translates is a great skill. You get to interact with people who aren’t necessarily engineers, and you can really learn a lot.

It’s so important to mentor others—otherwise, how will the community improve? I’ve had all this help, so it’s my duty to pay it forward.

An evolving process with no boundaries

There are two ways I look at open source. One is my personal passion and interest toward the entertainment industry. During the past two years especially, when the world has suffered so much, TV shows and movies have kept us sane. I have immense respect for all the artists and technologists contributing to this industry. To be a part of that makes me feel good, like I’m actually contributing to something meaningful.

And there’s so much talent in open source. If all that talent went into building proprietary technology for one or two companies, we wouldn’t make as much progress. But when that knowledge is accessible, people who aren’t as privileged still have a chance to learn and contribute. When diverse minds come together, there are a lot more ideas, and things move forward faster and better. All the software development knowledge that I have, I owe to open source.

My open source contributions aren’t always obvious, but it’s an evolving process. I observe as much as possible, and see what the roadmaps look like. If I want to become a maintainer, I’ll need domain knowledge. It’s not just the technicalities or the software: I need to know what the industry really needs. I hope I come to learn more about that, and I would be interested in taking on a leadership role, but it’s definitely far off.

Open source is worth it because you’re going to learn a lot and there are no boundaries. There are talented people all around the world who welcome you with open arms. Especially for students, it’s a really good way to move forward, gain skills, and find a potential career path. And even if you don’t want to make a career out of open source, a lot of firms value open source contributions as experience. There aren’t a lot of downsides. There are challenges, of course, but the pros outweigh the cons. 

Author Karthik standing with his laptop in front of a sunny marina

About The
ReadME Project

Coding is usually seen as a solitary activity, but it’s actually the world’s largest community effort led by open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities.

The ReadME Project is part of GitHub’s ongoing effort to amplify the voices of the developer community. It’s an evolving space to engage with the community and explore the stories, challenges, technology, and culture that surround the world of open source.

Follow us:

Nominate a developer

Nominate inspiring developers and projects you think we should feature in The ReadME Project.

Support the community

Recognize developers working behind the scenes and help open source projects get the resources they need.

Thank you! for subscribing