Showing posts with label internship. Show all posts
Showing posts with label internship. Show all posts

Friday, May 25, 2012

I'm Feeling Lucky!

I have completed my college life. No more exams, no more results, no more bunking first half and sleeping and lots of other things will be no more. At this point, I want to take some time out, share the experience of my amazing roller coaster ride and thank the people who mattered and have helped me get where I am today (and where I will be in a few months :-P).

The Dream

Just like every computer science student, I had a dream too. My dream started along a bit early. Right from my school days, I had two role models. I had only one dream. I found a few 6 year old messages in my gtalk log where i was cribbing to my friends about my dream of working at my dream company at its headquarters.

The Start

I got through a really good job during my on-campus placements. It is at this point most people get carried away, but somehow i managed to not fall into that trap and thereby miss my dream. I chose to do my final semester internship in another company so that I will have bandwidth to explore other options. Btw, the workplace where I am doing my internship is awesome (this place is so awesome that I just can't stop boasting about it whenever I talk of internships).


Ok coming back to the topic, naturally the first step was to prepare for other companies' interviews. I started doing that and decided to apply to a company by end of March. Thankfully, one of my friends knew a person there who could refer me and get me an interview (btw, my friend happens to be a really wonderful human being who has helped me whole heartedly whenever i needed any help. He also happens to be my college senior and i am heavily indebted to him!). Off went my resume into the company and i got an automated "thank you for your interest in us" email.

The Phone Call

Then the recruiter called me and was ready to set me up with interviews beginning with a phone screening. I was told I would get a call by 11 AM. The interviewer had some issues in dialing in my number so it got delayed by 10 minutes. One of the worst 600 seconds of my life where I was tensed to the core. Once the interviewer called me, time flew off. Einstein was right.

I felt quite confident. Eventhough i didn't nail the interview, I felt it was far away from being tagged along a tweet as #pathetic. Few days later, I got an email from my recruiter stating that I have cleared the phone screening and will have to visit their office in Hyderabad for on site interviews.

The Visit

I was plagued with sickness and was in a severe low health for a few days before the interview. They flew me from Chennai to Hyderabad on the evening before the interview. I have been informed that I would be picked up by a cab as soon as I landed at Hyderabad. That was the first "awe" moment of the trip. The cab driver was standing at the arrival lounge with a placard that had my name.


I couldn't have dinner that night, couldn't have breakfast on the day of the interview. Somehow i reached the office. The first thing I noticed was the sheer enormity of the Hyderabad office. It was just too good.

Thankfully Air India was flying that day!
Once I reached the office, I had to have a sticker with my name printed on it (a temporary id card sorta thing). Since it wouldn't stick to my t shirt, i had to stick it around my arm like a watch!



And then there were 6!

Then started the interview process. There were 6 rounds each comprising of 45 minutes to one hour. I had a lunch break in between for half hour and eventhough i couldn't eat much (because of my illness), i was totally mesmerized by the food court that they had. The interviews were over around 6 o clock in the evening and I came back to Chennai the same night. It was a long day and i was totally down with illness at the night.

The Wait

Next came the worst part, waiting for the results. I don't know what to write in this column, but there a few things and people that helped me overcome this strenuous period. My work at internship gave me some distractions but night times were a nightmare where I barely slept for 2 or 3 hours.

The Surprise

Then came the call on 17th May, stating that I have gotten through and that I will be intimated about the work location in a day or two. I was wonderstuck, I had no words to describe what it meant to me. I mean, it was my dream ever since from when I was at school. Fortunately, I was with the people I love when the call came and I could not have been more happier.

As it turns out, the call on May 17th wasn't the happiest moment in my life. That came a few days after, when I received my offer letter. It was a totally unexpected freaking surprise. My salary was mentioned in US dollars. I was searching the letter to know my work location (as I was most eager to know whether the work location would be Bangalore or Hyderabad). When I found it, my heart just froze, I mean, it just froze. It was my dream location. It was what I dreamed about in my school days. It was whose pictures I posted in Orkut years back when it was my dream.

It was a DREAM COME TRUE !

The People

None of this would have happened if not for the really supportive people around me. I have an amazing set of F.R.I.E.N.D.S from college and school. I really owe them for all their support over the past howmanyever years I have known them.

Another bunch of people whom I really owe a lot are my friends in twitter. It was one of the main reasons why I was able to achieve my dreams. Every discussion (the technical ones) I had in twitter had been a value addition to me. When I think of it, few people come to my mind immediately. Thanks a lot guys, eventhough we've hardly met in person, you are a vital part of my life.

Thanks are due to my parents who have been alongside me for every single decision I took in my life. They trusted me totally and I hope I have justified that trust to a certain extent now.

Apart from them, I sincerely thank all of you who have been a part of my life over the past 22 years. Without you people, I will not be where I am today.

Conclusion

I am joining my first full time job in a few months. I am living in dreams when i think of the fact that i am going to be working in the same place where people like Prabhakar Raghavan, Matt CuttsGuido van RossumJoshua BlochRobert Love (and not to mention Larry Page and Sergey Brin) work. My life cannot be more close to perfect than it is now. Once again, I sincerely thank each and every one of you!


I'm Feeling Lucky!

-Vignesh

P.S.: I have not mentioned about one very important person in this post. That is completely intentional and the reason for that being lack of words to describe what that person means to me. :-)

