Sunday, June 22, 2008

Winter Internship at Microsoft - Redmond, WA

Hi everybody, this post is to talk about my internship experience at Microsoft. I will discuss many topics, including what I did and what are my impressions about the company after the internship. I think this post is going to be very interesting for most of the readers of this blog.

Currently I'm interning at Google - Mountain View, CA - and by the end of this internship I'll write a similar post about my experience at Google.

Later on, in other post, I'll discuss about how I knew and got these job opportunities and also about ways for you to possibly achieve that too.

What Happened:
From January to April I enrolled in an internship at Microsoft, Redmond-WA, in the main campus of the company.

Position at Microsoft:
At MS I worked as a Software Design Engineer in Test of a product called System Center Operations Manager, in the Windows & Enterprise Management Division.
I must be sincere and tell you guys that, prior to receiving the internship offer, I knew as much as you are supposed to now about this product: N-O-T-H-I-N-G!

Knowing a little bit more about System Center Operations Manager:
Starting from the beginning, Microsoft has a family of products called System Center that helps IT professionals to manage the physical and virtual IT environments across data centers, desktops and devices. By now, this line of products includes eight softwares: Operations Manager, Virtual Machine Manager, Mobile Device Manager, Data Protection Manager, Configuration Manager, Service Manager, Essentials and Capacity Planner.

Regarding Operations Manager, also known as MOM (Microsoft Operations Manager) - its formerly name, in simple words, it monitors events and performance of servers, allowing system's administrators to realize problems before they result in crash of the system or even solving some typical or expected problems automatically, without human intervention, reporting what have been done to the administrator.

It was really surprising for me the way I felt interested by this product while I was learning about that. It was much more than I was expecting. It's a really great product, with a great architecture, scalable by now up to thousands servers, what is really impressive. I won't say it's the best product on its category, since I don't know its competitors (IBM Tivoli, to mention one), but I wouldn't be surprised if that was true.
For me it was a really really nice experience to be in touch with a software totally different from those I was used to, focused on companies and system administrator's rather than end users.

Basic Benefits at Microsoft:
  • Salary
  • Paid round trip air ticket to MS
  • Shipping reimbursement
  • Great discounts on renting apartment (Subsidized house rental on some corporate housings)
  • Rental car for a really affordable price (Subsidized car rental)
  • Free membership on a fancy gym
  • Discount on MS products
  • Free drinking at work (there are refrigerators over all buildings, full of sodas, milk, tea, water, etc...)
  • Special Parties and Events
  • PRIME Card discounts (great discounts in lots of establishments over the US)
  • Free Bus Pass
  • MS Shuttle
Relocation Process at Microsoft:
Going to MS was a really easy task (totally user-friendly - hehe)! My main concern was to timely schedule and pay for my H-3 Visa (Trainee US Visa) in Brazil.
Six basic steps:
1) Go to the airport.
2) Enter the airplane using my already bought ticket.
3) Land in Seattle.
4) Still on the airport, go to the rental car company, on the airport's garage, and get my already rented car (for the whole three months)
5) Drive until Redmond (25 min trip), to my already rented house
6) Enjoy the house's comfort

Everything was really perfect and arranged by Microsoft! Nothing at all to complain!
I was nervous as a result of being my first time in US, but having this huge support everything seemed really easy and normal.
They gave me the air ticket, rented me an apartment and rented me a car, everything prior to my arrival. Everything was in place for me when I came. Until today I'm completely amazed about that.

