Evans Hauser

2017 Summer Intern

Evans joined us this summer from the Computer Science program at Carnegie Mellon, where he is pursuing a master's degree in Electrical and Computer Engineering. He will be joining the Meteor team full-time in 2018.

I joined the Open Source team at Meteor for the summer and worked on Apollo Client, a caching GraphQL client. To get acquainted with the Apollo ecosystem, I continued the Full Stack React + Apollo tutorial with a blog post about utilizing Apollo Client’s normalized cache and customizing GraphQL mutations. This blog post was a great first exposure to full-stack development and had an immediate impact, reaching six thousand views by the end of the summer. After getting comfortable with Apollo Client, we started designing the main project for the summer with the goal of making Apollo Client’s network layer more flexible. We ended up creating apollo-link, a framework for GraphQL clients that composes links, discrete modules that contain different functionality in a network stack. Additionally, we created apollo-fetch, a lightweight fetcher with middleware and afterware that provides a transition for Apollo Client’s current network interface. With this transition path, Apollo Link is a core part of Apollo Client 2.0 and will be a large part of the future of customizing GraphQL clients.

Interview

How did you get into Computer Science?

I took the Intro to CS class in high school and I was okay at it. I took the AP class two years later, and after exploring both hardware and software ended up choosing software. I knew I was going to study ECE at CMU. MechE was mostly physics.

What made you choose Meteor?

I started my process really late. I had a return offer from the year before, but I didn't get the right gut feeling from them and pushed it off. I looked at all the a16z companies and recognized Meteor because of the framework. Started looking into Meteor and GraphQL and thought it was cool.

What was it like working on open source?

Love it! It's one of my new favorite things to do. I can see how maintaining it could be frustrating, but creating and getting contributors to do things is great. It's fun to get to know the human aspect of software development. The work pushed me out of my comfort zone, but you end up having a bunch more mentors outside of the company in the open source community who know a lot about their space.

We were guests on a GraphQL Radio episode which was very interesting. They asked us about our hometown, major, school, etc. What was something you enjoyed? What was the biggest hurdle? It was fun to jump around the summer and questions and answer everything in a way that made sense.

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

I met someone (Hugo) at React Wednesday at Pinterest and we talked about websockets and subscriptions. I wanted to make sure they worked for him with Apollo Link. I ended up inviting him to the Apollo Contributor weekly and we messaged on Apollo Slack.

My other favorite person who made the Apollo Fetch Upload Link — he's been very persistent. It feels awesome to have people in the open source community self-drive their own contributions to your stuff. He's in Australia, and said to me “The sun never sets on the Apollo Empire”.

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

Responding to issues and about topics that I don't know too much with. Juggling this with the balance of wanting to be able to push out new features. Nice-to-have maintenance and new feature development is a big balancing act.

Did you discover any new passions this summer?

Hip-hop dance + rock climbing. The new one on my list is martial arts or self defense. And open source stuff :P I guess that's cool too! The risks I take at work (like talking to people online about unfamiliar things) translate to my willingness to take risks outside of work, like trying a new dance class.

What surprised you the most about the team?

The willingness of people to help and mentor and teach. I found it sooner and more apparent than anywhere else I've worked. Zhenya set the tone for this in our first 1:1 where he framed the rest of the summer.

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

The idea that if you think you want to do something, or don't know if you want to do something, you should ask about it and try it out. For example, if any of the interns wanted to be on a customer call, Meteor would make that happen. Asking early to be a part of these things and capitalizing on opportunities as they come up asking to be a part of things (within reason) is a good way to maximize the opportunity.