Saturday, May 19, 2007

What was I thinking?

I drive a Ford Escort SE sport car. The gear shift is manual (stick as some would say). When I first came to San Jose a couple of weeks ago to join Google, I came with nothing more than a suit case full of clothes and important documents. Obviously I needed a rental car to go places, so I took a rental car from the airport. Although I knew I had a choice, I still went with an automatic car, just because I wanted to concentrate more on looking at my maps and GPS unit rather than worrying about shifting gears and working the clutch.

The first couple of days I got used to driving it. Basically every time I wanted to go fast or after applying breaks, my left leg moves trying to find the clutch while my right hand automatically moves trying to shift to a lower gear. This was no fun but I had to adjust. Acceleration wasn't a problem since the car seemed to smoothly change the gears, I didn't feel the urge to change gears. Anyway after 2 days, I started to like it for the sake of simplicity. I can read maps, flip through pages, look at my GPS all the while rushing through traffic. But the fun soon died. I soon memorized most of roads that I commonly drive and so the "automatic" was becoming very boring.

I soon discovered how much I missed my car. A quick email to the movers assigned by Google and a week later, my car was on its way to San Jose. As soon as the truck unloaded the car, I did not spare a minute before taking it for a nice 20 mile ride. Wow! How nice the car feels! I could perfectly time all my maneuvers. The rental car was a dodge caliber hatchback. Not sure what is wrong with it. I don't know if all automatic cars handle this way, but the car does not respond quickly to my pressure on the gas pedal. It takes a couple of seconds and the engine becomes louder (as if it has shifted to a lower gear, perhaps it does) and then it starts to move faster and I can change lanes or do what ever I am trying to achieve. Not so with my car. If I need a quick break out of a slow moving lane, just change gear, hit the accelerator and zip through lanes! The 20 mile drive was so refreshing. I just finished the lap and it makes me feel like I should go take a ride again. Another thing I like about my car is the low center of gravity. It helps a lot when going through the highway loops with out having to worry about flipping the car or the tires slipping. I was constantly worried with the high hatchback. Other fun things about my car are the low steering wheel and a very nice pick up (at least it is much better than the dodge one ;-).

I had a lot of fun driving on California roads after a long time. Next time onwards, if I rent a car it has to be a manual. This post should help me remember it. Picking up an automatic car was a bummer. What was I thinking?

Thursday, May 10, 2007

Day 4 at Google

Today I decided to try out Google shuttle since I am planning to use it daily once I move to a new apartment. Obviously I wanted to try and see how a 1 hour long drive will be. Although I do not have motion sickness, people asked me to test it out before deciding to stay so far away from work. I drove about 40 miles to Danville and got on the Google shuttle. The shuttle was a very nice limo type bus with nice seats, a couple of four seats with tables between them, wifi access and overhead video displays (although no movies have been played during the ride). I tried out what I would routinely do if I used the shuttle which is basically coding and reading both books and web. All of them worked out fine. I did not feel any motion sickness, but sometimes I found it hard to concentrate on reading the small font on Dr. Dobbs magazine when the bus is shaking too much. Reading from my laptop wasn't that bad once I did a few Ctrl-+ to make the font bigger.

After reaching Google, I attended 3 more classes. Had chicken biriyani with palak paneer for lunch. Not as tasty as I expected (since it was not spicy enough for my taste) but still pretty good. Again in the evening hopped on the return shuttle. After 1 hour 20 minutes shuttle ride to Danville, I drove back to Santa Clara for another 50 minutes. What an irony that I drove from a place close to Google to a far away place only to use the shuttle back to Google. In total I commuted for 4 hours and 20 minutes today. But it was only a one day thing so it was not a big deal. The shuttle service is awesome. Right on time. No motion sickness. No waste of time. I can work during my commute. So I decided I to use the shuttle and live far away from the city :)

Day 3 at Google

After a couple more classes later had a nice non-veg Indian food. Starting to get a hang of things here at Google. Had a brief talk about what my starting project and 20% project will be. Did some house-keeping chores (organizing calendar, email widows on my massive monitor, updates to laptop and desktop etc). Still a lot of things to learn. And I have 3 classes tomorrow!

Tuesday, May 08, 2007

Day 2 at Google