Environment at Microsoft:
As you can imagine, the work environment there is pretty good.
They assigned an spacious office to me, which I shared with one more person. My work computer was pretty nice - brand new and fast! I got a big and nice LCD monitor, a good chair and a fancy touchscreen desk telephone.
There are mini-kitchens through all buildings, with refrigerators always full of free drinks (any type of them). The edifices usually have a cafeteria, with some good restaurants selling nice and "cheap" food (comparing with restaurants outside the campus).
You can also find some stuff to have fun inside all buildings, like snookers, tennis table or foosball (In specific edifices there are available some Xbox's games, as "guitar hero" and many others).

Regarding diversity, I could definitely figure out what they mean with "
Microsoft is an equal opportunity employer". I met all kind of people there! People with purple hair, full of tattoos, the nerd stereotype, the old, the young, the asian, the jewish, the muslim, the catholic, the european, the indian, the black, the blond, the arabian, the handicapped, whatever...people from all around the world, with different habits, religions, accents, cultures.
People I directly dealt with (at work) were from: US, Brazil, India, Egypt, Bielo-Russia, Estonia, Bulgaria, Nigeria, Canada.

PS: I actually was impressed about the number of Brazilians I met there. Much more than I was expecting.

Age range:
I may be wrong on affirming this but, it seemed to me that people at MS are older than I expected. At least on my group, I would say that the average age would be between 30-40 years old.
Prior to the internship I was expecting to meet a lot of guys just graduated from college, about 20-25 years old, but instead of it
most of my colleagues were married and older than me.
Because of that (and the inherent consequences of it), I felt a little bit shy at the beginning. But as people were very kind and supportive, I quickly felt myself welcomed and o.k.

Social Events:
During the internship I had lots of social events to participate, some only for interns, others only for my Team, and some for all MS employees.
It included a basketball game, a snow tubing, a cruise, a tour on a chocolate factory, a tour at the "MS Home of the Future", a tour at Boeing's factory,
special dinners, parties related to the launch of softwares (specially VS 2008, SQL Server 2008 and Operations Manager SP1), some special private exhibitions from MS Research and other groups - as Office Labs - showing their innovative projects, and more. Summarizing: The social events were awesome.
It's important to remind that I was interning in the Winter, when there are few interns in the company. Traditionally, on the Summer internship there are much more interns (on the winter we were about 50 interns and in the summer were expected 800) and consequently there are much more intern's events, including a barbecue at the backyard of Bill Gates' house.

Work At Microsoft:
Talking about job and roles, my internship was really amazing.
Intentionally, my manager gave me a challenging project and gave me a lot of liberty to decide how to solve the problem. Basically, I needed to write an API to automate some specific tests on the product. This API was something that people on the team really wanted to have among the test tools, and so it was really nice to do something I could see people interested on and that could effectively help the group.
Though it was an individual project, I had to deal with a lot of people from the team to figure out their needs - and to ask for help (most usual, hehe)!
I programmed using C#, .NET Framework, WCF (Windows Communication Foundation) and some internal APIs for Operations Manager.
I also spent some time learning about tests on multi-threaded code, but didn't applied it.

In my internship, I think previous knowledge and experience was essential to get the job done, as well as - and specially - fast learn ability - to deal with a lot (I mean A LOT) of new information. I would say these three months were a period of constant learn.

I had no fixed schedule, about time to go to work, or leave. Essentially they ask everybody to stay on site on the core hours 10am-12pm and 2pm-5pm, but mainly is like: since you get your work done, do your schedule! This was REALLY NICE, as I have huge problems on waking up early on the morning!

About Location - Redmond/Seattle/Washington
Living in Redmond is probably not the best experience somebody could expect from an exchange. The city is too calm, almost everything is closed after 9pm and has no night life at all. I would dare to say that the most exciting thing you'll probably find there is Microsoft!
Although it, Seattle is a great city, just 20min away. It's beautiful, with some nice landmarks (as Space Needle) and lots of places to visit.
For my Brazilian friends, don't think Seattle is as big as São Paulo or Rio de Janeiro! Though Seattle is the biggest city around Redmond, don't expect it to be the biggest commercial center you've ever seen.
Redmond is also close to Vancouver (Canada) - 4 hours driving - and has many other small cities around, e.g. Kirkland and Bellevue, that really worth to visit.
In other words, since Redmond is not alone in the map, I don't think living there is a problem (you can also choose to live in Seattle, if you can afford commuting 1h per day).

Impressions about the company:
First of all, I want to be clear on saying that this is the point of view of an INTERN. I strongly believe that things are different when you're on a full time position (some better, some worse).
I also would like to say that prior to the internship, I wasn't sympathized with Microsoft, as a consequence of being closer to the open-source world than to MS products - something cultural.

Working on MS I could realize things I didn't thought before: Microsoft is everywhere! operational systems, servers, Office, mobiles, MP3 players, hardwares, video-games, databases, internet, browser, instant messages, project management, health care, anti-virus, robotics, programming languages, research, and lots and lots of kinds of products I couldn't enumerate here.
I could realize that almost everybody won't be rich working to MS, but , instead, employees may have a comfortable life and enjoy their jobs!
I figured out that MS employees don't need to care about Health Care costs, what's a BIG DEAL in US, specially when you have a family, with children. Everybody is very excited about that - they say it's the best Health Plan in US (Unfortunately, interns don't enjoy of that benefit).
I could see that if you like technology someway, you are going to find your place at MS. Changing team and/or division are more normal than I could imagine before. This is really nice, because gives you the opportunity of changing team, instead of company - keeping your stability. Further, since different teams are likely to be totally different (imagine somebody moving from the SQL Server Team - database - to the XBOX Team - video game), you're going to experience a completely new job.
I also figured out that employees have a well planned career, with often reviews to track how things are going on with their goals. In my case, during my internship, I had weekly 1:1 meetings with my manager, in which we discussed the internship's commitments and schedule - this was completely essential for a successful internship and I think it helps a lot in a career - specially for the employee to know where is he/she going.
I felt people from MS specially smarts, hard workers and very respectful regarding each other competency and intelligence - never saw anybody underestimating somebody else (even interns, that are suppose to be less experienced).
Specially for being present on some MS Research exhibitions, I started
seeing MS as a innovative company that creates technology.

