In this edition of Career Series, we have Guna Prasaad, a Computer Science alumnus from the Class of 2015. He’s currently a Software Engineer at WhatsApp and has interned at Facebook, Google, Microsoft Research Redmond and Adobe India! He was also associated with the University of Washington (read on to find more :P). Through his academic and corporate experience, he gives us insights into his journey so far and tips on how to leverage opportunities and venturing into the realm of Software Engineering!
- What has your career path been after completing graduation from IITB?
After IITB, I spent a year doing Databases & Distributed Systems research in Microsoft Research India, and then I joined the University of Washington to pursue a Ph.D. in the same. My area of interest is very closely aligned with the industry; a majority of the problems we solve originate from big companies that have massive data and computation to manage. I recently decided to take a leave of absence from my Ph.D. program to explore roles in the industry. I am currently working as a Software Engineer at WhatsApp (within Facebook), specifically in WhatsApp Payments. I work on enabling users to send money to each other and to merchants over WhatsApp.
- What prompted you to go to graduate school after your final year as opposed to a job?
I did a research internship at Adobe Technologies Lab in my third year summer, and also spent my last year doing research on Databases with Prof. S. Sudarshan. Based on these two experiences, I decided to pursue research. I still was not very committed to spending the next couple of years in grad school. So, I worked as a Research Assistant at Microsoft Research India (Bangalore) for a year. That was a very formative experience, which subsequently motivated me to pursue a Ph.D. at the University of Washington.
- How did you choose the area of expertise for your Ph.D.?
In my opinion, the goal of a Ph.D. is to acquire research skills that will prepare you to learn, master and deploy any idea/technology/skill that falls within the realm of Computer Science. Quite often, people restrict themselves to one area of their liking such as Machine Learning, Databases, Programming Languages, or Theory since a Ph.D. is also about making a novel contribution to the field, which is harder without focus. Personally, I like building things and creating abstractions that further simplify building things. So, I had a natural inclination towards systems research that encompasses a broad array of topics including (but not limited to) Databases, Programming Languages and Distributed Systems. Most of my research so far has been in these three areas. I’ve been fortunate enough to have had access to world-class researchers in these areas both within and outside IITB. Google your CS professors! 🙂
- Software Engineering has a very broad and ambiguous job description. What exactly constitutes the job of a Software Engineer at WhatsApp? Also what are the skills needed to be good at it?
Great question. There is no one clearly defined role/description for a Software Engineer. You can find several classes of Software Engineers in the wild, such as Frontend, Backend, Systems, Infrastructure, Full-Stack, Research, etc. Any system/product, for instance, WhatsApp or Instagram, uses an entire stack of technologies and these classifications usually correspond to which level of the stack you are experienced in or comfortable working on.While each of these may be different in a tangible way, fundamentally they all involve some form of designing, programming, testing, data/error analysis, etc. More often than not, programming is the easiest skill you will acquire. Being able to design a system end-to-end, analyze its strengths/limitations, test rigorously before sending it off to millions of users to use — are the hard-earned skills. In my opinion, communicating both technical and non-technical topics eloquently is a much underrated skill that is key to being a good Software Engineer.
- How did you build the required skillsets for the job? Did you do any internships? Any resources you used to prepare?
I attribute most of my preparation to the time I spent in academic research. Research is great since you get to spend time understanding some fundamental ideas that make up the area of Computer Science while observing and learning from some of the smartest people in the field. Academic training enhances your analytical and communication skills that are key to becoming a good software engineer. However, this is not the only way to acquire these skills – many of my friends directly went into industry and picked up these skills on the job. I personally feel it is easier to do that in grad school since you are there primarily to learn.
I also used the time during grad school to intern at a couple of companies including Microsoft Research, Google and Facebook. It was a great learning experience and every internship taught me so many things that could not be gained elsewhere. I strongly encourage doing internships when you have the opportunity to do so.
- How is hiring in the Software Engineering industry? How did you prepare? Did your preparation vary from company to company?
Companies have been hiring for Software Engineering roles for over two decades and they have more or less perfected this pipeline. You can find so many resources and videos online on this topic. It usually involves a couple of interviews on problem-solving, algorithms and/or data structures. Most “good” companies do not expect you to be the master of all algorithms under the sun or the starry-eyed man calculator — they look for qualitative attributes(such as the ones I mentioned earlier) that suggest if you’ll be a good software engineer that the company can depend on. That said, other people might have more strategic preparation advice – mine was pretty mundane.
- How are the growth opportunities in your company? Are you personally satisfied with what you get to do in your day-to-day job?
Most of these big companies have plenty of flexibility with respect to the roles you can try which is a great opportunity for you to move around and learn different skills. They also provide engineers with ample growth opportunities since they compete for talent and thus “growth” is an important criterion that people optimize for. Satisfaction in your job is a very personal thing. I work in WhatsApp – the fact that billions of users use the stuff you build daily is a great perk of working here.
- What are your long term plans?
I wish I had a better answer to this. There are a couple of things I want to try while I am in the industry. This ranges from working in a smaller company, perhaps a startup; to maybe founding one at some point; to trying out Product Management; leading a high-intensity team of Engineers. Even though my day-to-day does not directly involve academic research, I also have a couple of pet problems that I would like to help solve someday including “programming distributed systems without losing your mind”.
- How do you think the current scenario (COVID-19) is going to impact Software Engineering as a sector, and also the companies?
The impact of COVID-19, unlike most things, is becoming more and more uncertain by the passing day. From my limited understanding, the software engineering industry will have a second or third-order impact from the looming economic downturn. However worse it may be hit, we always need more and better software engineers to build future technologies. Another, rather more exciting, dimension of impact due to COVID is around the work-from-home trend. Most of the FAANG companies have embraced working-from-home. That could mean a lot of these companies may be willing to hire talent from across the world more freely.
- Closing note: A word of advice to the people sitting for placements this year?
I am the worst person to ask for advice on placements. I did not sit for placements in my final year since I had a return offer from Adobe based on my internship, which I declined later to go to MSR India. I was mainly cheering for my friends from the outside during placements. A word of advice though: Know that placements are stressful to everyone. It is an unfortunate by-product of the short timeline and cut-throat competition among candidates and companies. This is just the beginning. Wherever you end, the only direction you can go from there is higher. All the very best!
- Can we contact you? How?
Most of the alums, including me, are happy to hear from and help out students. The best way to reach me is at my personal email email@example.com. In case you do, be as specific as possible on why you are reaching out – email is not the best medium for generic advice.