An API-tastic Summer, 2k16

The final showcase is over, there’s an air of laziness amongst the interns, and the office is quieting down. It is our last day at Apigee, and as excited as I am about going back to school to start my final year, I’m also becoming slightly nostalgic about the last three months at Apigee.

It’ll be a long time before I drive southbound to work in the morning, thankful that I don’t have to face the stand-still traffic I would see everyday. I won’t be coming into work anymore and greeting the people who became amazing friends as they eat breakfast and discuss topics ranging from low-level processor optimizations in different computers to the benefits of using pigeon mail instead of a phone. My desk won’t be there to support me as I spend the day trying to come up with solutions to the new challenges I face on an almost-daily basis, and my team won’t be there for me to annoy when I’m trying to solve these problems. Lunch won’t be served, ping pong tables won’t hold exciting matches, and meetings about my project won’t be held. And at the end of the day, I won’t get to drive home and reflect on the challenges I solved that day or think of solutions and optimizations to the next step in building my project, while watching the sunset and the beautiful California sky illuminate in a gradient of yellow, orange, and purple.

As a programmer at Apigee, there is no doubt that I leave my internship as a better coder with more knowledge of languages and frameworks under my belt. But more than that, I leave having a better understanding of product design and more confidence in my abilities to speak and demonstrate what I’ve built. I’ve made amazing friends, gained core strength from laughing hard, met incredibly experienced mentors, and become a smarter and more able programmer. And I know that even after I leave from here, I will take all the lessons that I have learned. Thank you very much to Apigee and the people here for making this a valuable and memorable summer!


Ready, Set, Learn

Before arriving in San Jose, Apigee asked me what exactly I wanted to get out of my internship. My answer was simple- I told them I wanted to learn as much as possible. Turns out they took that pretty literally.

Soon after, I received a document explaining what I would be spending my internship at Apigee building. The project details were filled with words that frightened me. “Highly distributed”, “open source”, “clustering”, “CAP theorem”, “containerization”- the list went on and on. Terrified and excited, I quickly started educating myself on these topics I knew nothing about.

These buzzwords aside, my project was to enable an open source time series database called InfluxDB to run in a distributed environment- that is, one database running on several servers. Pretty cool, huh?

Flash forward a few months to my first day of work. My partner and I were awkwardly making small talk over breakfast.

“So… have you ever programmed in Go?”


“Do you have any experience with distributed systems?”


We both started chuckling.

“This is going to be quite the experience.”

Before I go on, a huge shout out to my awesome team- my coaches Yegor and Shalin, and my partner Ali. These guys helped facilitate the best learning environment I’ve ever experienced, and I couldn’t be more grateful. I could go on and on about the things I’ve learned- all the way from distributed systems to unit testing, but by far the most critical lessons I’ve taken away are the importance of continual learning, and to always clean out the espresso machine (seriously y’all, c’mon now).

I’m now going to try to explain something that is difficult for me to put into words, mainly because I’ve never seen anything like it before. At Apigee, the notion of jumping into something completely new and foreign is not only okay, it’s taken with exceptional gratitude and excitement. It first dawned on me when I had my first meeting with my coaches. They were genuinely excited about doing this project with us, even though our experience on the subject matter was minimal. Rather than looking at our project as this daunting task filled with (many) unknowns, they taught me to look at it as a learning opportunity that would better me as an engineer. By the way, this is a mindset I’ve found to be common amongst all apigeeks.

Whenever explaining my project to other apigeeks, responses would be full enthusiasm and encouragement. The phrase that I became most accustomed to hearing was “wow, you must be learning so much, that’s awesome”. This is the phrase I associate with my summer at Apigee.

Team of Apigeeks

This summer I’ve had the great pleasure of becoming an “Apigeek.” Being about 10 weeks into my internship, I can confidently take pride in being called an “Apigeek.” “Apigeek” is the term we use around here to call ourselves; given our hard-working drive and geeky personalities. It is something everyone takes pride in, regardless of what their function in the company is. In fact, the Mayor of San Jose, Sam Liccardo, recently visited our San Jose Headquarters and after the label “Apigeek” was mentioned, all 150 of us in attendance quietly laughed. The radio show host then commented on the fact that none of us seem to be ashamed of the title, in which we all burst into laughter, because we know it to be true.

