An Interview with IIITK
I was recently interviewed by Anant Mehra, a student at my alma matter, IIIT Kota. This was for the collegiate magazine ‘Quills ‘n Stills’. He had quite a few interesting questions for me, so I’m sharing a transcript here.
What is your role at Facebook?
I’m a production engineer at the Facebook Headquarters in Menlo Park, California. A production engineer is a hybrid between a software and systems engineer. I am a member of the Web Foundation team which deals with incident management and maintains the web infrastructure. We are a group of first responders to any major usability or infrastructure problems across the entire Facebook family of products that also includes Instagram, Whatsapp, and Oculus.
Can you tell us about your background before you joined IIIT Kota?
I grew up in Mumbai, did all my schooling and junior college there. I had always been fascinated by technology and gadgets as a kid. I got my first computer on my 10th Birthday after nagging my parents for probably 2 years straight. Internet access wasn’t as easy to get as it is now. My first internet connection was a dial-up. I started coding in 10th grade and had started specializing in computer science right from 11th grade. The only other significant part of my life apart from computers was music. It’s something that remains close to my heart to date. I play the piano and the guitar.
What was your reaction after getting into IIIT Kota, how was your initial college experience?
We’ve seen IIIT Kota materialize out of thin air and become its own entity and have its own identity. We’ve quite literally seen Prabha Bhavan transform from a bunch of scaffolding and torn-down rooms(It was called the computer center at that time) into the architectural marvel it is today.
The first experience that really made the identity of IIIT Kota stand out was the onboarding of the batch of 2015. We had the most amazing week full of events organized for them. There was a week-long set of events including art lessons, music sessions, cooking classes, and whatnot. It was nothing like anything anyone on campus had ever seen before. Our batch was involved in organizing the events. Other than that, being into music I was a part of pretty much all cultural events.
You’ve done many projects during your undergrad. Can you tell us a little bit about them?
There were a lot of projects I got a chance to play around with. Since the second semester almost all subjects in the IIIT Kota syllabus are mostly computer science focused and those courses felt pretty natural to me and I had already got myself accustomed to the atmosphere. I had the time to try new things. I learned Android development in my second semester and PHP web development in my third.
I got approached by an entrepreneur who was an MNIT alum to build an Android app for him. The startup grew fast enough to need me to hire other IIITK students to help out, later on even as a full-time role after college for a classmate. The startup did well and ended up getting acquired by a giant. Cairn India’s CSR app is one of the more iconic projects I got to work on. We built an app to be used for social work and also to travel to Barmer for it. I did also work on a lot of research projects with MNIT PhD students on Distributed Systems and Android Security.
In the summer of 2016, a bunch of students stayed back in college over summer to build an ERP solution for admissions. We had built computer stations for students to upload documents, enter details and get documents verified and get a student ID. We were given two Dell PowerEdge blade servers, we installed an operating system on it, deployed the ERP to it, it was super fun. It was a huge highlight of my time at IIITK
When and how should current students go about picking projects during B.Tech?
Day 1! The reason for that is you don’t really sign up to get a project to work on. You don’t wait for something like, “Oh, I’m going to wait for the third year to start a project”. You’re a computer science engineer the day you step into IIIT Kota. There’s nothing stopping you from picking up a problem and working on solving it on day 1. You can find projects online from open source repositories on github or work on building your own portfolio like a website or an app that solves a problem you face in your day-to-day activities. The entrepreneurship cell on campus usually has tons of opportunities to work on existing ideas if you can’t come up with your own.
What skills that you acquired at IIITK helped you during your masters?
Courses like Object-oriented programming and Database Systems were really great building blocks and some basics of machine learning and distributed systems helped me hit the ground running at CMU. I also got a lot out of the projects that I had worked on in terms of skills I could use for assignments and advanced courses at CMU. My experience of working on research papers at IIITK helped me contribute to research work at CMU.
How did you prepare for GRE? How did the preparation fit into your schedule?
I think that it’s a common misconception that GRE is your typical notorious competitive exam that you need to learn a syllabus for. It is actually a straightforward test for language as well as mathematical and logical reasoning. What you really need is to get used to the format of the examination which I did by subscribing to practice tests from the T.I.M.E. institute in Jaipur. I did not find the lectures there too useful and ended up not attending them. You don’t need to learn anything new for the GRE that you haven’t already in High School.
How was the college experience at CMU? How was the culture different?
When I first came to CMU, I was also new to the United States and it was a big culture shock for me to absorb. There were stark differences in the behavior of people in classes, the method of teaching, the way assignments, projects, and tests worked. Something I really admired was the fact that lectures were almost completely conversational. The students were super focused. The professors really encouraged discussion, even between students in the class and it really added a lot of value to the study material. There were a lot of activities done in class. CMU is notorious for having rigorous assignment work but they were always an integral part of the learning and were often discussed in class. As a member of the Student Activities leadership, we organized theme parties and other events on campus. Working as a teaching assistant was an interesting way to deep dive into a course and help other students.
What are the differences between academics in India and the US?
In the US the syllabus is defined as a set of focus areas that will be discussed, but the matter discussed is pretty exploratory. Courses are updated every time they’re taught with the technologies or best practices in the industry. Very often we had guest lectures from people from top tech companies in silicon valley and their inputs would then become the syllabus. Each lecture is pretty unique and covers a single topic, continuations are not common. Classes often have a pre-requisite reading or assignment and a post-assignment or quiz. Grades are curved but are pretty confidential.
How was your internship at DRDO, how did you get it?
I worked for DRDO Hyderabad as a contract engineer immediately after graduating from IIITK. Some professors in IIITK had contacts within the organization and were able to get me in touch with a scientist who was intrigued by my skill set. I had a really interesting experience there being the only software engineer among a set of really hardcore electronics engineers. I had a pretty unique position because of the CS context I brought and I was able to have some impressive impact on reducing their experiment durations because of a set of automation tools and analytics dashboards I built. Trust me, controlling super large pieces of equipment with Java code feels incredible.
How was your experience with GSOC? Do you have tips to get selected?
Google summer of code is an annual remote internship that Google organizes that allows students to contribute to an open-source organization and be rewarded with a stipend. I worked on a project for the International Neuroinformatics Coordinating Facility, Sweden. The company has really interesting neuroscience projects including a mind-controlled wheel chain. I worked on building a drag and drop Signal Processing + ML interface for data scientists working on EEG systems. I was mentored by a member of INCF for the 3-month duration and got to learn a lot about software engineering best practices and writing professional maintainable code for the Open Source world. The project was pretty successful and was continued by other students for the next two years. My advice to anyone intending to apply is to narrow down on a single project and try to create a stellar proposal for it, with a concrete project plan and schedule and also a mock-up or prototype.
How did you apply to Facebook? What was the interview process like?
CMU students were invited on campus to the Facebook HQ for an Infrastructure event. There I met really interesting people performing different roles at Facebook and got to see Facebook hardware for the first time. I really enjoyed listening to stories from a Production Engineer about FB’s software infra. I handed over my resume to a recruiter on-site in person (ah..the good old days)…A few months later I got an email that they wanted to chat. Being a new grad, I had 2 phone interviews about coding and systems and I was then invited to this magical Disneyland-like campus for 4 rounds of onsite interviews. These were 2 coding rounds, 1 system design, and 1 behavioral interview. I loved the systems design interview because I could talk about my fun experiences working with systems in IIITK and CMU and really portray the value I brought right out of school. The behavioral interview really gave me a chance to understand the Facebook culture and things they cared about.
What should students focus on, projects or competitive programming?
Now you may hear different answers from different people, but I am really opinionated about this. I think there should be at least a 70-30 balance favoring project work. Now, competitive programming polishes your ability to think fast, be able to recognize patterns, and implement common data structures and algorithms really fast. When you get into the industry, these begin to identify as soft skills. Time constraints translate to your efficiency. Time complexity gets evaluated against the code readability and maintainability tradeoff. Complex data structures and intricate algorithms are super rare. Being able to nail competitive programming questions is great but using them to train yourself to be a better computer science engineer is just the wrong way to look at it. Skills like software code structure, automated testing, deployment techniques, system design are things you more actively use in the industry in your day-to-day work as a software engineer. Mini projects are the best way to develop these skills. Competitive programming has relatively low friction to get into as a new programmer and therefore I support it as a training ground but once you build enough experience, try to put in the effort to have small, presentable projects that solve real-world problems.
Can you tell me about the work culture at the Facebook HQ? How does it compare to India?
TLDR; It’s awesome and I love it. Unfortunately, I don’t have too much of a baseline since this is my first job and I can only compare it to my internships and stories I hear from friends.
What I love about it:
- The blameless culture: I deal with incidents all day, and never have I ever seen an individual being blamed for an issue, we learn from our mistakes and support individuals and teams to prevent them in the future.
- Accessibility: I can ping (or walk up to, when that was possible) any person in the company and ask them a question or for help on a topic
- Seniority: is opaque at Facebook. No one knows my level of hire except my manager, the same goes for promotions and pay. This avoids unnecessary competition and toxicity and promotes an amazing open culture.
- Leadership: My manager, when she’s talking about me, says “I support Joey” rather than “I manage Joey” or “Joey works under me” and there’s a major philosophical difference there. The entire purpose of management and leadership is to support engineers to collaborate effectively and have an impact on the company and the world.
What’s your message to current and future students?
Love what you do! Now, this doesn’t have to be very philosophical. Be critical in evaluating things you’re working on. “Do I really want to be an engineer? This project I’m working on, this assignment, this lecture I’m attending…why am I doing it? Why are people trying to teach me this? How is this actually done in industry?” If you don’t answer these questions now, you will regret your decisions way down the line when it’s more problematic to fix things. Have empathy for your future self.