Overall, I'm amazed about MS as a company to work on! I will definitely consider to come back as full-time employee - after college graduation. I had an awesome internship experience there and advise people to have this experience too.
Further, the exchange experience, to work in other country than mine, in a work environment with people from all around the world is something priceless.
Everything was perfect! Congrats MS.

Thursday, June 19, 2008

Friends on Google Code Jam Latin America 2007

Hello everybody!
Still talking about Google Code Jam, I would like to post a video that was made last year by Google, regarding the finals of the Latin America edition of the competition, in Belo Horizonte-MG/Brazil.
I'm posting it specially because some friends of mine appear on the video!
Never too late to congrats them again!
Valeu Baggiones, Valeu Daigo!

Wednesday, June 18, 2008

Google Code Jam 2008

Hey Buddies! Google did announce yesterday that registrations for its popular world wide competition are already opened!

For those who don't know the competition:
"Google Code Jam is a coding competition in which professional and student programmers are asked to solve complex algorithmic challenges in a limited amount of time. The contest is all-inclusive: Google Code Jam lets you program in the coding language and development environment of your choice.

Google Code Jam begins in July and continues in August, when you will compete in online rounds against contestants from around the world. The Top 500 participants will advance to onsite competitions at a local Google office to compete against those in their region (Asia Pacific; Europe, Middle East and Africa; and the Americas). The Top 100 will participate in the final round at the Google Headquarters in Mountain View, California on Friday, November 14."

The competition is quite different this time, since they are not using the TopCoder system to run the competition anymore (as in the previous editions of Google Code Jam). Instead of it, Google is going to use its own brand new competition system, with a new format of contest.
In this new format, you are able to code in which language you want to! As long as the compiler or interpreter you used for that language is freely available and easy to download and use, you are free to use it.
Contests may vary in duration, ranging from 1.5 hours to 3 hours with the Qualification Round lasting 24 hours. Competitors are going to download the input of the questions and upload the output generated by their programs as well as their source codes. Once the input file is downloaded, the competitor is going to have a limited amount of time (4 minutes for small input files and 8 minutes for large input files) to upload the output.
This is really different from the usual ICPC or TopCoder competitions, which most algorithm competitors are used to.