Today again has been a very busy day. Google has this nice set of classes that all Nooglers take for the first 2 weeks. It gets Nooglers up to speed with the technologies and culture at Google. As you might have already guessed, I cannot reveal much about anything, but it suffices to say these classes are very very useful. But again there is far too much information (not that we are expected to know everything in one day, but I wanted to anyway ;-). We were given several books that are helpful in our professional career at Google. The greatest thing about Google is the work culture. I liked the fact that Googlers can work 20% of the time on any project. It lets your wander freely in the wild. No idea is too small. Actually brainstorming ideas is strongly encouraged. Engineers have a lot of flexibility even for the main project, and the mentoring is excellent. Simply put "no question is too dumb to ask" here at Google. There are no managers telling you what to do and any time someone needs help they just ask engineers if they like to work on it and never say "you have to do this". You can jump projects as often as you want, no questions asked! It helps you widen your skill set and helps you think differently...

Monday, May 07, 2007

Day 1 at Google

Wow! Just wow! I love everything about Google. Although all day long today we just had to go through lots of presentations, and doing some paper work, it was very informative and useful. In the morning all the nooglers were ushered into the front lobby to set passwords for our Google accounts, got photographed for our badges and were led to some snack areas to give ourselves some treats and drinks. Then we sat for a day long marathon of HR related presentations and paper work. We stayed from 9 to 5 in the room except for some short breaks and lunch. What I loved about the day is how very well everything is organized. Each step is completed in exactly the intended time slot alloted for it. Well actually within +/- 3 minutes. There is a lot of information and I will definitely have to go over the slides to remember everything. Later in the day we got our badges.

Coming to lunch. It is simply superb. Well I had lunch at Google before during my on-site interviews. But every time the food was a delight to my palate. There are several cafeterias and the one we visited served Indian food. I had white rice, sambar, matar paneer and pickle. Excellent huh? The food was very tasty.

Towards the end of the day we were given a quick tour of the infamous free laundry room, gym, game room, lap pool and snack bar. Then at 5:00 pm, my mentor showed me my cubicle, introduced me to my co-workers and managers. My cubicle has lots of balloons and candy and rumor has it that once the balloons lose air we are officially Googlers and not Nooglers any more. I was given a desktop with a LARGE 30" monitor! I almost fell off my chair just looking at the size of the thing. It is really really very big monitor. I don't need 2 monitors now. The desktop was a good 2.4 Ghz Intel Dual core processor with 4 GB RAM! We then went to pick up my first ever mac - the macbook pro. It is a serious laptop. Gets really hot when running at full load but it is very thin and stylish. I got a bag with other accessories.

My mentor took care of everything for me and left. I made myself at home, went to the cafeteria again to grab my dinner. Hey the food is worth staying the extra few hours. Beats my cooking any day of the year and saves me time to cook and clean ;-) Did some more work after dinner and left for home.

The team is really good with lots of excitement, energy and very friendly. I felt at home...

Monday, April 30, 2007

Joining Google! How it all started...

I am very excited to join Google! This is perhaps the best career move for me. It has been my dream to work at Google ever since I graduated. Then why have I not been working in Google from the start of my career? Why join Motorola? Here is a timeline to put everything in perspective.

Summer of 2001:
My GRE exam is on August 1, 2001. Preparations are underway with one target in mind - "I have to join MIT". But no amount of hard work could prepare me for the dooms day. I wrote the exam and the scores were not as good as I anticipated. I was totally dejected. I knew then that I lost any chance of getting into MIT. And from that day to this day I kept complaining that "I could not join MIT". Only a few handful of people knew how depressed I was during that time.

Fast forward 3 years.

August 2004:
I joined University of Arizona in 2002 and I was close to completing my Masters. I had no plans of doing PhD. I lost all hope to join MIT. But I knew one thing I could do that will be as close as joining MIT. And that was to join Google. I heard a lot about it and knew that Google only takes the best of the best. If I work in Google I can meet with some of the greatest minds. I also knew that I will not be able to join Google even with a perfect 4.0 GPA because I did not study at MIT. I did apply to Google however and never got an interview. So my complains grew to "I could not join MIT or Google". During that time I applied for a job in Motorola too and I got the job with just 2 interviews. But the complains did not stop.

March 2007:
The reason for applying for Google again and doing all I could do to get there started here. In one of the conversations I was having on the evening of that fateful day, I unemotionally complained again about not being in MIT and Google and how much I have lost. This is when my best friend Sreelu decided that she needs to put an end to my bemoaning. She told me that I have no reason to complain since I did not try hard enough. Previously when she told me that I did not get MIT because I did not try, I had to agree. Yes I did not apply my mistake. May be if my essay (statement of purpose) was strong then even if my scores weren't that great I could have had a chance. I will never know since I never applied. However I did apply for Google then why did I fail. She counters with "You did not try hard enough". Now that is a statement that cannot be underrated. I again applied to some interesting positions at Google and this time I did everything I could. I did networking, I talked to people. I convinced them of my talents. I did several projects and demonstrated them in interviews and in emails. I prepared very well for all the interviews and then end result is - I got an offer from Google!

