Maya joined us this summer from MIT, where she's a rising sophomore studying Computer Science and Engineering. She's an NYC native, avid ballet dancer, and a kombucha connoisseur.
Maya spent the summer working as a frontend engineer to build UI elements for Apollo Engine, our commercial product to visualize and understand GraphQL schemas and their performance. We completely redesigned the interface while she was here and she played a huge role in building out that new design. She became a TypeScript whiz and built the product's new navigation components while also porting some of our original jsx to TypeScript. She embraced the reusable component pattern and built out reusable table and drawer patterns for our component library in Storybook. She also acquired a passion for CSS animations and built a number of animated loading states into the product that improved the user experience on page load.
How did you get into computer science?
In high school we had one computer science class that I took and my teacher was a woman, so she encouraged me to join Girls Who Code. I was the only girl in my class. I started that club at my school and did the summer program and just generally liked CS after that. I didn't realize it was something you could actually do for work. It was really chill, just something you did on your computer instead of meetings and stuff. When I found out you could do this for work I was like, “Oh, I'm going to do this for sure”.
What did you think work was?
My dad's a banker, so I thought work had to be money oriented. I'm not really sure what I thought it was before, but I didn't think it was this. But this was when I was 16, so I really didn't know much about work at all.
What were your interests aside from coding at that time?
I did a lot of ballet and still do. I pretty much just did ballet and coding. It's a weird combination. I tried a zillion different things in high school but those were the ones I really liked.
What were some of the first projects that you made?
What kind of animations did you build this summer?
CSS animations are super cool and I built a lot of loading animations for the product, it's been one of my summer passions. Someone on the team showed me these loading animation state animations they'd used before that had timed fading, so I made these animations that glowed. I implemented loading states on almost all the pages in the Engine UI. The actual animation wasn't complicated; it was the way you used it that was cool.
What draws you toward amimation?
There's a number of things. If you have a slow webpage animations will make it feel more reactive. Another thing is that it's artsy and they made your webpage look a lot prettier. They make everything feel a lot more interactive. It's like iPhone interface's haptic feedback.
With your passion in software and ballet, what made you come to Apollo?
From my original interviews I knew I liked the people. I came to your info session and booth at the career fair and you guys were all super evidently smart and competent human beings, which is not to be taken for granted.
When I interviewed we talked a lot about data visualization, which I was interested in. That was a lot of the reason that I wanted to join. I just felt that the culture and the people that I met were super smart and chill.
What did you think of the culture at Apollo?
Oh, it was better than I expected. People here don't freak out about things, which is good. You'll have lunch or go on a walk and talk about work, but it's pretty natural and doesn't feel totally separated from day-to-day life. It's hard to find a group of 30 really smart humans working on the same thing. You guys are so productive; that was definitely one of the reasons I joined. My expectation was that I would find that everyone just worked extremely hard, many hours a day, because of how much you produce. I came here and you guys work hard but it's not overwhelming. You get so much more done than any of my past internships. Like 3x more stuff done — it's crazy.
How do you feel about the stuff that you got done?
I feel good about it. I think I got done in these 3 months what I had previously gotten done in 6 months at other places. I just feel like you guys trusted us a lot, and because you trusted us I wanted to deliver. That was a good motivator.
What was it like working at a half open source company compared to your other internships?
I think it was a really positive thing. For one, it was an avenue for recruitment. You work with these people in the community and know they're smart before they ever even interview. At larger companies it's easy to get lost and slip through the cracks. You could maybe not do work for a week and no one would even know. Here, if you were not to do work for a week, it would be so obvious and people would notice and check in with you in a good way. You're motivated by the energy of people around you.
We used a bunch of our open source stuff. I mocked things with this package called graphql-tools that was made by the open source team. If I was ever confused, I was sitting next to the person who wrote it and could ask them. If I didn't understand the docs I could just turn and ask. It's a luxury I probably wouldn't get at another company. The interns added support for @defer, and it was fun for all the interns to work together to get to set up this new thing from Apollo open source land, which was crazy. I also used the Apollo CLI which was made by another intern. I was definitely lulled into a sense of “everything you need is here”.
Was there anything that you found really challenging about the summer?
I was scared coming in because I was worried I would have forgotten everything about work that I'd known before. It came back to me quickly though. I did a lot of reading docs. One of the hardest things about being here was understanding the company as a whole. I don't work on servers, so it took time to figure out what Apollo actually does and to learn what is special about our product and tools.
What was your impression of Apollo before you came?
I didn't know much about Apollo before I came. I like to deliver things and not research too much. I tried to do that differently this summer. I spent a couple days reading aboutapollo-link-state and trying to learn about all our stuff that we were doing, which was helpful to understand what the company did. Now that I use Apollo, I'm really not looking forward to a company where I don't get to use GraphQL. I'm thankful for the opportunity to work here and help build this. I never want to work at a company that uses PHP REST endpoints again.
How would you describe Apollo?
I would have to start by describing what GraphQL is. Apollo is all the support around GraphQL. It's so cool, so much better than just “okay”. It's not just a cool way of writing APIs, it's the future. GraphQL is the logical and right way to do things.
If there was one thing you could change about your internship or Apollo, what would it have been?
I would have tried to do some schema (server) stuff. I've only ever worked in frontend web stuff, so it would have been a good experience. I learned a lot of things I didn't know, but it all falls into the frontend web development category.
What was the most valuable thing you learned?
Objectively, the most valuable things to put on my resume are GraphQL, Apollo, and TypeScript. That's what I did the entire summer. Before I came here I felt like I had an understanding of what Product Engineering was, but there was a lot of dust on it. I came here and took the dust off and now I feel like I could make anything practical that you ask me to make with less confusion and half the time.
What piece of advice would you give to incoming interns or new people on the team?
I would tell them to take days to read documentation instead of minutes. If I'm not putting up PRs I feel really unproductive, which is a good general rule, but I think taking the hours to read documentation up front will really speed up your development in the future. You should try and really understand what you're working with. Also, don't just try and do the things you're good at. Try to activekly go outside of your comfort zone.
What did you do that was the most outside of your comfort zone this summer?
I was terrified of TypeScript at first. It was a new language to learn and it took a week to pick up but after that it was fine and I would choose to use TypeScript now for new projects.
What do you think is important in choosing a place to intern?
If you're a freshman at MIT and choosing a place to go intern, it can be kind of freaky. You think, “Wow, everyone is trying to get a job, I need to get a job, too.” I don't think I understood the value of working at a company that's doing what you guys are doing. You go to company checkins and think, “Wow, what the company is doing is very important. I'm so glad they chose me to come work here.” I didn't value the company enough before coming.
I know I'm working on stuff that a lot of people will be using in the future, like the whole world, and I'm working on it pretty early. Being able to work with people who have such high velocity is really important. I get energy from people who have energy in their work. When I come to this office I'm very excited to start working and it doesn't all feel like work to me. Everyone around you is delivering stuff all the time.
Anything else to share?
This is my third internship. I've worked at one company that was huge, one that was medium size, and this one which is tiny. I don't think I'd ever choose to work at a large company again. It now feels extremely unappetizing. It goes back to the energy thing. It's easy to slip through the cracks and lose motivation at a larger company. I get a lot of motivation from working on things that I can see the direct impact of.