Friday, November 19, 2010

Last Day of Internship !! :-(

Today is the last day of my full time internship with my employer. Here is a small dedication to all my colleagues and friends who have made my past 7 months the happiest 7 months of my life. I will miss you all!

Last Day of Internship !! :-(


Excess..

I came here hoping to learn,
Which I've done in excess..
I came here hoping to have fun,
Which I've done is excess..
I came here hoping to gain new friends,
Which I've done in excess..
For i never thought,
This place would be excessive of excesses !!

Lunch..

There’s one thing that i ought not forget to mention,
The daily lunch..
We discuss minutes together where to go for,
The daily lunch..
And mostly end up changing the decision,
In the lift..

Supriya, Biriyani Express, Mast Kalandar,
Saravana Bhavan, Just Orient..
These are the places that i’d never would forget..
Thanks for all the memories..

Carrom and Chess..

We aim at the black,
We aim at the white,
We aim at the red,
But all we hit is,
The one we never aimed..
Yet we never get bored..
We’ve had spectacular wins,
That even kieron pollard could not have done..
We’ve had spectacular losses,
That even a second grade child could have done..
This is the place where i learnt,
Even chess can be a team game..
It will be a sin,
If i don’t mention the place,
That gave all the laughter..

Farewell..

Though it may not be permanent..
Its really hard to say good bye,
To such an awesome place of work..
With tears in eyes, and lump in throat,
Adios.. Au revoir.. Farewell..
Life has really been Happier,
Thanks to Efficient Frontier !!

-Vignesh

Friday, November 12, 2010

Madarasapattinam and Me !! :-)

I was sitting all alone in podanur railway station (podanur is to coimbatore is what tambaram/perambur is to chennai) awaiting my train to chennai. I had arrived an hour early than the scheduled time just to know that the train was late by half an hour, leaving me a solitude wait of one and half hours. I really liked the peaceful environment with gentle breeze flowering across my face. If I was like before, I would have just been irritated that i would have to wait alone for one and half hours. But then, I had all the feelings about the past awesome six months rushing up to me. And I was involuntarily forced to open my blog and start sharing them. As the title suggests, people who aren't interested in me lamenting about stuff I like and stuff I'm gonna miss, please feel free to press Ctrl+W (frankly I know that you don't really care if I miss velachery railway station or not)

Long story short

Past six months have been awesome and I have really been at the efficient frontier of my life. But sadly, everything has to come to an end. The internship is about to end in a few days and I already couldn't stop feeling bad about the things I'm gonna miss. On the whole, I will miss chennai, I will miss efficient frontier and I will miss everything that has been keeping me going for the past six months.

Madarasapattinam and Me !! :-)


Short story long

It just seems like yesterday that I stepped into the seventh floor of chamiers towers (well known as satyam building), but all of a sudden, six long months have passed in a jiffy. There have been many life cheering moments over the course of this internship.

I have had many wonderful moments. A bulleted list won't hurt after all:

  • The daily bike rides to office! (13 kms one way)

  • Breakfast at the near by mess!

  • Velachery Sangeethas T20 (the offer still continues as T30 - velachery folks, dont miss it!)

  • 5 working days = 5 different cuisines for lunch (Andhra, Punjab, China, Italy, Delhi, Tamilnadu)

  • Heavenly mini noon naps in bean bags!

  • Non-stop free flowing discussions about work!

  • Non-stop fun in the entertainment area (more on the upcoming post..)

  • Besant Nagar Beach with friends in the evening!

  • Dinner daily at some random shop!

  • Maintaining accounts (thinking before every swipe of the card and every rupee out of the wallet)

  • And of course the work!

  • Fighting online for tatkal tickets to and fro home for long weekends!

  • Listening to songs almost 8 hours a day



Another such lamenting is coming up soon!

-Vignesh

Monday, September 6, 2010

Infamous common problem !! :-)