Now I have no reason to complain. I reached where I initially did not even hope to enter. I am a happy man. Lessons learnt - "never say die" and "if you have the will to do, you should have the heart to dare". The principles by which I have always lived and will live. Thanks to Sreelu for reviving those principles. I am a Googler with no more complains about my life (much to the satisfaction of some of my friends ;-). I would like to thank Sumit Chachra (http://blog.chachra.us/), Sarah Sirajuddin and Kiran Mudiam who have been instrumental in landing my dream job.

Thursday, March 29, 2007

cTunes here we go live!!!

It has been a long time since I blogged, mostly because I have been very very busy both with my work and also with several "week-end projects". But all is not to be blamed on the work, I have been quite lazy too! Anyway a long time ago, perhaps over 6 months ago, I wanted to write a small application that looks like iTunes but would run on J2ME enabled phones (MIDP 2.0). I started out all excited and wrote this small application called cTunes that kind of mimics iTunes. I recently made a video from it and posted in youtube (follow this link http://www.youtube.com/watch?v=coV06ChYWJo or see below)

I also demonstrated this application at the Phoenix Java User Group on 07/12/2006 (go to this link http://www.phxjug.org/meetings.html and search Chandan Pitta). The excitement died soon after I was able to prove that phones can be as good as iTunes and yet allow you to make calls. So I did not do anything more to the application and jumped to other "week-end projects". Recently I posted a video of "newvo" on youtube, which is an application I wrote using kaa framework of freevo2. Oh by the way I am an occasional developer for Freevo and I will save the whole Freevo2, Newvo story for another day. Anyway after I posted the video, I got a few comments and the video has some honors too. So I decided to add the cTunes video and now I receive several requests for the code. So the following information is for those individuals.

I would like to make it an open source project but the application is not even half complete, so may be some day I will finish it. For all those who are asking for the application, I am not sure if it is useful to any. I mean it is a proof of concept kind of application and it requires the application to be signed for it to work on a phone. By the way, the application can run on any phone that supports MIDP 2.0 and JSR 135, JSR 75 and not just on ROKR E2. Please check your phone to see if they are supported. I tested it on Sony Ericsson W800i and a Nokia phone too (don't remember the number). Since I am a software engineer at Motorola I have a Verisign certificate that I used to sign the application and test on those phones. However I cannot distribute the signed application, so I can send an unsigned J2ME application and if you happen to have a certificate you can sign and use it.

A few things to consider.
1. Can anyone tell me where I can post the application so that everyone can download.

2. The music and photos work, but the video might not work. I have not tested it for a long time, but for the video playback I used MPlayer (yes I modified MPlayer to work with ROKR E2 and cross-compiled. It was a beautiful experience working with shared memory, threads and semaphores in C++ to make MPlayer work on the Motorola proprietary audio and video interface). I will work on the video part to make use of the video capabilities provided by J2ME (I tried to use it but it could play videos only at 15 fps and that too the video had to be encoded in 3gp format at a specific size and frame rate, but with mplayer all the problems disappeared. I can play at 25 fps and could play avi, 3gp or any format that the mplayer could support).

3. As I mentioned previously, it has to be signed for it to work. Otherwise you can install the application and change the settings from your phone to allow the application to have read permissions for files.

4. This is the permissions part that you might need to add to the JAD file and then sign it to make use of it.
MIDlet-Permissions: javax.microedition.io.Connector.file.read

5. The application should run on ROKR E2 without any modifications, but if you are trying it on a Nokia or Sony Ericsson you have to edit the JAD file and change the property from "StorageCard: file:///SD/" to "StorageCard: file:///C:/" (Nokia) or "StorageCard: file:///e:/" (Sony-Ericsson) or where ever your secondary storage card is mapped to. Don't forget the trailing slash.

6. If you somehow have passed through all the hurdles then here are some key assignments when viewing photos:
1 = rotate image
2 = move image down
3 = toggle fullscreen
4 = move image right
5 = reset all transformations
6 = move image left
7 = reflect image
8 = move image up
9 = toggle scale image to fit to screen