Besides being able to join a company that is very proud of who they are, I have also been blown away by the team environment and collaboration across functions and teams. Personally, I’ve had the privilege of working amongst the Finance team, who are in constant collaboration mode through which they tackle various tasks on a daily basis. Every Apigeek takes on a certain role, and plays a part in the big picture. I’ve had an amazing coach and mentor (Thanks Stephanie!) who has taken me under her wings and guided me.

Since I am only one of two non-engineering interns in our group of 16 interns, I’ve had my fair share of listening time to some very brilliant engineering intern conversations. While I try my best to understand some of the more technical things they speak of, it’s unfortunately not always easy. What I have been able to take away is even amongst the engineering interns, everyone is constantly communicating with each other regarding the status of their projects. As I look around the kitchen during lunch, my conclusions are only confirmed as full time employees are sharing lunch with others across different teams and functions, engaging in thoughtful conversations.

I have found our monthly “All-Hands” meetings one of the most eye-opening experiences that we have at Apigee. Chet leads these meetings in the Kitchen, and all employees in San Jose come down and attend. No matter your role in the company, Chet finds ways to make you feel valued, important, and empowered. I love these gatherings as I feel it is a brilliant way to keep the company moving forward and most importantly, moving forward as a team of Apigeeks.

While I have a few weeks left of my internship, I’d like to thank Apigee for the opportunity to join such an amazing group of people for the course of this summer. I’ve taken so much away, and definitely felt like I was a part of something big. I can’t wait to continue watching Apigee grow and succeed, even if it may not always be from the inside. Thanks so much Apigee!

Feeling Impactful

In my time working as an Apigee intern so far, the thing that I have loved the most is the opportunity to work on a really cool engineering problem that:
1. Will very likely be used
2. My partner and I designed and built almost entirely ourselves

While I can’t explain too much about my project until we release and open source the code, we are working on a new method for rate limiting APIs (to protect them against spammers and bots). Our mentors gave us the general project overview and were around to support us if we needed it, but allowed us the freedom to complete this project ourselves.

A couple weeks into our project it became apparent that the base algorithm that we had originally selected was not going to work well. It did exactly what we wanted, but took an exceedingly variable and arbitrary amount of time (from .1 to 5 seconds). This led me to doing a lot of research, reading too many white papers, looking at many codebases, and finally settling on something which seemed promising as a replacement.

As far as I could tell, the algorithm I found had never been implemented before in the real world. I am not sure why, as it is brilliant and was exactly what we needed. I decided to implement it.

I reached out to the author of the algorithm, the person who had written the white paper. Within 24 hours, he got back to me! He seemed intrigued by my use, and even provided me with some of the code he wrote in C for the paper. Here is a snippet of our later conversation:
“Hmmm… Java is quite slow… Not sure how the hash computation performs.

Good luck with the implementation!”

I implemented the algorithm and it seems to work perfectly. I can’t wait to finish, release, and open source our project. It was such a unique opportunity to get a response from the person who created the algorithm that my partner and I used in a project that we created. I look forward to the rest of my time here, and am excited to show everyone what we have been doing!

Thank you for everything, Apigee

Talking with the Supervisor

This is already the 4th week of my 10-week intern. Everyday is so interesting and challenging that it is hard to realize I have spent almost a month in this charming environment. As required by the CPT program in my university, my supervisor will fill out a form concerning my progress and status since the start of my work in Apigee.

Yesterday morning, I handed the form to Solofi. I have been working hard and being cooperative and kind to people. That’s why I naively thought Solofi would do some quick circling on those “yes” on the form and hand it back to me immediately, with a big smile on his face.

Of course that did not happen.

Solofi took the form and start to read it carefully. “OK. It might take a couple minutes,” I thought. After about half an hour, Solofi walked to me with the form in hand and said, “Leon, let’s have a talk outside.” At that moment, I was sure that I have done something wrong-that’s what usually happens when a supervisor wants to talk with you at a quite corner after he/she fills out your progress form. I was totally lost.

We sat face to face at a corner of the lounge, Solofi without his common humor on his face. “Initiative and independence, yes, we do see your independence on the project,” he said, “sociability and interpersonal, yes, you’re sociable to everyone in the office.” Criticism usually don’t come first, I thought. And I was so ready for a “but” in his next sentence.

