First written test was conducted by some third party company. It consisted of 15 objective questions from C, Sorting, Data Structures, Big O, compiler and state machine. We were given 30 minutes. Cut off was 12 out of 15 questions. 77 out of 400 students made it.
Written test 2 (Coding), 60 minutes
Three problems to be solved in 60 minutes with no use of compiler. One problem on Linked List, second on heap and third on array. I coded all problems from scratch including main method. I also wrote flexible methods that could work on any kind of inputs (instead of deleting nodes from 4 to 6, it would delete nodes between ‘M’ and ‘N’ ) and handle all corner cases. The result was announced after 20 days. 30 out of 77 made it.
F2F Interview #1, 60 minutes
We were interviewed in groups of 6. Each one of us in a group was given same problem to solve. I couldn’t code the perfect solution in an hour. All I had discussed 6 different ways to solve the problem. I was afraid that I might be rejected in first round. The interview lasted for 60 minutes.
This post was residing in my draft for quite long. I finally got some time out of my busy schedule to refine it.
The first question quickly pops up on why am I writing this post at all. There are already tens of hundreds of similar compilations on web that talks about this.
Well, following reasons compelled me to do so:
Being a GFG moderator, I’ve been getting many requests from readers through various social media (FB, LinkedIn, Quora, InstaGuide) and various mail clients asking for mentorship and guidance on how to prepare for top MNCs like Microsoft, Amazon, Google etc
Having gone through similar journey and witnessing many of my friends succeeding, I feel knowledge should be shared. My experience might be useful for newer generations who happen to chase the same goal as once was mine
Please note that this article is purely a reflection of my learnings, what I followed through the years and my experience. This is NOT the only way to improvise on what is needed – your coding skills, strengthening DS & Algorithms and boosting problem solving skills. I repeat, this is NOT the only way. There are things I couldn’t follow because of time constraints or didn’t follow because I was just not aware. Please comment if I missed anything which is worth mentioning here.
Language has been a topic of debate between aspirants since years. It’s always good to master one language, knowing ins and out of it rather than hopping from one language to other. Why? Because sometimes it might happen to you that when you get a problem, you start wondering what language you should choose and your focus is compromised. When you should really concentrate on problem solving, Implementation comes later. Then while you are coding, you plan to change the language in between. This won’t serve you good in interviews. If you’re able to solve a problem in language ‘X’, eventually you will also solve it in language ‘Y’. Learning a new language is just a matter of time. A language might not be as widely used after 5 years as it is being used now. Your ability to solve a problem will what matter in the long run.
I usually switch between C and C++. If time is at its crunch, I prefer to use STL (standard library functions) instead of writing my own version of Linked List. If I want to develop a project, an android app for instance, I go for a managed language because it is easier. If I want to automate something to save my time, like replying and liking my birthday wishes, a python script is the saving grace. You got the point, right? Master one language and learn others as per requirements.
Data Structures and Algorithms
Data Structures and Algorithms is very important and serves as the backbone of problem solving.
For beginners, Fundamentals of Data Structures in C by Sahni Horowitz is good. After reading it, you should be able to understand basic Data Structures, how they are implemented and fewer examples where they can be used. Don’t expect to learn advanced DS through this. After your basic concepts are clear and you are comfortable implementing them in a language of your choice, you can work on learning algorithms and solving problems.
Many sites (including GeeksforGeeks) present problems in a very adhoc manner with no order of difficulty level. This makes things difficult for beginners because they don’t know the difficulty level of the problem they are attempting. Data Structures and Algorithms made easy by Narasimha Karumanchi is a good read after you are comfortable with the basics. It has pretty good collection of problems organized by difficulty level. Just make sure to try to solve problems on your own instead of rushing for the solution. Once you have a fair understanding of DS and have got some confidence in solving problems, jump to online portals and start solving problems from topic of your choice. GeeksforGeeks is good to start with.
Sometimes, basic DS don’t serve the purpose to solve problems and you need to know advanced DS. Day to day problems like implementing a prefix based search for a phone contact list to finding the dictionary word from a jumbled sequence of characters need special kind of DS. There are many of them – TST, Trie, Suffix tree, Suffix array, Fibonacci heap, Segment tree, Gap buffer, Rope, Skip list, K Dimensional tree and so on. While it is good to know the implementation of these DS, I would suggest to also know when to use one.
So you got a gun, understand how to use it, probably have used it before. If you are going to fight a war, you won’t like to rely upon your amateur experience. You would prefer to practice hard to save your ass. Now try to think it in perspective of problem solving. You know what DS are. But you also need to know when to use one. Welcome to the world of problem solving. You are given a problem and you are asked to solve it. That problem can be anything starting from a simple puzzle to implementing a user scenario. You must have noticed degree of connection feature in LinkedIn. How will you implement it? Does your approach take care of scalability? Will your code crumble when user base increases ten folds? This is the most important skill top MNCs usually look for. How do you approach a problem? How do you divide it into modules? How do you solve each of them and then combine them?
I separated out DP because it is one monster which is difficult to master upon. No matter how many problems did you solve in the past, a new DP problem can always surprise you. The more you will practice, higher the chances will be to find out patterns. Google is peculiar about DP. You should expect at least one DP problem per interview round if you are preparing for Google. Practice DP section from:
Competitive Programming plays a very important role in boosting problem solving skills and ability to perform under time pressure. Do participate in various online portals like TopCoder, CodeChef, SPOJ. Here is a post on Getting started in sport of programming.
Design and testing
So you are good in DS and Algos. You are probably good in problem solving as well and you come up with different approaches with varying time and space complexity. The problem which you solve in Competitive Programming is well defined and has to work under an environment which nobody will probably use. What if you are asked to implement a user scenario. The problem statement is usually vague and you need to discuss a lot to resolve ambiguities. This is where design comes into picture. How will you design a redo-undo feature? What data structures will you use to store history in a web browser? How will you implement auto-complete feature in address bar? Let’s say Amazon wants to build a feature that would resume a video stored in cloud from any device. What data structures will you use? How will you scale up things? Does your design take care of concurrency issues? What about the performance? What if you and your girlfriend share the same cloud account and are trying to play the same video from different devices?
Now you have thought through the design well, have come up with different data structures to use with pros and cons in mind. While implementing, you must take care of corner cases. You must be aware about the integer overflow issue in Youtube video view count. While implementing, they never really thought that the view count can exceed what an integer variable can hold and BOOM, the view count cycled back to zero.
Before a feature goes live, it must be tested well. It is good to practice some test questions as well. How will you test a Insert image feature in MS Word? What about a cut-copy-paste feature? How will you test Temple Run game? Try to write all the possible test cases and how you are going to handle this in your code. Writing a robust code is very important. If you take care of these things at an earlier stage, you can avoid silly bugs (and boost your chances of getting selected in interviews).
Have a sound understanding of Operating System. The dinosaur book by Galvin is a good read. Know how networking works and have insights on DBMS.
First impression is the best. Resume is the first thing that HR will use to decide whether to call you for interview or not. And they have got hundreds of them. So they will usually scan it for 20 seconds to 2 minutes. It should be clean, concise and elegant. Each word mentioned should worth the space it eats. The rule of thumb is if you have less than one year of experience, the size of resume should not exceed a page (with few exceptions).
Few points to note:
Maintain a header to fit info like name, email id, address and contact number
Mention level of expertise corresponding to each language. Example: Proficient in C and good at Java
If you are mentioning a project, write your key learning, impact in the team and . If this project is online (an app), don’t forget to include the link. This will show that you built something that is being used by people . Guess what, this is what companies do, building a product, stabilizing it as per user feedback, taking in new feature requests and so on.
I get many messages asking me for a favour to refer them. When I ask them how much comfortable they are with DS and Algos, they say good enough. Then I rephrase my question to how do they feel when they solve interview experiences at GeeksforGeeks. Either they haven’t heard of GeeksforGeeks or they never read. This is not a surprise. GeeksforGeeks is still growing. But when I ask them a problem on DS by tweaking already existing famous ones, all they say is they haven’t solved this problem before. Please do NOT do that. Dreaming is good, but it will come true only when you work towards making it a reality.
If you are not able to clear the interviews, you will have wait again for 6-12 months depending on the company policy before you can apply again. Now coming to the point, you can apply for a position at Microsoft either through Careers page or through referral. Referral usually bumps chances of getting an interview call because your resume gets to the system through a person Microsoft trusts to be a good engineer. How do you ask for a referral? It’s simple. Forward your resume to someone you know working there. No one will say NO unless your resume is filled with something which doesn’t fit company requirements. Rule of thumb is we believe in solving problems and if you are good at it, we would love to see you here. Remember, everyone wants to work with a smart person. And this is usually true for any company, not just for Microsoft.
Do’s and Don’ts
Practice, practice and practice
Make a habit of writing clean and readable code (avoid variables names like i, j)
Make sure to handle all corner cases
Use pen and paper to practice code. In interviews you have NO access to a compiler
Don’t mug up the solutions. Try to solve on your own
Think of different ways of solving a problem and thoughts on why one should be preferred over the other
I have answered few questions related to interview preparation on Quora. You might find some content missing here in blog and it is intentional to avoid the duplication of efforts. Please read my technical answers here.
Resources (which I haven’t talked about):
Cracking the coding interview by Gayle Laakmann: A must read once before interviews. It covers aspects like what interviewers expect from you, how to deal with behavioral questions and few interesting problems. It will change your thoughts about design and test problems for good
GeeksforGeeks: A bible of problems (with well explained solutions). Make sure you do NOT rush for solutions. Try to solve problems on your own no matter how much time does it take. With time and honest practice, you should get better
CareerCup: A huge collection of problems. Though you can’t rely upon solutions, it provides a rich community for discussing problems. I found it good for discussing design problems
Project Euler: A heaven for mathematics lovers. You solve the problems using some formulas on paper and then write code to get the final solution. Solve at least 40 problems from this site.
There were countless moments of mood swing. I already had an offer from Microsoft. I wondered if I should try for other biggies like Facebook or Google. Bottom-line was, I had fallen into procrastination trap. I was shy of 9 months to join Microsoft. I wanted to enjoy life. I wanted to take a break. My then friends at Google and Facebook had mixed suggestions.
“Dude, you should really give FB a try. I can refer you and interview would be scheduled in 2 weeks”.
“It’s time to explore. Once college is over, you are never gonna get it. This is the time to have some fun”.
Out of those precious 9 months, I spent 5 months at home doing almost nothing. Major chunk of my time was invested in only eating and chatting. When boredom seemed to kill me, I just used to compile an article on GeeksforGeeks. It was fun.
Sometimes even a simple mail gives you goosebumps. I had a message from Google recruiter mentioning my profile looked interesting and if my interest was aligned, they could commence the interview process. With the mail was attached a video covering their expectations from a candidate in Google. I thought of giving a try to Google. But my practice was at a slower pace. Writing articles and solving problems were just to kill time and pure altruistic. Google is a big brand. I definitely wanted to try my luck there. It was just not the right time. It would be a pleasure to enjoy Microsoft etiquette for the time being.
July 13, 2013
The next phase begins
A long rest had finally come to an end. Nothing could make me happier than to see a person waiting at the airport holding a placard with my name imprinted on it. He directly drove us to Rejenta One. A month stay in a 5 star hotel, dedicated car, a driver, couple of good friends and new city. Whole world around me was screaming to explore it.
July 15, 2013
First day at office, mixed feelings, exhilarating and scaring at the same time. Everyone I met seemed to be pretty smart. I got Visio team, a part of Microsoft Office div. It was embarrassing that I was going to work on something I never heard of. Visio is an enterprise software not so famous among students. It captures a huge market for clients looking forward to create flow chart and diagram. In a nutshell, it is something that simplifies tens of millions of human life.
When I had a feeling that I have learnt enough to fasten my deliverable, a reorg happened and devalued most of the things that I worked upon. As they say, only skills acquired through the process matters in the long run, skills to understand and solve a problem. New team and new manager, it was a tabula rasa. Satya’s vision to focus on mobile and services landed me in an Android team. A familiar environment and some prior experience, starting was as smooth as butter. Nightmares begun when I was assigned a problem to apply effects on an image. The office codebase is huge, medieval and it’s an ocean if you don’t know where to start. I still remember those hard moments when I was just looking through the code to pick hints, searching keywords like pImage, IImage in the hope that at least the naming convention would lead me somewhere. It was one of the most fast paced project and I was (un)lucky to be a part of it. Learning was great and sleeps were compromised. My team owned low level Graphics rendering stuffs, everything that you see on screen.
Work hard, party harder
Good work should be rewarded and celebrated. Microsoft knows it. It’s not a small thing to book airbuses for 300 people to fly to Goa and stay in one of the costliest luxury Hotel Leela not to mention heavenly parties and unlimited food and drinks. This is how we celebrated our Android release and combined it with an out bound training.
As I am writing this, another reorg has landed me in Apple team. Good thing is I have got chance to take a closer look at apple products and its OS. Some of the nasty rendering bugs still give nightmares. It becomes worse when you get response on the top of your fix mentioning that your change would be impacting X millions of customers. I have learnt that this is part of life and as long as your learning curve is steep, things would just work fine.
Life at Microsoft in a nutshell
It’s been 3 years since I joined Microsoft. 3 projects, 5 managers, lots of learning, challenges, obsession to achieve the best and never ending work. The journey has been no less than a roller coaster.
Every year or so, a reorg happens and either the project or manager changes. Every time It’s a tabula rasa. As they say, change is the only constant in life. Good thing is you always get to work on something new with new people, diversity at its best.
In office team, we spend most of the time reading code, talking design stuffs and less time writing real code that goes in production. The impact is so huge that we can’t afford critical mistakes.
Effort is important, but knowing where to make an effort makes all the difference!
The type of work can be summarized by a very short story.
A giant ship engine failed. The ship’s owners tried one expert after another, but none of them could figure but how to fix the engine.
Then they brought in an old man who had been fixing ships since he was a young. He carried a large bag of tools with him, and when he arrived, he immediately went to work. He inspected the engine very carefully, top to bottom.
Two of the ship’s owners were there, watching this man, hoping he would know what to do. After looking things over, the old man reached into his bag and pulled out a small hammer. He gently tapped something. Instantly, the engine lurched into life. He carefully put his hammer away. The engine was fixed!
A week later, the owners received a bill from the old man for ten thousand dollars.
“What?!” the owners exclaimed. “He hardly did anything!”
So they wrote the old man a note saying, “Please send us an itemized bill.”
The man sent a bill that read:
Tapping with a hammer………………….. $ 2.00
Knowing where to tap…………………….. $ 9,998.00
There were many times I thought of a switch. The thing that always seemed to hold me was the thought that I would be doing the same kind of work that I am doing here. Besides, I am happy here, living life as I always wanted, trying out different things, exploring.
GeeksforGeeks after Microsoft
I usually get messages like, Why my contribution to GFG has slowed down. Is it because of my busy schedule?
Seriously speaking, the passion which was ballooned inside me 3 years ago has faded. Coding is not the only thing that fuels me. In my college days, I used to code for fun. Whenever I found myself struck by the boredom lightning, solving a new problem or brainstorming a better solution was the saving grace. My contribution has been greatly compromised and now if I write, my focus is more on the quality rather than quantity.
Sometimes I ask myself, what do I know except coding? Is my life all about staring at the screen and writing geeky characters? A lot of things are there in the world and you won’t know what you would like the best until you give it a try.
For the past few years, I had been wondering what my life is meant to be, what are the things out there which will render me with greatest pleasure, what is the secret ingredient of being happy.
In the last part, we read the story of a boy who wanted to live his dream no matter what the cost. We will resume from the moment Microsoft campus visit was announced.
When your friends are celebrating hard, throwing parties, while you try to avoid them and lock yourself instead, questions like this are obvious.
“Which is your favorite company?”, my friend asked.
“You’ll know soon”, I murmured.
It is difficult if you are in a non-enthusiastic environment where people around you are even scared of dreaming big and setting higher goals. In case you speak loud your aspirations, they try to pull your legs. There was no space for mistakes. Opportunities knock rare often and fortunately I knew it. I was gonna get only one chance. That’s it. If I miss it, I miss it. This could be a regret I would have to live with. Other good companies in line offered half the money Microsoft did, leave aside brand value, perks and work culture.
The time had arrived. It was the same day and time Hogwarts Express leaves from Platform 9¾, 1st September, 11:00 AM sharp. If I wanted to board the train, I had to cross the barrier first. And that barrier was written tests. The train would then test your patience, perseverance, hard work, skills in its journey. If you failed in between, you had to board down. If you passed, it would directly lead you to Microsoft. Like Harry, I too didn’t wish to miss it.
It all began
It was a hectic morning. There was a big rush in washrooms and people were running around. The first written test was pretty easy. 15 objective questions and 30 minutes of time. 77 out of 400 made it. The second written test was scheduled the very next day.
I and Abhinav were sitting next to each other, barely talking to anyone. We had to code 3 problems in 60 minutes on a text editor leaving any scope of compiler correction. You know it went well when you wear a smile after you finish. Luckily, We were able to solve all problems.
Rumors were in the air. Microsoft usually takes time to evaluate the written coding round. We were not sure when the result would be announced. Honestly I wished it to be soon. The sooner, the better.
The quiet before the storm
I was gravely quiet most of the times. May be because I was thinking about the problems, and about the interviews, and about the list of things to do if I get selected. Millions of things were itching in my head.
Solving interview experiences was kind of comforting. “If this is what Microsoft asks, we should do well”, Abhinav and I always said things like this.
Year 2012, September 16
Boarding Microsoft express
I have never been an early bird. Still I managed to wake up at the crack of dawn. We gathered in the auditorium at the first blush of the day. Result of the written was announced. They shortlisted 30 out of 77.
Four years it’s been, and yet, here I write as if it were only yesterday. I remember every small detail, every word I spoke and each discussion I had in interviews. Either my memory is not that fragile or that was quite a big day for me. I still don’t know the answer.
I hadn’t eaten anything since the morning. The spirit was keeping me up. One group interview followed by two rounds of face to face interview each lasting 60-90 minutes and fear of losing it anytime as if a sharp edged sword was hanging across my head was enough for one day. They kept on rejecting candidates as each round progressed. The number trimmed from 30 to 14 to 10 to 5.
In the third round of interview, he said I had already proved I was a great coder and he wanted to check how I perform in other areas like design and testing. I was also asked to showcase my passion for technology. We discussed about various products, their design, why they were designed that way and why I liked them. It was fun discussing the technology (Gap Buffer DS) used in Text Editors, automata and compiler. I can understand his love for these as he was working in Visual Studio team at Microsoft. He then moved on to discussing things like which role I wanted and why so. He saw same passion in me that he observed in one of his friends and he was doing really great at Microsoft. This was the longest round and lasted around 90 minutes.
That night, when I was in cafeteria to catch sandwich, I stumbled upon a guy. He asked me how would I like to be beaten. Funny part was, we had hardly talked in 3 years of college. The same day I got few congratulation mails, although 2 more rounds of interviews were scheduled on the next day. I was very close but I was still one step short of milestone.
I remember those silly thoughts that popped up our minds. When we’ll make it, we would have two refrigerators in our house. One for food and other for drinks. When we’ll make it…. The food in college hostel was horrible. If you had Veg Manchurian once, you would put all efforts to stay away from food like that your whole life.
Year 2012, September 17
Two more rounds of battle
When your name starts with 2 A’s, you are always the first one to face everything that calls for first name protocol. I suffered it my entire college life. I wasn’t spared in Microsoft interviews either. Each round of interview started with me. Abhinav was the last. Those in-between were trimmed down.
I was just on time for remaining two rounds when they surprised me to know that my one round of interview was cancelled and I had to face last round with hiring manager on Skype. Unlike an HR round, it was purely technical focusing on design, testing, Big data, Graph and Social Networks. We discussed many things few of which I had already covered in GeeksforGeeks posts. Thanks to Facebook for writing technical details of architecture they use which I was lucky to read. It lasted around 90 minutes.
Time seems to freeze when you’re waiting for it all along. Nights were restless. Days were better neither. Mood swings were at its peak. Right from the day Interviews were over, everyone I stumbled upon asked the same question, “Hey! When the result is coming?” or chirped comfy words like, “I know you’ll make it”. It was eerie and I just didn’t know how to react.
Year 2012, September 24
The BIG day
It was an Intel day. Although I wasn’t interested, I suited myself up to check what they had for me on the plate. People were getting called for interviews and I was waiting for my turn reluctantly. I was just hoping for a magic, to know the results of Microsoft interview. This could push me to do fair in Intel.
And then, I heard my name. “Aashish and Abhinav! Are you there? Please come on the stage”. I wasn’t sure what had just happened. Abhinav was sleeping in his room. He wasn’t even there. Every pair of eyes was staring at me as if I was being X-rayed.
“Congratulation! You have made it. They have just mailed us the result.”
“Microsoft has selected Aashish and Abhinav”, they boomed on microphone after a pregnant pause.
The auditorium burst in cheers and claps. Oh Buoy! That was the moment. I was feeling like a celebrity. Everyone was shaking hand and congratulating. I was on cloud nine.
All I wanted was to run away to tell my parents that they could finally be proud of me, to tell Abhinav that we had done it.
People were running after us. This is a tradition. They beat you with belts on happy occasions. Happier the moment, harder you’re beaten up. You can hide buried treasure or a winning poker hand. But you can’t hide the true happiness. It was all around. Between shaking dad’s voice soaked half in tears & half in happiness and mine out of control flowing emotions, I was feeling no pain.
I was bombarded with messages, mails and calls. For once in my life, I wanted to be alone. It was my time. I wanted to live it. I wished to freeze it. I wished to hold it. Christmas had arrived little early for me and Santa had bestowed on me. It was the best birthday gift I could imagine. It was a magic. They say, all magic comes with a price. And I think I had paid the price.
There were few awkward moments when Abhinav and I overheard things like, “Look, 32 lacs are going”, while we were wandering on college roads.
Year 2012, November
We were in news
It had been almost two months since result was announced. I was on a long vacation, sleeping at home when I got a call from placement department. They wanted a picture of me to feature on the site. Few days later, my cousin brother called me to tell that he was holding college prospectus featuring picture of me.
The diabetic sweet deal
There is nothing much to do after interviews. Scoring GPA in college was least of my interest. I wanted to learn something which could smoothen my path in company but my friends on Quora advised me not to bother. Most of my time was spent in eating, sleeping, chatting and GeeksforGeeks. I was having a word with one of my friend when he asked me if I was going to join Microsoft or GeeksforGeeks.
As usual, Sandeep and I were discussing about GeeksforGeeks, plans for its growth, revenue model etc. He asked me my thoughts about career. “Seriously, the way GeeksforGeeks is going, you might like to join full time. You can choose designation of your choice – CEO or CTO”, he proposed. This was overwhelming, a very sweet deal indeed. Sandeep’s offer was very difficult to reject. However, a lot of things were on stake. GeeksforGeeks was in very early phase. Working in it full time would render me literally poor. Microsoft was a brand even my grandfather talked about. It was really a tough choice to make. I decided to spend few years at Microsoft to learn things, to learn how stuffs work, to learn something industrial. Microsoft was changing tens of millions of lives and I wanted to be part of it.
If you ask me, whether I regret my decision today. Well, I ain’t sure. Life is made up of small moments and each moment has its own pros and cons. A choice doesn’t come with a warning sign. Sometimes, you don’t know what is going to happen. Sometimes, you don’t wanna care. Sometimes, all you wish is to live the moment. Today when I have nothing to do or when I am really pissed off at work, I think of that time. I get lost in a reverie imagining how my life would have been changed. But thinking about it won’t change a single dime of my life. Even if I join GeeksforGeeks today, it won’t be the same it was 4 years ago.
What do I feel when I look back today?
Decisions you make lead to doom or fame
I guess there is no one to blame
Sometimes you rise, sometimes you fail
But things you learn are worth a hell
There is no secret ingredient. Healthy dose of faith. Genuine commitment. Sharp focus. Hard work. Everything should be put in right proportion. I didn’t do anything different. I believed in myself and followed my passion. My life has been a roller coaster and I enjoyed the ride thoroughly. You make mistakes and you learn from them. It is part of life.
Our goal at GeeksforGeeks was to maintain quality content. Few of the readers asked for content to focus on basics. That’s how GeeksQuiz idea was born. It was Sandeep’s brainchild. I wasn’t interested much in site development. I chose to contribute to content instead.
Year 2013, January 28
The most awaited offer letter
I don’t know why most of the comms Microsoft did, happened to be in the early morning. The HR inboxed me the most anticipated offer letter. Three days after we received offer letter, they shot another mail inviting us to an event “New Hire’s Day”. It was exhilarating and hell lot of fun. I have documented my experience here: My experience of New Hires’s Day at Microsoft
Year 2013, Summer
What can be more difficult than solving a problem? Well, creating a problem. IIIT-Bhubaneswar had a tech fest in summer. They asked GeeksforGeeks to organize the coding contest. Designing problems was very challenging. I had never thought from the perspective of being on the other side of the table. There were many things to be taken care. Problem should be new. Domain of problems should be proportionally distributed in different difficulty levels. But how do you decide the difficulty level? If you’re the problem setter, you happen to know the solution. Does that mean the problem would be that trivial for others as well? Have you ever wondered how they categorize difficulty level of Sudoku? I will leave you keep thinking. It was a different experience altogether.
They had also asked for a guest lecture in the college. Since I was in the town, Sandeep asked me if I wanted to go. Sadly, I was not a good public speaker. One of my part wanted to go, but the other was pulling me back due to my fear of stage. Unfortunately, my other part won the battle and I ended up watching Batman.
Before I dive into bragging about being a Microsoftie and what is life at Microsoft all about, let me ride you through my journey in life so far, my thoughts as a child which inspired and helped me to become what I’m today, choices I made at various stages of my life, which I sometimes adore, sometimes regret. But if you ask me, “Am I happy today?” I would probably say “Yes”. Sometimes life is not all about making choices. Sometimes choices can go all wrong. But what matters is how you react to those wrong choices. Whether you keep on cursing God or whoever played a role in making that decision or you bounce back by working continuously until you make it right. Failures are important. It tells you that you are not invincible. It tells you that you are human. It’s okay to fail. Harder you fail, harder you work and sweeter the success is.
It was a hot Tuesday noon. Sun was at its peak and I was almost sleeping. A question suddenly broke my reverie.
“What do you want to become when you grow up?”
This question was asked by my class teacher Nripesh Sir. He was expecting each of us sitting in the classroom to have a goal in life. Some said doctor, some lawyer, some engineer, some even said a SOFTWARE engineer. I didn’t know what a software engineer work was. All I had heard was Bill Gates. Thanks to the local regional newspapers that keep on publishing about him. That he is the richest man and he founded Microsoft. And Microsoft develops software. So I was under impression that if I wanted to become rich, the formula was to be a software engineer. I always day dreamed about becoming a Microsoft engineer. Little did I know that once an imagination would become a reality.
An innocent small town boy who had never left home except with parents and siblings on summer holidays, was so much excited to explore the outside world although he had no clue how he would survive alone. Like many kids, he had heard about IIT being a very prestigious college. He was sure that his life would be set if he scored a good rank. But how? He had failed twice in Bansal Classes(an institute offering IIT entrance preparation) entrance test. He started having very bad feelings about his capabilities. His mother always praised how much intelligent he was since his very childhood. May be academics and competitions are two very different things. Needless to say, his parents had very high hopes from him. Somehow he got scholarship in Narayana IIT Academy. He was going to study in the capital city of the country, New Delhi.
Year 2008, May 30
Our small town boy was no more that innocent and childish. He had learned many things in life. Unfortunately, not that thing for which he had spent his parents’ hard earned money. All thanks to the world of internet he had been exposed to and 100% bonus offer in cyber cafes. He had just passed higher education, failed to score any rank in IIT-JEE and ready to face taunts of his relatives and neighbors.
Year 2008, June onward
Everything seemed to be lost in his life. He had lost an important match. But even Sachin Tendulkar sometimes doesn’t play well when it’s not his day. May be he should give another try. In the last quarter of the year, Super 30 conducted its test. It was a huge opportunity for him to bounce back. After all, his cousin brother was pursuing bachelors from IIT – KGP and he had too learned the tricks in Super 30. Months of patience and four rounds of test paid off. He had made it. People around him had started recognizing his potential.
He didn’t join Super 30. He knew life won’t be easy there. He would miss delicious cuisines. And if he was able to crack Super 30 which gives near to 100% success rate, why can’t he crack IIT entrance on his own?
Note: Super 30 is a non-profit organization providing free food and education.
Fast forward 7 years, It was time to choose a college which would shape my career and hence my life. A 4 years of time was to decide my next 40 years of life. Sadly, I didn’t have any good option. I was in waiting list in JEE and couldn’t score a rank in AIEEE which could secure me a good college. I and my friend Kanhaiya were just scrolling through the placement records of colleges in our league. I was able to score 3 digit ranks in SRM, CUSAT and KIIT. And the one news locked our tired eyes –
“MICROSOFT selects eight students from KIIT”
and the content highlighted –
“Microsoft personnel making round the country’s premier institutions for hunting the talents to join them, were ecstatic finding the fountain of talent in KIIT”. The news is below:
That was it. If Microsoft visits a college, it couldn’t be that bad. We had locked our choice. After all, this is what we wanted all along. This is what I wanted all my life.
Even 2008 recession couldn’t affect my decision. My choice was so BOLD that even though people around me were opting for non-computer science streams, I was stuck with my decision of moving ahead with CSE in the counselling. Funny to hear, I was the first one (All India Rank 435) to register for CSE stream.
They say, “It’s never easy to get what you want. And if it’s easy, your goal is not BIG enough”. For a guy who was seeing a laptop first time, it wasn’t easy to get adapted to coding and problem solving world. It was frustrating, challenging and no less than a nightmare. When his friends used to code a simple problem in 10 minutes through 3 different approaches, he struggled hard for 3 hours for the easiest approach. All he knew was if he wanted to be the best, he had to work fucking hard and manage his time smartly.
Partners in crime
It was a long train journey. There is nothing much to do when you are traveling with a friend who is crazy for Physics, Electronics and Probability. That crazy friend was Aakash, my roomie. Since third semester was about to commence, there were many known faces traveling in the same train. Aakash introduced me to a guy named Abhinav. He was the guy I had heard about from few of my friends. He was famous for applying his learnings to create small games.
We were alike in some respects, no prior coding background, big foodie and fan of TV series Crime Patrol. The only difference was that I wanted to build something, and he was already doing it. I was hugely inspired from what he was doing. From that moment onwards, we developed few projects together, studied together and prepared for companies together.
It was the time when I always had a feeling of something burning inside me. It was passion. Thanks to my DAA teacher Biswajeet Sahoo Sir and C++ teacher Narayan Sir who exposed me to the beautiful world of Algorithms and problem solving. I never looked back. I kept on practicing from various online sources. It was the time when I came across GeeksforGeeks, an online portal created by geek for geeks. I just fell in love with the way it presented the problems. The more time I invested into it, the more I learnt. No other teacher had taught me that many things than GFG did.
First milestone towards success
Harry… Harry… Someone was calling me. Oh! I had just slept. Aakash wanted to tell that a college in Bhubaneswar was organizing a coding competition. Many of our friends had already left for registration. Somewhere between awake and asleep, I agreed to give it a try. We registered ourselves with team name “e-Programmers”. There were around 200 teams participating in the contest and best 2 teams were to be declared winners. 5 hours of coding and hell lot of frustration, we had lost our hopes. Already 4 teams had left with smiley faces which meant we were done.
The next day we got call from Silicon Institute to participate in the result announcement ceremony. And then they announced… Whoa! That feeling was beyond words. Abhinav’s team came first and mine second. Yes, we were the best two performers.
Once I was looking for a summer internship. Theory of Computation teacher Vidyadhar Sir announced in the classroom that there was an opening for Natural Language Processing intern in IIIT Hyderabad. So if anyone was interested, (s)he could contact him for further details. Well I met him post class hours asking many questions related to intern position and his views about the importance of that in my career. He suggested me to hunt down this intern offer only when my interest lied in higher studies and research field. “Why do you not prepare for something that looks for guys with strong coding and problem solving skills?”, he asked. Like Microsoft and Google.
Moderator at GeeksforGeeks
Today when I look back over my life, I just can’t believe that a person can be that insane to chat 10 hours a day and that too only technical stuffs. Yes, this can happen when two crazy people with similar mindset meet. While solving problems on GeeksforGeeks, there were few articles that were so well compiled and informed that I just couldn’t help myself but to contact that guy. I shot him a message on Facebook and this is where we connected. I was very active on GeeksforGeeks. And he was kinda impressed with my thoughts and approaches of solving problems. Our discussion trails were everywhere – Facebook, Gmail, Quora, CareerCup, GeeksforGeeks, StackOverflow. I had never met anyone with so much knowledge, zeal and thirst for coding & problem solving despite the fact that he was an Electronics graduate. For him, problem solving was a time pass. My passion grew with time. Every discussion with him reminded me how little I knew and I needed to manage time smartly and keep my learning curve steep. I started practicing insanely on GeeksforGeeks, CareerCup, LeetCode, SPOJ and other online portals. Few problems took me weeks to solve. I solved problems that were pending since more than 6 months in the discussion forum. That’s when it all started. My solutions started publishing as GFG articles, one after the other.
GeeksforGeeks was growing fast. They were looking for someone who could participate actively in the discussion forum, point out improvements in guest articles and write unique content to enrich the site.
One evening, I got a mail from Sandeep, GFG founder asking if I would like to join the team. I couldn’t think of a single reason why I shouldn’t. GFG was already impacting many lives and it could help me to connect with other geeks. Although it was a non-profit initiative, I was willing to join. I was just 22 and it was the best time to learn and grow. In short, it was a time when my thoughts were not aligned with Joker’s.
But, it was so good to see my name on GFG About us page:
Placement talks were all around the hostel corridors and hallways. Even scorching hot summer couldn’t lessen the spirit. Everyone seemed crazy.
15th August, yes that’s when first company visited our campus. Aricent was kind of mass recruiter, but better than mass recruiters like TCS, Wipro. At least this is what we were told. They conducted a written test, a group discussion, a technical interview lasting 45 minutes followed by an HR interview of 25 minutes. Written test had aptitude, English comprehension, vocab, technical each with individual sectional cut off and individual time allocation. They asked almost everything (C, C++, OS, DBMS, Digital Electronics, Microprocessors, Comp. Org. & Architecture and DS) in technical interview. I think their goal was to cover breadth and depth, because when I thought I was doing well in DS, my interview was over. Final result was announced on 17th August. 151 had made it.
It felt good that I had somehow made it to Aricent. I was skeptical at first because of two reasons.
I didn’t want to work in a networking based company. Networking was never my cup of tea not because I couldn’t learn it, but because I didn’t like it
I had demonstrated good coding and DS skills. I was asked twice that why am I not targeting big MNCs like Microsoft and Google. It was very likely that I would NOT join Aricent if I get a better offer
Although Aricent was a good start, it offered very less salary. It could never fulfill my necessities. With 6 lacs of education loan on head and frequent reminders from bank manager to keep sanction letter always in pocket in case it helps me to concentrate whenever I lose focus, I needed to do better. You can say the reason being my passion in coding and problem solving. But the truth was that I had to pay 21k per month to the bank. This scared me more than anything that with so less salary in hand, how was I going to survive in inflated cities. I was simply not happy with Aricent.
One fine evening, there was a notice from placement department. Microsoft was to conduct first round written test on 1st September. It was perhaps the biggest news for the college and aspirants alike. Everyone was buzzing about it. Why shouldn’t they? After all, Microsoft was visiting the campus after 5 years. Nothing could make me happier. The time had come to showcase my hard work and my experience which I had garnered through the years. Lady luck had finally shone upon me.