I have had a productive day so far today. Its 7'o clock in the evening when i am writing this and i really feel like i have learnt a lot of new things today. I had a really long discussion regarding work with my team lead and he bought up an interesting point that i thought is worth sharing. I was wondering why noone had not put this formally yet (may be somewhere in the DBMS course).

It is one of the most recurring scenario in a software engineer's life that he may have to perform an action and print a log message corresponding to that action. The question is, how to keep these two operations atomic. Ok, now for those who are not familiar with the term, atomic operation is one that follows the "all" or "nothing" principle. A good example would be, if i transfer 1 crore to you, it involves two separate processes: 1) Debit 1 crore from my account and 2) Credit 1 crore to your account. This operation definitely have to be atomic as doing just one of them and not the other will make the bank go bankrupt. So thats an atomic operation (I wonder why it is called so as atoms themselves are divisible into 3 sub particles!!).

So whats with this action and log message you were talking about? Yes, coming to that, usually we perform an action (say increasing 1000 rupees in one's account balance) and to indicate that we have done this operation we write a message (probably somewhere to a log file) saying that we have increased the account balance 1000 rupees (and possibly include the timestamp). In this case, the presence of the message in the log file indicates that one's account balance has been increased by 1000 rupees. If that message isn't there in the file, then it means that we haven't increased 1000 rupees in the account.

Lets say that this operation (of increasing 1000 rupees in one's account) is to be done strictly once. No matter how many requests come, the operation has to be performed only once. A layman or a newbie programmer might think, ah, this is simple, i just have to look at the log file and if the message does not exist then i have to increase the balance by 1000 or else i should print an error message. This is what most of the people do without analyzing the possibily that the first part of the operation (increasing the balance) might have completed successfully and the second part of the operation (writing that in the log file) might have failed (due to some reason) in which case the operation might be performed more than once on receiving successive requests which can really result in a nightmare if the singleton-ness of the execution is really critical.

Since nothing is ideally (100%) atomic, it is impossible to achieve the exact singleton-ness of execution. It can be ensured that an operation is carried out no more than one time and it can also be ensured that an operation is carried out atleast once but not both (It is sort of equivalent to saying, <=1 and >=1 is possible but =1 is never possible).

Here I make a comparison of two different approaches to tackle this problem.

Approach 1 (Action First - Log Next):
Action(Completely) -> Log

This is the default approach that many people take without realising the seriousness of this problem. As i mentioned earlier, here there is a possibility that the action might be complete but the logging might fail, resulting in possibly multiple executions of the operation. Since this approach performs the action first, no matter how heavy the action is, the logging is done only after the entire action is complete. So in case of a heavy action (where only certain part of the code is singleton critical whereas the rest of the code can be run multiple times without any problem. Whereas it is not possible to separate the action into singleton critical and non-singleton critical parts in this approach, as the entire action is carried out first followed by the logging. According to me, this is one major drawback of this approach. This method gives the guarantee that the action is executed atleast once.

Approach 2 (Log First - Action Next):
Preparatory Action(Need not be singleton) -> Log -> Action (Singleton)

This is the approach that many people don't even know the existence of. Why not log first and action next? As i already said, now we can divide the action into two parts - singleton critical part and the non-singleton critical part. Now the execution goes like this, 1) non-singleton critical part of the action (lets call it "preparatory action" as it can afford to run multiple times). 2) Log the message and 3) singleton critical part of the action. So what is better about this approach? First of all, as i said earlier, this does not solve the problem completely. This approach gives the guarentee that the action is executed atmost once, which is slightly an expected behavior than the previous approach. Moreover, we are making the action lighter by splitting it into two parts. Even if the split isn't possible (there is no non-singleton critical section in the action), this approach still guarantees that the action is executed no more than once.

This is a simple yet powerful fact. It is never possible to make (as of now and as far as i understand) an action ideally atomic (meaning, executed exactly once). Post your thoughts on comments :-)

P.S.: The basic idea of these two approaches is my colleague's and i have portrayed that in my own words with my own examples.

-Vignesh

Thursday, July 22, 2010

7 Mistakes of my life (in the linux commandline) :P

Many people who know me will know that i am an open source enthusiast. Hence, going by the basic prerequisite of an open source enthusiast, i have been using linux primarily for the past 5 odd years. To begin with, initially i was very obsessed with the eye candy GUI available in Linux. It was way too good and no where close the ones available in windows. But recently (i.e.) in the past two years or so, I have realized that the linux way of doing things is to use the mighty shell.

So all the linux geeks talk about the shell, what the heck is it? The answer is simple. Unix shell is the powerful command line interpreter, that provides an user interface through the command line. Almost all the operations that are possible with a GUI, can be performed using the shell.

7 Mistakes of my life (in the linux commandline)


I came to know the immense power of shell more recently (during my internship with hashcube), where i had to log in to a remote server for all my work. That was the time where i learnt a lot about the linux shell since i had no GUI access and that was when i discovered the real power of shell.

The rest of this post might sound hebrew and chinese (why always greek and latin :D) for those who do not know (atleast) the basics of linux shell. In this article, i am going to share the (reasonably impacting) blunders i have made with my unix shell so far in life. Almost everything were done as root (unless mentioned).


  1. I once typed this in my friend's computer for fun when he was away talking over phone,
    rm -rf *
    And i did not press the enter key. My friend was talking in phone for quite a while and his monitor went to sleep by the time he came back. Guess what he did ? Yeah, he tapped the enter key twice to wake his monitor up and by the time the display came back on he was already scolding me by bad words ;-) Moral: Never tap Enter/Esc key when monitor goes to sleep. To be safe, press keys like alt, ctrl, caps lock.

  2. To remove all the files in /tmp/foobar, i had to type
    rm -rf /tmp/foobar/*
    But to my ill luck, that folder was empty and hence my tab completion added an extra space before i could type * and hence i typed
    rm -rf /tmp/foobar/ *
    Guess what the shell did with this ? Yeah, i lost my entire home directory :-) Moral: Always see the rm command thrice before pressing enter. And to be safe, put the -rf option in the end after checking the rest of the line.

  3. Recent linux versions have the option of protecting a partition by encryption. I once did an file system check fsck on such an encrypted volume and lost almost everything in it. Moral: Check the filesystem type twice before running a check

  4. I wanted to create a compressed archive. So i open the shell and quickly type in,
    tar -czvf /path/to/file file_archive.tar.gz instead of
    tar -czvf file_archive.tar.gz /path/to/file
    Yes, i lost the file which i had no backup of!

  5. I had around 1000 files with a # in their name. They were all debug files that were no more required. Hence i decided to remove them using the following command:
    rm -rf *#*
    Well, whats wrong with this? Paste this command in an editor that highlights syntax, and you'll know whats wrong :-)

  6. I used to have my desktop switched on for days together. To check when it was last rebooted, i typed in
    last | reboot instead of last | grep reboot
    No need to guess what happened !! :-)

  7. Try this as root if you are dare enough (or free enough to sit and reinstall your linux now):
    chmod -R -x /bin


Though the linux shell is very powerful, (we all know with great power comes even a greater responsibility), if you are not careful in using it, you might be standing in front of your boss begging yourself for screwing things up, or even worse nightmares can happen. :-)

Go ahead and share more interesting shell mistakes that you have come across.

Note: Throughout this article i have used the terms Unix/Linux interchangably though it is not the same

-Vignesh

Sunday, July 4, 2010

Two states - The story of my internship :P

I am pursuing a course in my college that has a total of 10 semesters and it mandates a 6 month industry internship during the 7th semester. The usual procedure, as always, companies come to college and conduct written tests and interviews and recruit students for internship (with a good amount of salary - or should i call it stipend?).

Two states - The story of my internship :P


In order to follow the companies' policies, i will call the companies X,Y,Z, etc. ;-)

The Confusion
My aim was to join X. There was a lot of confusions with it. Some said they were coming to college as a part of their campus recruitment drive. Some said they weren't coming to college for absorbing interns. After lots of such dizzy stuff, finally an HR from X talked to me and agreed to set me up with a te interview and I could not have been more excited in life (except for few other moments that happened on mid june, 2008).

First Round with X
At last the day came and i was sitting in my college's so called Smart and Secure Environment Lab (where i spent most of my 2nd and 3rd year of college in the name of project). I was sitting in silence waiting for the call, which came sharp at the very time they had scheduled it. The interviewer drilled me for one hour with questions on algorithms for which i gave the worst possible answers and code (which i realized thoroughly only after a few days). The HR called back again and asked me how did my interview go for which i said it was ok. The HR said she'll set up another round of interview in two days which made me think that i had cleared the first round.

Second Round with X
I had to attend my second round from my home as i fell ill at that time. The second round was surprisingly short (just one question) for which i was asked to mail the code. I did and it was obviously not up to the standards the interviewer expected (but i still had some hopes on getting one more round of interview). Finally, as it turned out, i got a rejection email from the HR two days later. It was a heartbreak. But I had to survive with it and was in the urge of looking into other available options.

The Options
At this point i felt like in the middle of no man's land as i was totally relying upon getting into X for this internship. There were many other companies coming to the college for internship recruitment in the meantime, upon which, one specific company (lets call it Y) is of our interest. Y is located in bangalore and it was a regular mass recruiter in our college. My resume was sent to Y through college and they said i will have an interview soon. Whereas i was not very much inclined towards joining Y. To explain this story further, i need to tell a flashback.

Flashback - **TWO MONTHS EARLIER**
It was a normal day and i woke up with the irritation of the need to go to college. It was when i realised that there was a programming contest in a big event in college. It is supposedly the highest cash giving event to be held in PSG Tech. After calling some 10 of my classmates, i was finally able to pick up a partner for the contest. We went to college around 10'o clock and found that the registration charges for the contest was 150 rupees. My partner started staring at me as we never expected it to be so expensive. I somehow convinced him to pay (by telling that we can get it back via the prize money ;-)). We went to the prelims hall and to our astonishment, the longest hall in PSG Tech (A310) was almost completely filled with participants (Believe me, there were atleast 200 teams).

We got our question paper and my partner started staring at me again as there were too many questions (50 if i remember correctly) that were to be solved in 30 minutes. We did our best and solved almost 40 to 45 questions. And obviously we were confident of clearing prelims, which we did. The finals was in the same day evening and was supposed to last for two and half hours. It involved hands on solving of 8 different problems (one of which was, "Given a sudoku, solve it" :P). We were able to solve 7 of them well ahead of the time frame and decided to skip the sudoku question. They said results will be announced only after the judges evaluate the programs. Since i had no patience, i returned home and my partner returned to hostel.

That was when the story took a twist, I got a call from an unknown number saying that i have won first place in the programming contest and that i am eligible for an internship interview with company Z (Hint: the person from whom i got the call is my colleague now). It was because the contest was sponsored by Z. Apart from that we also won 5k of cash which was in the first place my objective to attend this contest ;-). The people from Z said that i will contacted back after a few days regarding the internship interview. And i came to know that the work location of Z was chennai.

Back to Present
Ok, now that i have mentioned about both Y and Z, it was time for me to choose one. The risk involved here is if i decide to give a shot at Z and if i don't get through, then Y also would be gone by then. So, i had to make a choice and i did choose to risk yet again. I sent my resume to Z and they said i will be having 3 or 4 rounds of phone interviews and we agreed upon the dates of various rounds.

Interviews Galore
It was the day before my first round of interview with Z, i suddenly got a call from an HR of Y and i was informed that i will be having a phone interview with Y that evening. I was shocked and without knowing what to do, i decided to underperform. The time came and the interview with Y started. It went on for around 15 minutes, where they did not ask me much even to underperform. The next day i attended the first round with Z and it went on for around one hour where i was drilled in every possible domain under computer science. The same day evening, Y announced their results and i was officially selected as an intern in Y. Since college never knew about Z, i went to my dean and explained about my situation and that i am interested in Z. Whereas my dean's strong response was, "You have to join Y".

Chennai Vs Bangalore
As i was trying to convince myself about the shock that i have to join Y, i had to send a mail to Z explaining the scenario. The next day, i got a call from Z saying that they were also ready absorb me as an intern. That was when the whole race started. I had to beg dean and the placement officer of my college daily for about one weeks (during which i hardly ate or slept) and atlast i got the fruit of joining Z as per my wish. As a matter of fact, The college people tried to handle the matter diplomatically as a result of which i got a call letter from Y after i had already joined Z. Finally, i won the war of chennai over bangalore :-)

Happy Ending
Here i am, doing my internship with Z as i wanted to. And i really like whatsover that has happened to me in the past two months of my internship. I have learnt a lot (not just with respect to computers). You can easily know what Z is by visiting my facebook profile here !!

Honestly, I don't expect any comments for this post :P

-Vignesh :-)

Thursday, June 10, 2010

Chennai and its laws :-)

I am currently in Chennai for a six month internship. How i came here was itself a big story. Will definitely have to write about it later. For now, in the past one and odd months, i am giving up what i feel distinct about chennai and its people. How life in Chennai is and all that.

  • Law of Extremities: No matter how extreme in the side end of the road you drive, there is always someone who is driving extremer than you !! (Even if you are balancing your vehicle with one leg on the pedestrians platform, there is someone driving on the platform !!)

  • 0 or 1: (In velachery) either you walk or you swim, there is nothing in between.

  • Solitaire:You will be able to even finish a game of solitaire if you can drive at evening 6:30 in either mount road, sardar patel road, lattice bridge road andespecially in panagal park.

  • Murphy's first law of chennai local trains: No matter how free the other compartments are, most of the crowd in almost all the stations will always get into the compartment you are in.

  • Murphy's second law of chennai local trains: No matter what your destination is, there will be at least two trains in the opposite direction before you get a train in your direction

  • Law of drinks: When you are thirsty, there will always be a local shop when you look around where you can get ice cold flavoured drink. (mango, orange, lemon, fruit mixture, rose milk, badam milk, butter milk)

  • Police's law of two wheeler driving: No matter what rule you violate, Police will never catch you if you are driving between 8:00 to 10:00 in the morning and 5:30 to 8:00 in the evening.

  • Law of traffic signals: Either the traffic signal timer wont work, or it will show you the maximum time possible when the red light is on and you're staring at it.

  • Law of fights n screams: Everyday when you commute, you will see atleast one typical chennai tamil fight between someone or the other. (After all nature obey's newton's laws).


(Especially chennai ppl) Share your thoughts on comments :-)
-Vignesh