Who is Eligible:
You are eligible if you meet the following requirements at the time of registration:

  • You are 13 years of age or older (only those who are 18 years of age or older as of September 18, 2008 are eligible to attend the local onsite round and the onsite finals.)
  • You are not a current employee/intern of Google Inc., an employee of any Google affiliate or subsidiary.
  • You are not an immediate family member (parent, child, sibling, or spouse) of, or living in the same household as, a Google employee or an employee of any Google affiliate or subsidiary; and
  • You are not a resident of any of the following countries or provinces: Burma (Myanmar), Cuba, Iran, North Korea, Quebec, Sudan, and Syria where prohibited by law. Burma (Myanmar), Cuba, Iran, North Korea, Sudan, and Syria are restricted by US export controls and sanctions programs and are therefore not eligible to participate in Code Jam.
Prize Overview
The top 500 scoring participants in Round 3 will receive a Google Code Jam t-shirt.

The top 500 participants in Round 3 will participate in the local onsites at a Google office in their region. Travel and accommodation will be covered by Google.

The Top 100 finalists from the local onsites will be flown to Mountain View, California to compete in the onsite finals. Travel and accommodation will be covered by Google.
All 100 finalists who attend and compete at the onsite finals in Mountain View will receive the following prizes:
Competitor(s)Prize
1st Place$10,000
2nd Place$5000
3rd Place$2500
4th – 10th Place$1500
11th – 30th Place$1000
31st – 50th Place$750
51st – 75th Place$500
76th – 100th Place$25

In addition, if you are the 1st place winner, you'll receive ten free lunches (for you and a guest) at Google. Whenever you are in a city with a Google office that provides lunch from November 14th 2008 to November 14th 2009, you can check out the office with a guest and be hosted for lunch (maximum of 10 visits).
Well, I'm really excited about this new format of contest and I'm looking forward to see how it is really going to work. Although it, unfortunately I cannot participate this time, since I'll be still interning at Google by the registration period.
I did participate in two previous editions of the competition, one world wide - in 2006- and one Latin America Edition - in 2007.
The world wide competition is really $#%$*@# hard. Definitely is not for me! But in the Latin America contest, I got up to the semi-finals, among the 250 top coders (only 50 went to the finals) and got at least the Google Code Jam t-shirt! hehe

You can register for Google Code Jam at http://code.google.com/codejam/contest/registration. Registration opens at 4:00 p.m. UTC (9:00 a.m. PT) on Tuesday, June 17 and you can register anytime until the end of the 24 hour Qualification, 11:00 p.m. UTC (4:00 p.m. PT) on Thursday, July 17. Advancement from the Qualification round is necessary in order to participate in Round 1.

For more information on rules, schedules and FAQ you can go to the Google Code Jam Web Site

Hope to see some friends when they announce the winners!
Good Luck!

Tuesday, June 17, 2008

Firefox 3 - Download Day is here!

Download Day - English

Set a Guinness World Record
Enjoy a Better Web


Today, Mozilla is officially launching the third version of its popular web browser.
It's also trying to set a Guinness World Record through achieving the maximum number of downloads within 24 hours. By the way, this is a great marketing approach. Congratulations for the Mozilla Marketing Team, you have probably achieved success - at least on spreading Firefox 3.0 - since by the time I'm writing this post I can see 4,386,415 as the total number of downloads.

I did download and install it on my machine, and started looking for the improvements (which by Mozilla's information are a lot - "With more than 15,000 improvements, Firefox 3 is faster, safer and smarter than ever before.")

My Quick Tour:
1) First thing of all, I looked for my favorites Add-Ons (I would like to make sure all of them were there, available for this new version of Firefox)
They are: Delicious Bookmarks, FlashGot, Web Developer, Firebug, Cooliris, GSpace, Mouse Gestures.
Conclusion: Excepting Mouse Gestures all extensions are available for Firefox 3.0. That's a good Thing! :D

