Vidya Sagar Sankaranarayanan is a 4th year computer science student at SASTRA University, Thanjavur. Sagar is passionate about coding and solving problems in general. He’s served as Mozilla’s campus representative. He’s also the guy behind AstroLogic, an application for Symbian mobiles that has garnered a huge number of downloads in the Ovi store. Sagar recently interned at the Facebook Headquarters in Palo Alto.
In this interview, Sagar talks about everything ranging from his passion for coding, and the road to the internship at Facebook. He also talks about life at Facebook and how his typical day as an intern was like.
(Disclosure: The interviewer is also from the same University)
1) First, tell us a bit about yourself. How did it all start off? When did you decide that coding is the thing that you wanted to do for life?
These are the only two types of coding that I’ve done in my life so far:
- Data structures, and algorithmic problems solving
- Developing a product, meant to be used by an end-user
I was focusing on the former during my entire high school days, and found it very addicting. During that period of my life, TopCoder contests were the only, and the most important events in my calendar.
What made them addicting the most was the ability to learn from the world’s best coders, being a total n00b. (In fact, I still am a total n00b at TopCoder)
With a lot of guidance from my brother, a stroke of blessing/luck, and a bit of a skill by not missing a single contest for two years, I managed to be a world finalist in TopCoder High School Tournament, 2008.
That trip defined my life. After I met the world’s top 50 high school programmers during the finals at Purdue University in Indianapolis, I knew there was nothing I enjoyed more than coding, yet.
The student club GLOSS (GNU/Linux And Open Source in my college, SASTRA) played a pivotal role in why I started coding in the second category. More specifically, during the good old days of Sun Microsystems, when we had a great campus ambassador named J. Dwarakanath. Watching him build a lot of software/applications that made the lives of a lot of people easier in campus was a great source of inspiration for me. The first software that I built was a game in JavaFX, called “Shoot ‘em up”, which I built only because of a tech talk on JavaFX, given by one of the best engineers, Praveen Mohan. Praveen was then working on building JavaFX itself, and it was organized by Dwarak as a part of GLOSS. All the encouragement from Praveen, Dwarak, and the whole JavaFX team got me kick started during my first year, and after building it for a couple of months, I landed #3 in India in the “Code JavaFX” contest conducted by Sun Microsystems (and a honorable mention in the international final round). Since then, it has been a joyous ride in the second category.
Honestly, I still believe one should focus more on  during his/her college days, and less on  until entering a job. I have decided to focus only on  during the last year of my student life.
2) You’re ranked as one of India’s top programmers on TopCoder. What makes you tick? Do you practise code everyday?
As I mentioned earlier, honestly, I am still a n00b at TopCoder. So, I’ll get to the rest of the question 🙂
The one hour and fifteen minutes of the online coding round has always been an adrenaline rush for me. The fact that you are going to compete with the world’s best coders makes it so much more exciting, and intense at the same time. Everything I learnt about competing in such contests was from the algorithm tutorials at TopCoder. Besides that, constant practise everyday, guidance from my brother, and reading the solutions of hundreds of coders who are way better than me helped.
And yes, I believe coding everyday is a must for me, to stay in good shape for such contests. I tend to fall in code quality if don’t code for a week or two.
3) Tell us about the road to Facebook. How did you manage to secure an intern position there? Was the process tough? Or was it just a piece of cake?
I got my resume forwarded to Facebook HQ via a referral from my brother, who is the co-founder and CTO of LikeALittle. Fortunately, this whole mix-up of achievements in the two coding categories that I mentioned earlier was recognized and appreciated by Facebook.
The entire process happened very quickly. In just about two weeks, I had 3 interviews. The first one was mainly centered around my software development skills/achievements, with more focus on how I got “AstroLogic” to scale step-by-step, from a few users to about a million who use it worldwide now. It ended with me talking about a bunch of other stuff that I had built, and a brief coding round in data structures.
The other two rounds of interviews were purely coding rounds, with stress on writing good quality efficient algorithmic code.
The first one was a tad easier, while the other two were pretty intense.
4) How was your internship at Facebook like? How was a typical work day?
This internship at Facebook has been my life’s best learning curve, yet. I just love the fact that I got to work with the world’s best engineers (or hackers, as it is the preferred term) everyday, at the world’s #1 ranked tech company. The intern group here typically consists of students from MIT, Princeton, Stanford, Harvard, etc.
The work culture (again ‘Hack’ culture – trust me, we have entire buildings painted with “Hack” on the outside) helped me bring out my best, and also made me completely feel at home.
My mentor, Jan Jezabek is from Poland, and is in the ~ 99.5th percentile among all the coders in the world.
This was my usual work schedule:
- Wake up at 11 : 20 AM, go to office at ~ 12.
- Get the work for the day laid out, and have lunch. If needed, discuss with others in the team. Followed by some light coding and code check-ins of what I wrote the previous night. I usually got back home quite early, at around 4 PM.
- A sweet nap from 5 PM to 8 PM 🙂
- Hack into the night, from 8:30 PM till about 5:30 in the morning.
And, I just loved it! 🙂 Especially because of the fact that no one told me when to do what, and as a result, I chose the most productive schedule that suited me the best.
5) It is common belief that the top internet companies let you work autonomously, and you’re given a lot of liberty to work on things you like. How far is that true?
That is very true. I enjoyed complete freedom and liberty to only do the projects that excited me the most (as long as I do a minimum amount of work off course). Especially at Facebook, every engineer is given a lot more responsibility and freedom (again, as a consequence of its ‘hack’ culture).
Interestingly, at Facebook, there is no Q&A phase at all – the author of the code is responsible for its quality, scalability, and maintainability over time.
6) How much of an impact has the internship created on you? What are the two most important lessons you learned at Facebook?
As I already mentioned, this internship has been the best learning curve of my life yet. Not a single day passed by without me learning a bunch of lessons – on code quality, maintainability, and problem solving, on the ‘hacker’ approach, work culture and life style, and the personality traits that are essential. I am sure that it has redefined how I lead my life ahead as a software engineer, and I feel very fortunate to have gotten this opportunity at the most crucial learning phase of my life.
The most important lessons that I learnt:
- The only way to learn things quickly, and effectively is to have it in our minds 24×7. I literally sleep with problems that I need to solve running on my head, and wake up to code the solutions the next day. In my opinion, it only comes with complete dedication. (learnt this from my brother)
- Not all great coders are nerds. People and communication skills, and a strong personality are in fact almost equally important in life.
I am reading a couple of books, and trying to be more social — quite happy with the results so far, and hoping to get better over the next couple of years too 🙂
“Don’t spend all your time on training or studying – this way you’ll probably become very exhausted and unwilling to compete more. Whatever u do – have fun. Once u find programming is no fun anymore – drop it. Play soccer, find a girlfriend, study something not related to programming, just live a life. Programming contests are only programming contests, and nothing more. Don’t let them become your life – for your life is much more interesting and colorful.”
7) Finally, whats advice would you give for someone who is aspiring for a career in game-changing companies like Facebook, Google and the like?
World’s top companies like Facebook, and Google look for pure passion with strong fundamentals in writing efficient code the algorithmic way.
They also look for the ability to quickly analyze and solve problems, and learn things on the fly – because they generally encounter a lot of ad-hoc problems on a daily basis.
This combination essentially maps to a person with sound fundamentals in computer science, along with a very quick learning and problem solving ability at the same time.
(Interestingly, such people often enjoy “learning” so much, and acquire a very wide range of skills as result of this personality trait — Google has Olympic athletes in fact!)
So, to summarize, a very strong foundation in the core aspects of computing, such as, algorithmic efficiency, data structures, and the ability to write quality code is a must. I believe this only comes with constant practise, and a lot of participation in world class coding contests, such as at TopCoder.
Killer Tech Tips wishes him the very best. (Disclosure: The interviewer is also from the same University)