Solofi went on. However, to my surprise, he did not point out any “mistake” of my work, besides suggesting me to pay more attention on the problems that the GSC team usually meet to make the project more useful. Now I understand the meaning of this short talk. Solofi wanted to talk with me is not because I had made some huge mistakes and he had to curb before I create a disaster, but was because he does care about me, my progress, and my feeling. The talk was short, but it did make me feel more connected with GSC, and with the company.

I am glad that I have the chance to work with Solofi. I don’t want to praise you too much here, but to be honest, you ARE an excellent supervisor.

Leon Yang

3 Signs of a Great Internship

I have previously worked for IBM and have experienced the culture at the large tech company, so I had a certain idea of what a typical software internship would be like; however, I still started this summer with high expectations of what I wanted to gain from my internship at Apigee.  Needless to say, it blew my expectations through the roof!

Although I have had many great experiences with Apigee, the three most memorable takeaways I received from this internship were:

  1. I got to work on a project that played a purpose for Apigee.  Apigee did not assign interns to do “intern” work such as making a button for their website.   They wanted us to contribute to the success of the company.  My partner and I developed a metric correlation tool from scratch, and were able to use tools we definitely would not have learned in school (e.g. Node, Angular, Swagger, etc.).  Although these concepts were new at first, our mentors always had time to help, and genuinely wanted us to succeed and learn new things even if we were only at Apigee for a short amount of time.
  2. The idea that you can learn what you want, as long as you have a passion for it.  The policy at Apigee is if you want to learn something, or try something new all you have to do is ask a person knowledgeable in it.  For example, even if I was an engineering, I could ask someone in the marketing team about best practices and techniques in marketing and they would gladly show me.  If I had the passion I could even join the marketing team.
  3. The perks.  Oh man were the perks great.  Receiving catered lunch on the daily, having legitimate kickboxing classes during lunch, and an espresso machine better than most cafes (of course they were more perks) didn’t exactly make me want to check the clock to leave.  Also, our team building events were the best.  I can’t really complain about going Go-Karting, Laser Tagging, and playing volleyball with the company (everyone’s friendly, they don’t bite).

All these things contributed to a comfortable environment and the awesome Apigee culture.

Counting 10 weeks of an internship

After interning the previous summer, I thought I understood what an internship was like. The thought of working a full time job based on previous experience bored me. To my pleasant surprise, I was blown away by how different my expectations for an internship at Apigee was compared to the reality. Apigee implores a small intern team of 10 people, who I quickly learned would become not just my acquaintances or fellow interns, but genuine friends as well. Keeping a small team and holding frequent intern events lets the interns get to know each other very well, from discussing cultural and ethnic backgrounds to intellectually stimulating conversations about revolutionizing current and future technologies. The amazing thing was, not once did I ever feel like a day at Apigee was repetitive. I knew what my goals for the day was, and it seemed like every day I had growing expectations for myself. Apigee fostered a culture where I was able to rediscover my intellectual curiosity and passion for engineering. It’s not everyday or anywhere you can say that.

Apigee tries and succeeds at making interns feel valued as well as jump starting their career ambitions. Every week, we had a lunch and learn where we were able to ask questions and learn about the career journeys and paths of different individuals in the companies, not just limited to engineers. What I took away from these conversations is most importantly to be open to an opportunity at any time, and opportunities may present themselves, but it is up to us to put ourselves in an unfamiliar environment in order to grow. In one of these lunch and learns, I even had a talk with Chet, the CEO, about my school, Rice University, and how his best friend went there! We also had a strengths building course, where we learned about our five greatest strengths and how we could utilize our strengths rather than focus on our weaknesses to be happy and successful in our careers.

Beyond all of this, Apigee keeps its Apigeeks happy. We all want to work for a place with great perks, and what I enjoy at Apigee is that it rewards hard work. I feel like I have worked hard and have been taken care of as a result, rather than being taken care of without working for it. As an intern, Apigee’s perks include amazing catered lunch, an insane kitchen (and when I say insane, I mean insane), as well as a community that promotes fitness in the workplace. Oh, and massage Fridays? Yes please.

As my internship wraps up, I’m incredibly thankful that I ended up at Apigee to do my internship this summer. Not only am I now excited for my future, I’ve made some great friends and learned a lot about different technologies as well as made a direct impact on the company with my work. I was trusted with an important project and was treated like any other employee. I’ve gained a tremendous amount of respect for my peers as well as my coaches, who I aspire to be more like. There’s not much more I could have gotten out of an internship, so I’m proud to be an Apigeek!