2) I tested what Mozilla calls the top new features:
Password Manager: Remember site passwords without ever seeing a pop-up.
One-Click Bookmarking: Bookmark, search and organize Web sites quickly and easily.
Improved Performance : View Web pages faster, using less of your computer’s memory.
Smart Location Bar: Find the sites you love in seconds—enter a term for instant matches that make sense.
Instant Web Site ID: Avoid online scams, unsafe transactions and forgeries with simple site identity.
Full Zoom: See any part of a Web page, up close and readable, in seconds.
Platform-Native Look & Feel:Browse with a Firefox that’s integrated into your computer’s operating system.

Although 'Smart Location Bar' is a really nice feature, I want to expose my dissatisfaction with the privacy police of it. My concern is that while somebody types an address on the location bar it suggests links of emails that are in my email inbox, exposing the title and sender of them, even if my email account is logged out (I was using gmail). I'm not confortable at all with that. This way, anybody using my computer would see all the titles (and sender) of most of my emails.

I don't want to spend time telling the obvious benefits of each new feature, but wanted to say that overall I'm very satisfied with all of them, specially with 'improved performance', 'one-click bookmark' and 'full zoom'.
Actually Full Zoom ROCKS! I do usually use a big monitor (29") and zoom is really important to me. It was a huge improvement from the previous supported zoom, which actually increases only text size.
Further on this list, the less significant improvement - to me - was the 'Plataform-Native Look & Feel'.

3) I tested some other features:
Most of them are pretty nice and o.k., but I'd most liked one that will probably change the way I interact with my browser: it's called Tags.
Now, you can easily tag sites on your bookmarks and then access them by typing the tag name on the location bar - which will suggest the sites tagged with that name.
For example, if I tag www.nytimes.com and www.lemonde.com with the tag news, then, when I 'd type the word news on the location bar, both sites (and all other site tagged with that name) are going to friendly appear to me to be chosen.

Well...unfortunately I didn't tried the beta versions to compare and neither evaluate deterministically the performance of the new browser (I wasn't intending to do that in this post) and neither made a deep review, but I hope it can help somebody to be introduced to this new good product.

For more information, follow the link:
List and description of the new features.


Saturday, June 7, 2008

“The knack” - Dilbert

Posted on previous blog at 05/06/08

Funny video!

My relief is to think that there are a lot of other worst jokes for lawyers, doctors, etc.

The Art of The Start - Guy Kawasaki - Speech/Video

Posted on previous blog at 04/14/08

Following the series of videos I’ve been posting here, the one now is a really good one from Guy Kawasaki, regarding entrepreneurship!

In his own words, from his blog:
“An honest speaker will tell you that she has “on” days and “off” days. The result of a truly “on” day is a standing ovation. I had a very “on” day at TiECon on May 13, 2006. This is the annual meeting of The Indus Entrepreneur organization.
I’ve provided postings of audio and video of my speeches that covered the topics of innovation and evangelism, but this is the first one of “The Art of the Start“. It’s the first one, frankly, because I’ve been waiting until I did it very—standing ovation—well.“

To be in context, “The Art of the Start“ is a best-seller book which, again by the author, can be defined as:
“When you get pregnant, you read What to Expect When you’re Expecting. When you get laid off, you read What Color is Your Parachute?. When you get entrepreneurial, you read The Art of the Start.
This book is a weapon of mass construction. My goal was to provide the definitive guide for anyone starting anything. It builds upon my experience as an evangelist, entrepreneur, and most recently, as a venture capitalist who found, fixed, and funded startups.
The book is as relevant for two guys in a garage starting the next Google as social activists trying to save the world. GIST: cuts through the theoretical crap, theories and gets down to the real-world tactics of pitching, positioning, branding, recruiting, bootstrapping, and rainmaking.”

The speech is really really funny and full of smart sights about marketing, entrepreneurship and life!

In some sense, this video changed my life … it brought me new ideas which I’m applying right now!
Hope you enjoy it as I did. :D

PS: If you cannot see the video, on his blog’s link - up on the beginning of the post - you can download the video in .mp4 format.

Steve Jobs Speech - Stanford Commencement 2005

Posted on previous blog at 04/12/08

By the way … taking advantage of the previous post, here goes a 15 min speech of Steve Jobs, on Stanford Commencement, on 2005.
The full text of the speech can be read here!

