Working as an intern at Wingify

This blog post will cover my internship experience at Wingify from Dec ’17 to April ’18. The three reasons I am writing this blog post:

  1. A record for myself so that I always value my energy.
  2. To attempt providing value to others.
  3. Paras Chopra did not forget my promise of writing a blog.

Contents

How did I come to know about Wingify, and why did I decide to intern there?

How did I get an internship at Wingify?

How my two months internship got converted to a six months internship by mistake that landed me a significant project?

What was my project?

How did I complete the project that landed me a full-time role?

Why did I not continue @ Wingify?

How did I come to know about Wingify, and why did I decide to intern there?

Wingify actively sponsors hackathons across India, and one of my friends happened to attend one back in November ’16. He got himself an internship after getting introduced to the recruiters there at the hackathon. So, all of my batch at V.I.T. came to know about Wingify. We learned two things: i) Wingify is a multi-million dollar bootstrapped company, ii) It has the likes of cool open source developers like Kushagra Gour.

Right after my summer internship at the University of Liverpool, I decided to get back in the industry from academia, to work at a place where I can play at scale. So, I shortlisted some of the companies, and Wingify was among the top ones. V.I.T.’s placements were of no use for someone who wanted a seven-figure salary but had a CGPA below 8.5. Wingify did not come to V.I.T. for placements. So, there was only one option: off-campus application to Wingify.

How did I get an internship at Wingify?

I asked my friend who had interned there before to help me out with the application process. He was generous and got me a referral instead. Soon, I had my interview setup. Rahul Kumar conducted my interview, and he asked me a bit about myself. Then I was asked about validating a Binary Search Tree, a question that I had just solved before the interview. The interview was almost over, and I felt as if I had only performed like any other candidate. To outperform others, I decided to talk about my work experience. I bragged about my consultancy work and the number of internships that I had done by then — four. Rahul then asked me about my projects. He then started asking about the basics — like what is an MVC framework. Luckily, I was researching Software Engineering on the exact topic, and my past internships involved extensive work with MVC frameworks like Django. Trust me; I was way too lucky. Soon after the interview, the H.R. informed me that I had been offered an internship at the New Delhi office of Wingify. I vividly remember this validatory feeling of going to work at a place that competes with Google and has Microsoft and Uber as its customers.

A blessing in disguise

V.I.T. was a pain in the neck — not allowing final year students to pursue internships and instead of forcing them to stay on campus during their last semester. To escape that, I requested Wingify to offer me a tentative offer letter for six months’ duration instead of the initially planned two months so that my occupancy for the entire semester would have me escape V.I.T. They were kind and helped me out. However, my intention was to get that reversed so that I could be clear on my full-time employment at Wingify right after two months. I got my approval from V.I.T. and left Chennai. I joined the office, and due to some confusion, the Director of Engineering, Ankit Jain, assigned me a project for six months — based on that tentative letter. The project was a major one as it was planned to get integrated into V.W.O and PushCrew. I had a choice: either be uncertain about the full-time role for six months and work on the best intern project or have them reconsider the duration and probably work on a smaller project. I chose the former one, telling myself that doing that project so fast and so good would guarantee me an offer within two months. This is how I got to work on Segmenter, the micro-service that is behind applying filters in V.W.O and PushCrew.

My Project

PushCrew and V.W.O both had an option for their users: applying filters such as Location, Operating System, Browsers, etc. These filters are used to segment the data collected by both the products during A/B testing and while sending push notifications. The project was straightforward: build a micro-service that performs the task of segmentation instead of both the products performing segmentation themselves. Another objective was to take this logic from code and generate Domain-Specific Language by using a persistent database. One microservice would then be more comfortable to maintain, scale and would act as a single source of truth later on for collecting metrics. I cannot enter any more details but let me say this; it was a challenging project.

How did I complete the project that landed me a full-time job?

I began working on the project and started gathering Requirements Engineering. However, I lacked the necessary information about the products. Back then, my default mode was to develop in silos. The habit of working in silos was soon challenged, and I had to unlearn my methods of gathering requirements, step out of my comfort zone, and start understanding the complete product flow. This was a significant step in my learning: startups don’t only mean grinding hours but also an end to end understanding of the systems involved.

I was hesitant at first as I did not see the value of understanding something that I am not going to work at. I soon realized that no one is asking me to work on the frontend, or user-experience; instead, I just had to get the feel so that I understand why something is needed before building it. At Wingify, it was essential to understand the Why aspect before the How aspect; otherwise, things would get messed up with so many teams involved.

However, my mentor, Rahul, soon realized that sitting empty and just understanding the flow is making me restless, and in turn, I was making him uneasy by asking him for assignments twice/thrice a day. So, he assigned me some extra work, and I made a deal with him: I would write notes and missing documentation while understanding the product given I get to push code in production. These bug fixes introduced me to the data ecosystem at Wingify. For the first time in my life, I was going to work with Apache Kafka — something that turned out to be a turning point in my short career. Distributed Systems always fascinate me.

Interns often hang out together — lunch, breaks, etc. Socializing in groups was tough for me as all of the other interns were discussing their P.R.s, bug fixes, production shipment, etc. They had projects for two months, and mine was a six-month project. So, even after two weeks of my internship when I was fully fledged in my project, I was still not pushing code to the production and working on the design; I will be honest, this did make me a bit restless.

So, I tried to figure out a way through which I can push code but still not compromise on the quality. I decided to become more proactive than reactive to these situations. After a couple of days, I discussed this with my mentor. He then thanked me for discussing this with him and admitted that our team was not as agile as it should be. We decided to spin up a P.O.C. in two weeks. I was trying to prove myself, and so I completed the P.O.C. in a week.

