Shadaj Laddad

2017 Summer Intern

Shadaj joined us this summer from Lynbrook High School, where he is a rising senior and co-president of the Lynrbook Robotics team. Shadaj is an active member of the Apollo and Scala communities, and has previously interned at Coursera and Khan Academy.

I worked on building out a new Cache API for the Apollo Client, which makes it possible for external developers to create their own cache implementations for Apollo. This makes it possible to have caches that work offline or have tradeoffs of correctness of performance. I also worked on performance improvements for the default in-memory cache, such as smarter query invalidation for minimizing query reads. Another project I worked on was a Scala.js wrapper for Apollo Client that lets you write a React app with Apollo Client in Scala, and have Scala.js compile that to JavaScript to run in the browser. This included a contribution to apollo-codegen to add a target to generate static Scala types based on GraphQL queries.

Interview

How did you get into Computer Science?

When I was 6, I got started with Lego Mindstorms NXT (a Lego robotics kit). It was very exciting because it had the building aspect of playing with Legos, but with a twist of being able to make the legos doing something. It gave the one piece of hardware limitless possibilities.

From there on, my dad is a software engineer and he encouraged my exploration of computer science. My first language was ruby. I worked on different types of projects and games. I grew through learning the different styles of coding you have to use from different projects.

My favorite Lego Mindstorms robot was the scorpion one. Once I started getting into the software, it became a lot more exciting than the actual Lego building part. It was a super cool biologically inspired robot.

What made you choose Meteor?

I love that Meteor is built on open source. I've been doing stuff with open source since I started programing, and seeing what Meteor has contributed to the open source community is really exciting. The open source cycle is really interesting and unique. What really excited me was Meteor's culture and I really liked that in the application they specifically said “we welcome high schoolers.” Having that sense of openness that high schoolers can do stuff too was exciting to me.

What was it like working on open source?

It's definitely a very interesting and special experience. Because Apollo is already such a leader in the open source world, I was able to immediately dive into working with a bunch of contributors which was a lot of fun. When I was designing the API for my cache building project, it was great to hear from community members about what they would want out of the project. I liked the sense that it wasn't just one person or company working on this, but that it's a collective of people who get to help out and give back. It was fun working with other companies who contributed to it.

Who’s the coolest person you met this summer in the community? (not from MDG)

Definitely Ian from Convoy. They're a company that uses GraphQL for Native apps. He was the main person I'd talk to when looking for feedback on my cache implementation. He's really smart and knows a lot about caches. The Convoy cache is now 100x faster than Relay! I liked getting feedback from him. When I started working on it, I was mostly focused on what we already had, but it was fun to hear new ideas and designs I hadn't considered from him.

What’s a unique challenge you worked on this summer? How did you overcome it?

Moving Apollo Client away from Redux was a very big challenge. It was originally built on top of and designed for use with Redux, and Redux was baked into every single component of Apollo. When I first started, I looked through the code for uses of Redux and it was everywhere, and I initially panicked. The challenge of migrating a huge codebase away from the tool it's built upon was a really fun technical challenge. My final PR deleted 13,000 lines of code which was super crazy! It was fun to see how much of an impact this change has. Apollo Client is a lot faster now too!

Did you discover any new passions this summer?

I think definitely I really started enjoying working on designing APIs. That's something I really enjoy that I never thought of doing before. We white-boarded a lot of different API designs and it was fun planning how everything would fit together.

What surprised you the most about the team?

I'd say how accessible everyone is. Normally, the CEOs/CTOs seem like the super heros so high up that you can't talk to them, but here it seems like everyone is just an equal player. At lunch I'd sit down and have casual chats with Geoff, Matt, or Nick and talk to them about where they think the company is going and what challenges they might be facing. It was cool to get an idea of how I fit into where the company is going and the bigger mission.

What piece of advice would you give to next year's interns?

Especially at a place like Meteor where we're making so many big changes all the time, I'd say don't be afraid of making big changes. Don't be scared, move fast, don't be afraid to break things. Things will work out in the end! Everyone is always here to help you. Don't worry and seek help often. Things will work out in the end :D