In this speech, he talks primarly about his life and career, going through three histories:
1) Connecting the dots - How the things he did by following his heart made sense just lots of years later, and how this contributed for the personal’s computer history.

2) Love and loss - How he got fired from the company he founded (Apple), how he succeeded through this (founding Next and Pixar, getting married), and how this was important in his life.

3) Death - How he faced a pancrea’s cancer, and lived with a soon death’s diagnosis for one day - also talks about how people face death.

I cannot decide which one I do prefer (Gates' or Job's one), both are really worthwhile!

Enjoy it!

Bill Gates Speech - Harvard Commencement 2007

Posted on previous blog at 04/12/08

I saw this video about a month ago and really enjoyed it! In the link you can also read all the speech!

It’s a 25min speech of Bill Gates on the 356th Harvard Commencement, on June 7, 2007.

In this occasion, Mr.Gates was receiving an honor’s diploma (or something like that…I don’t know exactly how it was called) regarding the 30 years of graduation he would had if he had graduated in his class (class of ‘77).

Mr. Gates started the speech with really funny lines, including, but not exclusively, talking about the relevance of this diploma on his career, referring himself as a bad influence, and talking about his personal life experience regarding women:

“I’ve been waiting more than 30 years to say this: “Dad, I always told you I’d come back and get my degree.”

“I want to thank Harvard for this timely honor. I’ll be changing my job next year… and it will be nice to finally have a college degree on my resume. “

“I applaud the graduates today for taking a much more direct route to your degrees. For my part, I’m just happy that the Crimson has called me “Harvard’s most successful dropout.” I guess that makes me valedictorian of my own special class… I did the best of everyone who failed.
But I also want to be recognized as the guy who got Steve Ballmer to drop out of business school. I’m a bad influence. That’s why I was invited to speak at your graduation. If I had spoken at your orientation, fewer of you might be here today. “

“Radcliffe was a great place to live. There were more women up there, and most of the guys were science-math types. That combination offered me the best odds, if you know what I mean. This is where I learned the sad lesson that improving your odds doesn’t guarantee success.”

After that, the speech gets serious talking about social inequalities, and warning people, specially the graduate students, to care about the world’s despairs:

“Should our best minds be dedicated to solving our biggest problems?
Should Harvard encourage its faculty to take on the world’s worst inequities? Should Harvard students learn about the depth of global poverty… the prevalence of world hunger… the scarcity of clean water …the girls kept out of school… the children who die from diseases we can cure?
Should the world’s most privileged people learn about the lives of the world’s least privileged?
These are not rhetorical questions—you will answer with your policies. “

It sounded like a really good speech, full of emotion and hope in the young people.

If you’re also interested on other speeches from the last year’s Harvard Commencement, you can take a look at Harvard Commencement 2007. There you can find other interesting speeches, as from Bill Clinton.

A little p.s. here: It was kind of funny, because I actually have a good friend (Gustavo Lima) from Brazil (my co-worker here at Microsoft) that graduated from Harvard last year, and (obviously) he was there live on the speech and “sharing” graduation with Bill Gates.

How did I learn SQL!

Posted on previous blog at 04/12/08

Here a funny SQL code snippet (also called a WTF - What The Fuck!!!).
Try to answer the multiple choice question at the end!
Enjoy it!!! :D

PS: Looking at the comments of the article is also worthwhile!

Service Oriented x Object Oriented Programming

Posted on previous blog at 04/10/08

Though I don’t know exactly how to define service oriented programming and its differences with OO programming, today I understood that they’re definitely different! And I did it in the worst way: stuck in a bug for a really long time.

I was trying to overload a method in my service contract while developing a WCF service, what’s “not possible” (at least in the usual way).

You can look into this link the whole concern about this and how to solve the problem! It’s a really helpfull article!

Wait for an article about service oriented programming…this problem will address me to learn more about this (More natural impossible, since I’m working using it about 2 months and just realized that I even don’t know basic definitions - Yes, I feel shame for that… but I didn’t need to understand it all to make things work - this is all about get things done and learning later!).

See you!