I was delighted by my speed, but because of this speed, I missed out absolute basics such as:

  1. More DB calls
  2. String comparison in code instead of categorization and classification of use cases
  3. Chunks of large code and very few functions.
  4. Not so much OOP design.

I did not expect the Director of Engineering to turn up over there at the P.O.C.; he came unannounced and asked me to present my work the next day. I had two options: stall the PoC and correct the code, or go entirely honest and expose myself. In my mind, I had to get that full-time offer and thereby show myself as a super dev who does not commit these mistakes — it was the ask of ego.

I was kind of lucky by having two mentors. Rahul, the official mentor, was leaving Wingify by the end of Jan, and so Avneet was asked to take over his role and help me build Segmenter.

Avneet noticed this tension on my face and suggested I instead include a PPT of “Current Problems.” That was new — admitting to problems was something I was good at but showcasing the bunch of mistakes was a challenging task. I did, got my PoC approved, and instead got good appreciation. I got good applause for that slide in my PPT; several other devs also included multiple to-dos and things that I should be wary of. It was helpful.

All my time at Wingify, I was never independent or dependent. I was somewhat inter-dependent on my team and colleagues. But my two mentors made all the difference — that extra mile or X factor. They never got applauded, and I don’t think they cared, but to me, it mattered the most. From that time, I approach any new member in my team or an intern at my workplace or juniors from my college and ask them often about how they feel if they need help, and I also try to observe from a place of empathy.

I was designing docs myself, consulting my mentors daily, presenting the changes required to frontend devs, and whatnot. I was enjoying the process, and in two months, we released the micro-service in production for PushCrew. I vividly remember how I used to discuss with my friends that I applied the Shunting Yard algorithm in my dev work and how I am viewing the principles of Agile development from a completely different lens. This also made me realize that a dev’s toolkit should be as extensive as possible — trees and graphs are real stuff that is applied in day to day engineering if your work is at scale. So, an engineer should drop the anti-interview programming stand even if you do not design Red-Black Trees daily. It makes a difference if your data structures are strong and you have good problem-solving capacities.

While the first three months were focussed on completing the project, I kept a reality check on getting the full-time offer. By this time, my first mentor had left the company, my second mentor, Avneet, was the only one whom I could approach for this discussion. He showed me my correct stand and assured me that the work is worthy of a full-time offer. I was afraid of getting a no from the management, so I used to run around in circles asking questions like, is there a vacancy, is there a hiring freeze or something. I then finally approached the Director of Engg and told him that my university has placements. Should I go and attend them? This question was intended to ask whether I have to look for a job — I won’t if Wingify offers me one. He then sat down with me, asked me to attend all the placements, take all the tests, regardless of my chances at Wingify. I was surprised by this level of transparency, and I followed him. I started applying to other companies like Razorpay, SocialCops ( now Atlan ), Grofers, etc.

Wingify on your resume does give you a good piece of validation. Within two weeks, things started to work out for me: i)My code was serving clients like Ola, Microsoft, etc. ii) I got offers from two companies of the many that I had applied to ( one of them was Atlan that I later joined ). The DoE was involved in my project as he was kind of responsible for integration with V.W.O. ( the $20M A.R.R. product of Wingify, their bread, and butter ). He knew my work, collaborated with me in presentations, and helped me when I found it tough to pitch the importance of my technical project to the project and product managers. Just observing that he knows the complete shit was so intimidating — he was like one-stop-shop of engineering, design, management, leadership, product, projects, delegation, and everything in between.

He was always reachable, way too casual, but also disciplined. And the best thing was, in discussions, he used to take time out and bring me to a point rather than a simple yes/no answer. I never had any friction to reach out to him — to the limit that we tag each other on Facebook posts regularly. I often think that startup success stories should also highlight the early birds who made that startup what it is. I realized that Wingify had a fantastic team of the first few people like Ankit Jain. Both Avneet and Ankit made sure that I enjoy the process.

I also learned a lot from Gaurav Shukla, who used to handle D(a) C.D.N. at Wingify. Again, distributed systems feed my curiosity the best. This would also be luck that I was his flatmate, and so whenever I felt diffident of my proposals, I approached him for help.

After some discussions, I got a full-time offer from Wingify.

Why did I decide not to continue working at Wingify?

To be honest, I never decided to leave Wingify; I was going to join them for their trip to Dubai. However, after completing my internship, I got the offer from Atlan and then decided to work there. Atlan was a new startup and started to pivot towards DataOps. I already knew that company as India’s Palantir in my mind for the right projects that they had done. It was honestly not the money as I never negotiated my salaries with Ankit, although Wingify could quickly give me a higher raise than my other two offers. I remember making this call (talking to myself) that Wingify has already reached a level of Engineering. Yes, there are tonnes and tonnes of work that I could do and add value there, but I won’t be the early bird at Wingify. Even though Atlan was five years old, their pivot (transition from data projects to making data products) was that opportunity for me. Another major contributing factor was that Wingify was a product company that uses data to make decisions, whereas Atlan was a data company that builds data products for other companies. So, to feed my curiosity in Data Engineering, I decided to go forward with Atlan. I still feel guilty of taking Wingify’s offer letter and then after three weeks not joining them.

Wingify gave me the confidence to work with systems at scale, so much that I took on many challenges while I worked with professors at B.U., M.I.T., data teams at Red Hat later on. As an intern, I tried to do the best, but while doing that, I also created relationships and friendships. Thank you, Wingify.

Note:

I am currently looking for a full-time job in Data Engg or S.D.E. (Data) roles. If you can provide feedback on my profile or have an opportunity for me, or if you can refer, please let me know: hi@avisri.com. I’d be happy to chat.

My profile: https://aviralsrivastava.com

Code + Data.