Fun Times Every Wednesday During Lunch

Each Wednesday, Apigee has a “Lunch and Learn” event for its interns. I have come to really love these, as various Apigee employees from different departments across the company would come to speak each week. The employees would typically describe their career journeys, answer all of our questions and provide us with advice as we started our own careers. These weekly meet-ups served as one of the many things to make all the Apigee interns feel welcomed to the company. One week, our CEO Chet Kapoor even came to speak with us. Looking back on the summer, there wasn’t a single “Lunch and Learn” I didn’t really enjoy!

5 things that made me go to work this Summer!

  1. Outings, activities and massages!

I had a really good time taking part in all the activities planned for us – Volleyball, go-karting, bowling, laser-tag and a table tennis tournament!! Through these events I got to know my fellow interns and other Apigeeks better (and got a little better at table-tennis). Though I didn’t make use of it, there were regular yoga and kickboxing classes held at Apigee, which I thought was very cool. The facility I did make use of, were the extremely relaxing weekly massage sessions.

  1. The Apigee-Way

The Apigee-Way is basically really enjoying the work you do. It is the concept of making Apigee’s customers successful and our responsibilities not being limited to just one team. There is a very flat hierarchy without too many layers of management. We had ‘coaches’ and not managers, which basically meant, our coaches enabled us to do better, rather than them managing us. The mantra being – Action, Passion and Respect

  1. The food

When you are at Apigee, you easily put on 5 pounds in the span of 10 weeks. The kitchen is filled with yummy snacks, and the catered lunches are simply too tempting. They have a lot of healthy food options too!!

  1. My project

I was very excited about the project I was working on, and firstly because our projects were matched to our interests. Secondly, it was a steep learning curve, and there was so much to take away from it. Thirdly, I worked with a great team, and an awesome and supportive coach. Additionally, the tasks for each of the 10 weeks were very well planned out. Lastly, but definitely not the least, we worked on the project right from scratch to completion – Designing, Implementing, Testing, Documentation.

  1. People!!

I absolutely loved the people I met at Apigee. They were smart, talented people who were passionate about what they do. I found everyone welcoming, extremely helpful and willing to share his or her experiences with us. We had ‘Lunch & Learn’ sessions with people who worked in different areas like engineering, sales, marketing, finance, People Operations (HR) and even the CEO. These sessions were super helpful understanding their different journeys and how they got to where they are now. One thing common between all these people was each of them believed in and practiced the Apigee-Way.

Open-source Swag(ger)

Since starting at Apigee almost 10 weeks ago, it has been a whirlwind of an experience, during which I was welcomed into the open-source world. My summer project was dedicated to the Swagger Descriptive API Framework, a robust, open-source project with a wonderful community of developers. From the first day, our coaches impressed upon us the importance of contributing to open-source projects, something that I believe Apigee as a company finds extremely valuable. Through my internship here, my persepctive on programming has grown. I once saw programming as an exclusive activity that is highly competitive and pits developer against developer to produce the best code. Now I realize that programming is about the community as much as it is about solving the world’s problems.

About 7 weeks into our internship, my partner and I released a tool to the Swagger community that generates a bunch of code used to test your Swagger-defined API. Not only did we get to release our project into the wild, but we also got to present our work to the developers that would be using it at a Swagger Developer meet-up in San Francisco. Just before we released the project, our coaches informed us that we would be going to this meetup and that we would replace them in their presentation slot so that we could show off our work.

Linjie and I presenting at the Swagger Meetup in SF
Linjie and I presenting at the Swagger Meetup in SF

Needless to say, I felt extremely empowered by this vote of confidence from our coaches. They have always trusted us with responsibilities beyond those of a normal intern, given us the opportunity to shine and have made a huge, positive impact on my personal image as a developer.

The meet-up is where it all came together for me. As we talked with our peers in the community, I realized that this tool was part of something bigger than just my summer internship. Attendees were excited with our offering and did not hesitate to give feedback on our development choices or just to say that they liked it,  As I write this, our module on NPM has over 1100 downloads in about 2 weeks, 106 of which happened in the last day. This is empirical proof that the open-source projects Apigee facilitates are important to the community they belong to and confirmation of my newfound view on programming as a collective institution.

Go checkout our project and other cool Swagger tools by Apigee here!