Showing posts with label Microsoft. Show all posts
Showing posts with label Microsoft. Show all posts

Apr 7, 2007

I'm Making A Difference

The people who work for Microsoft are the most generous charitable givers per employee in the world, and that spirit is at the center of how we work with governments and NGOs. Learn more.

I've been seeing this ad on couple of my friend's MSN nickname...
I've searched to find information about it... and here it is.

i’m is a new initiative from Windows Live™ Messenger. Every time you start a conversation using i’m, Microsoft shares a portion of the program's advertising revenue with some of the world's most effective organizations dedicated to social causes. We've set no cap on the amount we'll donate to each organization. The sky's the limit.

i’m is about making a difference. Not in a huge expensive way, not in a time-consuming way. But in a simple, effective way.



How it Works
1. Download the Windows Live Messenger instant messaging service. There's no charge and it's easy to download and use.

2. Within Windows Live Messenger, click Tools and select Options. Place the text code corresponding to the cause of your choice into your Display Name. -->

Text CodeCause
*unicefThe US fund for UNICEF
*komenSusan G. Komen for the Cure
*nafNational AIDS Fund
*9milninemillion.org
*helpStopGlobalWarming.org
*red+uAmerican Red Cross
*bgcaBoys & Girls Clubs of America
*mssocNational Multiple Sclerosis Society
*sierraSierra Club

3. Keep having i'm conversations so you can keep funding the cause doing the work most important to you.

Mar 28, 2007

WOW!

I kept on playing this game for more than 10 min in TechFest! It's amazingly fun! No words could even describe it!

This will change the whole gaming experience soon, the game play, and the interaction in multi-player games... :-) which means more fun fun fun!

Watch this... What do you think?

Jan 29, 2007

Breaking News! The "Wow" Starts Now!

Windows Vista has been launched today to customers... The new Microsoft Operating system comes in 4 editions (Home Basic, Home Premium, Business, Ultimate). From the first logon page, moving the mouse, touching the keyboard and entering your user name and password you'll know it's a whole new experience. Since of course I had the opportunity to install and test Vista as a WinSE dev, allow me to take print screens from my experience and talk about new features of the OS.
The first thing you'll notice is a fresh new user interface; All applications and windows are surrounded by glass, which gives you a sense of depth, while you can use a window/application you still can see behind it. Also switching between applications has been improved, in fact if you just hover with your mouse on any of the taskbar minimized windows, you'll get live previews of the applications including motion video.
Flip 3D. It's a new and very cool feature which allows you to switch between applications in a 3D space, allowing you to scroll throw them with the arrow keys, or quickly with the mouse.

A new feature is the Sidebar. The side bar is a new feature which allows you to show or run small applications (Gadgets) to do a specific task for you. For example I have the prayer times, a slide show of my pictures, my processor and memory stats, weather and calendar. Other gadgets may allow you to view RSS feeds from your favorite websites and others play your local FM channel. If you want more information from a gadget, you can drag it to your desktop and that way it will expand showing you more information.
A new innovation is the new windows slide show, it’s some kind of a LCD or a device attached to your laptop, allowing you to show gadgets as the calendar, your upcoming appointments and/or your contacts without even turning on your PC. That's what you should expect from the new Windows OS.


Information when you need it; search is now on your finger tips, open start menu and start typing the name of the document or the application or part of the content of the document and automatically files and application matching your search criteria will be displayed.

IE Tabs allows you to view all tabs and the ability to choose and close which ever you don't like.

Windows photo gallery is now easier with features like fix (color, brightness, red-eye... etc.). The more amazing about the photo gallery is that you always have a saved original backup of the image no matter how many times you edited it, so from now on feel confident to edit and try to change whatever you want; you always can go back and remove everything even after years! Another feature in the photo gallery is the ability to play both image and video files, so whenever you preview your album, you don't need to close the photo viewer and run the Media player to run the videos, It's all in one now!

Windows Vista is full of new and cool features. It's simpler, more secure and more user friendly.
To know more about features in Vista go to:

Jan 27, 2007

Scrum Development

I’m working on a tool going to be launched with next Windows Server OS... We are using a project management process for development called Scrum process... I really liked it, so here is what is all about, try to understand it; it’s really interesting.

Scrum believes that a development team should perform as a sport team, every team member working independently but towards the same goal. Scrum suggests that a team has a maximum of 6 - 7 members. The team facilitator is called the Scrum master (project manager in most companies). His/her job is to implement and manage the Scrum process in the project. Scrum masters focus most of their time in managing outside interference for the Scrum team and solving outside impediments or ‘Blockers’ that cannot be solved by the Scrum team (Not managing the project budget like in most companies).

A project can start with any activity; analysis, design, implementation and testing and can change between activities at any time. This increases the project's flexibility and productivity. Scrum assumes that the software development process is complicated and unpredictable and treats it as a controlled black box. Scrum takes into consideration that:
- Requirements are not fully understood at the beginning of the process.
- Requirements change during the process.
- The process becomes unpredictable when new tools and technologies are used.
They say that scrum is also a way of playing the rugby (the game). Characteristics that Scrum shares with rugby are:
- The environment determines the process (the game)
- The environment (functionality, timetable, business need and competition) dictates the ending of the process (the game).
- “Rugby evolved from breaking soccer rules – adapting to the environment.” (Schwaber, K.)
- “The primary cycle is moving the ball forward” (Schwaber, K.)

The whole project gets divided into periods of time with a maximum duration of 4 weeks. One period is called a Sprint and every team member gets tasks to execute within the given Sprint. For example in our project the sprint is 3 weeks time period, during which we should come up with a complete phase of the project. During the sprint, the team conducts regular scrum meetings (2 days per week in my team, other teams do scrum meetings every day). The meetings are held in the same place at the same time every specific period of time. The meetings don’t last for more than 30 minutes. The scrum master is responsible for asking every team member the following three questions:
1. What have you done since the last scrum meeting?
2. Is there any road blocks?
3. What do you plan on doing between now and the next scrum meeting?

Conversation is restricted to the team members answering the above questions. Meetings can be established for immediately after the scrum meeting based on answers to the above questions. The scrum master is responsible for making decisions immediately, if required to remove impediments to progress. The scrum master is responsible for noting impediments that must be resolved external to the meeting and causing them to be removed.

In my opinion, I feel the scrum development management is very effective, makes the developer free to decide what he needs, which reflects on his creativity. It also identifies for the management the role of solving any blockers facing the team, not controlling the team like what really happens in many companies! It’s an amazing experience and a new thing that I’m learning in Microsoft. It also made me feel that my project manager now, is actually part of my team, we are all working to get the product done, he’s not ordering anyone to finish, he’s one of us, we are a team! But he’s the one who points out that we are late in schedule, or that we need to ramp up a little... etc.
I Hope I have transferred some of my knowledge to u in a good and effective way, I really do hope that some managers really read this way of management and try to implement it in their own companies. Just give it a try, really it’s all about the team, managers should be part of the team!

References

Jan 25, 2007

Breaking News! A freind's interview on JobsBlog!

One of my friends had an interview with Priya ( An international recruiter in MS) published in MS JobsBlog... Mona was accepted in Microsoft interviews in Egypt last December... she posted a couple of comments here responding to my posts about MS interviews results...

What's really nice is, we have now more than 10 from the Faculty of Computer and Information Sciences Ain Shams university have been offered positions in Microsoft! This faculty only graduated 7 generations! Each have an average of 150 student... it's almost a 1% from the graduates, but these 1% are just normal students in the faculty! I admit there are many better than me that didn't have luck with MS interviews (at least I know 3 of them)! My point I want to prove is, this is considered as a very healthy sign to all FCIS graduates, we are here, in the largest software company in the world! We can do it, any Computer science Ain Shams graduate can do it... btw I hardly passed my exams during college! I didn't like to study and I believe I only studied the last 3 days before the exams, sometimes in these 3 days I open books I've never seen before, I didn't attend lectures, I hardly go to labs! This doesn't mean u should do so; the reason I'm saying this is to encourage everyone to study programming and algorithms harder and harder, be practical, if your grades are not that good in school, u should know that this doesn't mean anything in terms of practical life! GO FCISers! Coz many of u really have talent!

Mona's Interview:
http://blogs.msdn.com/jobsblog/archive/2007/01/25/meet-mona-from-egypt-to-seattle.aspx

Jan 20, 2007

Funny from Microsoft

From day one in Microsoft, everyone is talking about security... when u sit with your team lead, or any of your team members, they keep on warning u to always lock your pc before leaving it, even if u r just going to the bathroom or going to the room next to you, Because u have the Windows code on your machine, and there is a lot of people going around the building that are not allowed to c the code; so u always need to lock your machine... One of my team mates told me once that whenever some1 leaves the pc unlocked, some1 else send an e-mail from his outlook to the whole team to embarrass him... I didn’t pay a lot of attention, till one day I received these 3 mails in my inbox, starting with this e-mail:

To: All Developers
Subject: Hello, I am a teddy bear!

And I forgot my pants today!

Signed by: A.R
--------------------------------------------

I didn’t really understand what that is?!... Why would A.R (A British dev who just joined the team) send something like that?! Until I received this e-mail from a team lead (Who’s also British):

----------------------------------------------
To: All Developers
Subject: RE: Hello, I am a teddy bear!

Really? That must be embarrassing!
Almost as embarrassing as leaving your computer unlocked, perhaps?

Signed by: I
----------------------------------------------
Now that was funny, now I got it, so A.R really left his pc unlocked, and some1 sent this e-mail for him... But, it’s not over; A.R sent this e-mail later the same day:

----------------------------------------------
To: All Developers
Subject: RE: Hello, I am a teddy bear!

I,
As a fellow British; I would have thought you of all people would have realised this message was from an impersonator – I would of course use ‘trousers’ rather than ‘pants’ in any group-wide communication, to avoid any confusion as to what I meant.
I would have thought the prankster responsible ought to be the one most embarrassed... ;-)
Yours,
A.R

Did u get it? :-) Smart from I. to figure out that this was an un-locked pc case, even smarter and funnier e-mail sent by A.R. to reply and avoid a little embarrassment!

Dec 26, 2006

After MS Interview!

well, there are 3 outputs from MS interviews!, those who get accepted, those who know that they didn't did good and that's why they were not accepted, and those who don't know what on earth has just happened!..

well, to start with who didn't get accepted, it's really OK, as a start try to find what did u miss?.. try to read my Interview tips again, hope this could help!. Try to look at the interview process as an experience interview, u really did sit with gr8 minds, team leads and managers in the largest software development company in the world!.. they r brilliant, and u had the opportunity to talk to them coz from the phone interview, they suggested that u r a qualified person, and u r qualified, u just need some more work to do. Do it, study harder for next time interviews, Don't give up!, it's really a life time chance that's gonna change ur life!!, u can't give up that easily!, or can u?.

For everyone got accepted!, Congratulations!.. :-) I'm really happy and looking forward to c u soon in MS campus!, u really reached something u dreamed about for a long time!, or maybe worth, u didn't even dare to dream about it!. will to be honest, if u think that u reached ur goal, maybe it'll take u some time, maybe till u start working, and u'll find it's not the end, it's just the start!!.. what do u think!, that this is ur stop!, it's just getting starting!..

well, there is a lot of stuff that u'll need to ask about of course, a MS recruiter will contact u soon to talk to u about many things, u'll be assigned a relocation specialist, a paralegal, and a lawyer!.. all will work with u for ur visa procedures if u are not already an American citizen... MS consider it all as a long term investment.. Investment in U!. Don't get scared!, Never be afraid, those people who hired u know what they r doing!, U R QUALIFIED TO WORK FOR MS.. u needed me to tell u that!.

2 days ago, I'm still currently working in a tool that's gonna be released with MS longhorn next year, so I was discussing the implementation design and algorithm with my team member (He's also now my project lead or my senior Dev.).. well, He's 27, he has 2 masters in Computer science!.. and he has been working for MS for a bit more than 1 year now.. To be honest, getting my code reviewed is not that easy in MS!!.. there's a lot to talk about during code review, a lot of standards that u need to follow!!.. a lot of things that u need to secure and make sure that u didn't leak!.. so we had this argument about a performance issue in the design that he wants to implement, to make it brief and simple, I didn't agree to initialize all the class objects just by calling the constructor, if the caller needs to do something I wanted him to call it individually just in case the caller doesn't need to use all the methods!.
Well, after a long argument with him, we both agreed to use his approach in case the caller is actually gonna use all the methods that's called in the constructor!.. Anyway that's not what I needed to tell u, but, I'm just like u, I just graduated from the Computer science school in Cairo, and I just had a good and a true argument with some1 here!.. what I want to say is, If I'm OK, U'll be!.. :-) I'm actually just like u, hope I continue to be OK!..

But really, U'll learn everything!.. right now, concentrate on whatever u r doing, if u have any questions about the procedures or anything in ur mind u r free to leave me a comment and hopefully I'll be able to answer ur questions!

Dec 18, 2006

Microsoft Interview Results!

OK.. Today, I knew that 3 of my friends, including my best friend Emad are going to be offered positions for Dev Div team in Microsoft.. I hope my tips helped all of u to pass.. I also hope that the whole interview process ( doesn't matter if u got accepted or not) had been a nice and a good experience for u. You really met gr8 minds, had the opportunity to talk and chat and solve problems with them.. Had the opportunity to think with them.. Please make it a useful experience for u.. and If u didn't have an offer, study harder for the comeback!..

for anyone who has participated in this interview process (Doesn't have to be exactly these interviews, any interviews that u did with MS even in the past), can u please tell us ur experience, how did u do?, is there anything that anyone should know about?, how to prepare, how did u feel?.. how many questions did u answer?, what do u need to stress on next time in the interviews?.. how did the interviewers talk with u?.. even the simplest stuff that u were curios about before the interview, say it so that others can benefit from it.. waiting for replies.

Dec 8, 2006

Microsoft Interview Tips!

Of course since I'm a SDE, I'll talk about tips for SDEs or SDETs interviewing for MS..

Tip #1. Do u love Microsoft?.. want to join MS? why?
U really have to think why do u want to join MS and do u have the passion for technology or what it can do?!.. that's a question u need to ask urself!. Try to read more about Microsoft.. have u heared about something called the green house?.. try to do some homework about the company that u wish to join.

#2. SDE or SDET?.. Prove it!
CODE, CODE, CODE, CODE... U really need to write a lot of code on paper.. think on paper!.. remember there won't be a PC in the interview process, u'll be asked to write a lot of code on paper.. Test and debug your code.. Think, be creative!.
Optimizations.. From now on, whenever u write a piece of code, optimize it.. was it O(n^2)?.. make it O(n*log n) by some sort of binary search or something.. did u do it?.. Why don't u start using pointers, get a handle to the whole input or something, and maybe u'll be able to optimize it to be O(n)!!!

#3. Your CV... 95% Your interviewers will have your CV while interviewing you.
Everything in your CV, U must really know it.. Know ur CV..

#4. It's not all about how much u already know!.. It's about how much u r ready to learn.
It's about ur ability to develop.. and believe me it's totally true, I'm here and I c it myself!.. People in Microsoft have the ability to recognize who have this ability and who don't!.

#5. Communication!!.. how do u communicate with the interviewers?, do they understand u?.. did they get what u really want to say?.. do u understand them?.. how good is ur english?
If your english is not that good, u still need to communicate with ur interviewer, u still need to show him how good u r!.. So, If you didn't understand a question or part of it, after the interviewer finishes, ask him to repeat the question again.. It's really OK to ask, and believe me it's much better than answering a whole different question!. u still need some data?, talk with the interviewer.. Communicate with him!!.. if ur english really doesn't help u, then after u have been asked the question, try to have like 10 sec. or something to put the answer in place in enlgish, and then say it, try to avoid hesitating or talking then stop, then talk again, then stop!.. it makes the interviewer feels that u lack some confidence, and its a kind of miss communication too!.. Ur interviewer might be ur team lead, or team member!, so If u can't communicate with him, he won't be sure to accept u!.

#6. Be ready for the interview!.. u really really need to study very hard!.
Solve all types of puzzles u c.. Data Structures, u have to be able to write full classes of a linked list, trees... etc. on paper!.. what's a stack?, how to test it?.. etc. Searching in a string, string operations, binary search... Sorting, all types of sorting, did u know that there is a sorting algorithm that sorts an array of integers in O(n)?.. read about it, it'll open ur mind to code optimization.

#7. No matter how many questions u've read, no matter how many interview questions u have read... Get ready to c whole new set of questions in ur interview!.
Don't get surprised or afraid from any question.. always expect that u r going to be asked a new question!.. go step by step.. Don't be afraid.. no matter how u think this question is hard or un-solvable. IT IS!.. just start collecting small info, write them down.. go another step forward.. just a small one... U 'll be there!.

I hope u'll remember all these tips, make sure u do them!.. about what to wear, u r free to wear anything!, ur interviewers might be wearing shorts!!. so wear whatever is comfortable.. for example I was wearing a black trousers and a grey T-shirt.. just whatever makes u stop thinking about it!..
I guess that's all what anybody should need in a Microsoft interview!.. but really if u have any questions or need some help with some specific thing that I missed or anything that u have in mind, u r free to leave me a comment and I'll be more than glad to answer or help!.. Hope to c u soon in Microsoft Campus!

Nov 3, 2006

After One Month With MS

Well, Do you want to know how Microsoft is?..


Ok... Microsoft Campus is HUGE!!.. We have many buildings, many many buildings.. My building is building 28.. We have almost like 5 soccer fields in the campus, probably like 1 baseball field and basketball courts in some buildings.. U can come to work at anytime u want to.. Almost all communications are done by e-mail, I'm still new but there are these automatic groups that u join since u r in their team, so u receive every day at least 20 e-mails.. For me, most likely I receive 8 e-mails that are sent for me (not for a group that I join) by my boss, my team members, MS benefits.. etc..

U have a 1-on-1 meeting every week with ur direct manager to talk about ur progress, any issues that u have, ur plans..etc.. I'm an SDE (Software Development Engineer) in the Windows serviceability team (Team responsible of delivering hot-fixes, service packs and special customer's services) and I have 2 Pcs on my desk.. 2 LCD monitors, and u have a switch so that u actually can switch one LCD between the 2 Pcs... My 2 LCDs work with on pc, and with the switch I can switch one of the LCDs to see the other PC... One of the Pcs is my Development PC, and the other is my testing PC.. U have 2 LCDs attached to one PC because that increases ur productivity in writing code, this way its easier for you to open 2 VS or have 2 maximized windows one on the 1st LCD and other App is on the other one and u can move everything around and c everything clearly without having to minimize and maximize every now and then (and believe me having 2 LCDs is not just nice and fun to have, they actually DO increase ur productivity)..

Right now buildings are crowded and they r building new buildings to fit all MS employees, so I'm currently sharing an office with some1, so almost every office now contain two SDEs or SDETs (SDE in Test).. Except ofcourse Team leads and PMs who have their own single offices.. U have this MS ID card, where u enter the buildings just by passing it infront of this thing so that the door opens for u, no one should be in MS campus unless he's a visitor or an employee, otherwise MS security will ask him to leave asap and 'll make sure that no one un-authorized is in the campus..

Each floor in the buildings have free video game, foosball (the little soccer table with little players) or an Xbox in one of the meeting rooms (all these games are actually in my building).. There is also free Cokes , popcorn, Starbucks Coffee.. all free.. You have a lot of meetings every week, and I mean a lot of meetings.. My outlook calendar is filled with meetings and events and sessions.. Some of the sessions I have them scheduled next June or something!!..

People working in MS are from all countries, u c Arabs, Indians (of course, 2 of my team mates are Indians), Chinese ( have a team mate who's Chinese), British, French (my manager is French), Bangladesh, Turkey and of course from the US (one of my team members also is American).. So my team consists of 5 and our team lead is 6..

People in Microsoft are really really nice, really funny, and really polite.. We have this gr8 environment between us, which makes us really a team.. U r flexible to do anything u want, which makes u comfort, so u want to make others comfort, which reflect to the way u work, so u want to produce more and more, in a better way.. Which I think is excellent environment to work.. In my 1st and 2nd week I had this 3 or 4 meetings, where all the WinSE Devs (Windows serviceability Developers) join and all we did was introducing new employees like me, and introducing old employees and having jokes and laughs!.. :-) so we r really working hard..

One thing that I really really liked, and still amazed!.. is that I met all people who interviewed me.. and they all remember me by NAME!!.. I come to them say Hey, u might not remember me, and before even I complete my sentence, they say.. heyyy.. I remember u.. U r Hany Barakat from Egypt!!.. even my manager's manager remembered me by name!!.. btw they didn't remember others who got accepted in same interviews last year.. THEY ONLY REMEMBER ME.. AND BY NAME!!!

I also met Priya, she was my recruiter, we had this welcome party one day, I had some energy so I was all over the party making jokes and playing with everyone, That made Priya ask me to have an interview with her to post it on Microsoft Jobs blog!!.. so we r having this next week in the Cafe while having lunch.. so my name is gonna be on MS website from the 1st month at work!!.. :-) cool !!..

Right now I'm using C++ in the product that I'm working on now, which might scare some people coz we didn't study C++ in school and I always thought that VC++ is really hard.. but this is not Visual, this is only C++, u either work on a console application or a library, I never liked VC++, but C++ is fine.. also I'm in WinSE team, so most of the code is already there, I only either fix something in it or redesign it to work better.. and if there is any function that I don't understand, there are many places to look it up and know what exactly it does.

Owns in MS means this part is yours, u r responsible for it.. it's ur code.. I own this tool that I'm working on right now which 'll be shipped n sha2 Allah with Windows Longhorn Server next year.. and after Windows Vista is shipped, I 'll own many of the file systems and new file systems in it, and I 'll also own the command propmpt!!.. the cmd.exe!!.. :-).. which I find cool to own something used by many people!..

In MS we don't use VS to build or compile, instead we have this command prompt tool to build and compile our code.. and u can edit ur code anyway u want, but u only compile using this tool..
The first thing u do is do something called enlisting (downloading the source code on ur machine to be able to compile).. only if u have permissions to.. and since I'm in the WinSE team I can enlist any Windows version to compile..

Actually there is still a lot to talk about!!.. so y don't we leave it in another post?.. hope 2 c u all soon.

Sep 30, 2006

US 2nd day

It has been a while since I last post anything, I was relocating to the US since my last post, Seattle, Now I'm in Seattle. Actually its a very nice city, very alive, looks cool, a lot of things to do around, near the sea so u can get nice scene every once and a while. I'm staying now downtown Seattle not in Redmond where Microsoft is. Check out Seattle on any map on the internet to know where to live near Microsoft campus which can be found . There is Seattle, Bellevue, Redmond, Mercer Island and Kirkland.

I took a tour today in most of these places with my relocation consultant, I still don't know much about them, still not sure where I'm going to rent in the end, but still, I have along time to choose, things will be more clear in a month or a month and half. My start date is next Monday 2nd of October. Wish me luck.
I miss all my friends, even though when I was in Cairo, we didn't used to see each other that often, :-) but now when I know that I won't be seeing them for a long time, I really do miss them. Ofcourse I miss Radwa (My Fiancee) the most, we talk to each other and I see her in the webcam everyday, but still I wish she was here with me, but I'm OK... I just need some time to sort things out and bring here to share out life together. I really do miss her, I miss all my friends.
I got lost today while I was picking the rental car, it supposed to have a GPS so that it can help me to show me the way home, but as soon as I drove out of the rental garage, the GPS started to tell me where to go, :-) and suddenly in the middle of no where, I realized it was talking about a whole different road, it couldn't even show the map of where I'm, it didn't locate my location right. I stopped at a fire department and asked for directions, then I managed to go to the highway, and I drove along way before seeing a Seattle and Redmond signs, that's when I remembered from my tour in the morning this road, and managed to go downtown Seattle. In downtown Seattle, all I did was turning the GPS off and back on Again, and suddenly, now it can locate my correct location and it was just perfect. Nice experience I believe. For those who are curios the car Im driving now is a Pontiac G6. I 'll see u around.

May 30, 2006

My Second Interview

See Also: First Interview

He started with introducing himself, "Hello Hany, My name is Ahmed I'm a testing manager at Microsoft. One of the projects I worked on is testing TCP/IP over windows" or something like that. He started with asking me about my work and what I do, I told him that I developed the ticketing engine for the soccer African cup of nations 2006 that was used to book tickets online for the matches, and the previous week I just finished the development of the Syrian e-government website.
- "very cool, sounds nice... Ok Hany, lets c, Why do you want to join Microsoft?".


"I Love Microsoft, I love the way that Microsoft actually delivers the easiest OS and applications for grandma, grandpa, children and just normal end users. So, it actually delivers and support their needs even accessibility options and still secure".
That’s when he wondered "secured!!.. Don't u hear every now and then about windows trojans and hacks". My answer was "Well, how many windows OS in the world compared to other OSs, ok, what’s the number of end users that uses windows?.. Many of the windows users are actually children, old grandpas and grandmas, or just a normal end user that knows so little about computers. I believe these users are considered a good material for hacking. On the other hand, how many Linux is used on the world?, and who uses it?... most of the Linux users are actually professional IT or developers, give these guys a windows, and it 'll be secured to them just like a Linux and maybe more with up to date service packs and hot fixes. And don't forget that not using Linux so widely at homes like windows, makes it even harder for hackers to learn how to hack it, while the wide spread of windows, gives hackers an opportunity to try and learn on many users, but still, the wide spread of windows and the very good support, hot fixes, and service packs delivered by Microsoft after the windows release, makes it more reliable."
- "Fair enough, What if you couldn't join MS? What will u do?"
- "Its not gonna be the end of world, I’ll climb my career path as I should be, but still, Its like my dream to join MS, I love MS and I want to be part of its team, its just like u r a professional player, u play for many teams, I can join Google, Oracle or whatever, but I love MS as if it was my team and I'll love to join it in the end."
- "What you could probably give to Microsoft?. Do u know how many people work for Microsoft?.
- "A million"
- ":-) no no, not that much, 50,000. What’ll u give in the middle of all that?"
- "I’ll be part of the team, No one stands alone, I'm part of my team".
- "Fair enough, fair enough... Ok Hany, what’s your most 3 preferred computer fields that you like?".
- "Well, AI, I love AI... Cryptography... And" (I don't remember what my 3rd computer field that I said was).
- "Cool"

He read my CV a little bit, then asked me about cryptography, "If some1 wants to send secure information, encrypted information to another pc, how he could possibly do it?". We talked a little about private and public keys, in the end I was saying that PC1 that receives the data have a key which decrypts the message sent, and the other PC2 that sends the message have another key that encrypts the data.. That’s when he asked me
- "Ok, so how PC1 sends the key to PC2?!"
- "On a secure channel" I replied.
- "What is a secure channel!, there nothing called secure channel!" he said while drawing it on paper a channel between 2 PCs, and then drawing a line cutting the channel he drew saying "I'm here now, I interrupted this channel and I can know what’s the key".
I started to think... We just can’t encrypt the key coz that’ll need other keys so that’s an infinite loop. It took me about 10 sec when I said "So what! It doesn’t matter if any one sees the key; actually we don’t even need a secure channel or anything. It’s a public key. Anyone can encrypt a message and send it to me; its just no one can decrypt it; because only me have the private decryption key".

He then started to ask me if I know assembly, my answer was "Yes, we studied assembly during my 3rd year and I love it, but I don't remember it very well". He asked me about interrupts, is there functions in assembly and how we pass parameters between functions...etc.

He then gave me what's considered my first problem during my 2nd interview "We want to implement a function, that takes as a parameter 2 numbers and an operator ('+' or '-') and returns the result of the first number plus or minus the second number depending on the operator. I want u to write the design of this function for me, no code, I don't want u to write the code for me, or the pseudo-code, I want a design, describe the function in text. Ur design, or what u 'll write now, 'll be given to a developer to implement it, so u have to write it so clearly that he can develop it without getting back 2 u or asking u about anything. U should consider in ur design 2 important things, first is object oriented, second is maintenance of the design, which means for example that we can increase the number of operators in the future."

I started to write the design as he said, just after I started he again told me to remember that he doesn't want code or pseudo-code. I took about 7 min or something and then he told me "Ok, that's enough, what we have here?” My design was fine, I considered object orientation and maintenance, for example I thought of having a function that takes an array of numbers and an array of operators, which then calls another function, so that we can increase the number of operations if we want, I also assumed that operators are kept in a table with a pointer to the function that implements this operator so that we can easily add more operators after implementing the function that does the operator and add it to the table, where each function of these takes 2 numbers and an operator and return it to the main function to continue with other operations if there is any more.

He read the design so fast with me, that's when he told me "Ok, I'll take this design now, I'll implement it, I'll code it on my notebook, While doing so, I want you to write the test cases for this function just on the back of your design."
I asked "How should I write the test cases? Like just the input and expected output?" "Yeah, just a table with inputs and expected output for each input"

I started to write my test cases. N.B.: Remember that the most important feature of any application or even a function, is to do what it was designed for. Always start with basic scenarios that 'll usually happen, and then u can begin to test the limits of ur function, maybe whats the max data it can hold as input, max data in output, what about min data, empty.. etc.

So, my first couple of test cases where just Normal test cases, 2+5=7, 8+2=10, 5-2=3, -4-3=-7.... 3.6 + 2.7 =! That's when I asked him "Are we allowed to add float numbers!” "That's actually a very good case, lets see, are we?, lets take a look at the design" he said. In my design I didn't mention whether numbers are integers, double or float, he told me numbers, and I wrote it in my design just like he said, and that's was just the beginning. I then told him that I’ll add in my design that the function allows float, but he told me "No, no, no the design has already been delivered we can’t change the design, just lets see other test cases". Int.Max+1 =!!! Again, I looked at him, "what then? What’s our limit?" I wondered. He answered with a big O, "That’s a very nice case, what's the output of your design on this case", Of course I answered the result’ll be Int.Min that's when he told me "Is that a reasonable answer!!, a guy give a very large number + 1 and the result is in negative!", I said "Nope, I should return an error or something". And ofcourse the same was with int.Min -1. He considered that’s enough trying to point out that my design wasn't actually the best as my test cases tell. That was probably everything about this problem, and we moved to this very hard question.

- "What is the most computer science field that u r good at, and I’ll ask u in it".
- "Thats the most hard question ever could asked" I said laughing.
- "Yes, in the matter of fact It is" He said.
- "Ok, well, AI, Artificial intelligence"
He then gave this puzzle "Four people must cross a bridge at night; the bridge can hold only two. The travelers must use a flashlight to guide their steps and there is only one flashlight. There is one of them that travels the bridge in 1 min, the second in 2 min, the third in 5 and the 4th in 10 min." and that's it.
I didn't get it, "Where is the problem then!!" I stared at him wondering, I couldn’t know so what! they just can pass.
That’s when the HR who were sitting with us spoke up, "So, u want him to get the optimum time to pass the bridge, don’t u?" she was asking Ahmed. He just said that he needed to get any solution, and then we’ll need to optimize it. "Well, I can’t think now but with the optimum path" I said. He answered "Be my guest".
I started to think and talking to myself, he tried to help me at a point, but I told him to wait, I can do it, I jumped to conclusions like that the 10 min guy must pass with the 5 min guy to minimize time, and neither of them can pass twice on the bridge, so whenever they pass together, some1 on the other side from the fast other guys (who are considered fast) must take the flashlight from them to turn it back, then that was it, I got all the hints, put them together and found the solution and told him about it. I believed at this point that the worst thing went on my interview was the design question.

"Time is up" HR said. “Ok Hany, IT was really nice to meet u" said Ahmed standing up and shaking my hand. While we were going out the door, still talking a little about ACM, I mentioned that I used to test the implementation of my friends in the contest because I used to give very good test cases that could define if there were any leaks in there implementation. That's when he pointed to the design paper telling me "Well, u seem u couldn't prove urself that much" he said with a very little smile on his face. To be honest that brought me down a bit as I was heading to the middle room (where we sit between interviews). I was the last one went out from the interview as all the interviewees already were waiting in the room. I sat there, opened a coke, kept on sipping small sips waiting for my 3rd interview.

May 2, 2006

First Interview

Previously: Before Microsoft Interview (Getting Ready)

- "So, you won the 2nd place in the ACM contest?" he said reading my CV..
- "Yeah" I answered.
- "so what did u do in ACM?".
I started talking about the ACM rules and how the contest goes, Then I told him that I was responsible for dynamic programming, recursion, and pattern problems in my team.
- "Dynamic Programming!, So you are good in dynamic programming?" He asked.
- "Actually not that good, Its like I'm a beginner, Its like I know basics and concepts, but still I can solve some dynamic programming problems." I replied.
- "Okay, I have this dynamic programming problem that I need you to answer me, just to know how much u know about dynamic programming, if you don't understand anything please ask me to tell u the question again".


At this point I was kinda afraid from dynamic programming problems ofcourse, and I wasn't that sure I can solve it, yet I was doing my best to be cool and calm.
Then he asked me this: "You have three big jars, each contains a different type of liquid, and you have many customers come to you, each one requests either a type of liquid from a jar, or asks for a mix between liquids in more than one jar".

I did nothing.. In my mind I thought "What!!".. I didn't even knew why this is a dynamic programming problem!!.. I asked him to explain some more, I even asked where is the problem?. "So, you want me to develop a solution that handles this scenario?" I asked. My idea was to keep customers in a queue with FIFO and just give them whatever they need unless they asked for something that is no longer available then they 'll be tomorrow's queue. I was just giving hints and talking with him, I didn't really give him an exact answer, but we just talked about this one.

He then drew a line on the paper saying "Well, forget this problem, now our interview is going to start".
- "You have people standing in a circle" he said drawing nodes on the paper circularly. "After n someone, this n someone is removed from the circle, and then u start counting another n someone from the last u just remove" explaining what he was saying on paper. "Who wil last till then end?" he asked.
I said "that's Josephus' Problem". He answered "Yes, that's good, you know Josephus' Problem?", "Yes" I replied. He asked me about the idea, and to implement the algorithm, that's when I said "I 'll assume that the linked list data structure is already made", So I wont write the implementation code of the linked list. But he said "No, Implement the code of the linked list, I want the whole problem solved from scratch".

I implemented both the linked list and Josephus' algorithm, then he started to take a look at the code with me, he didn't comment on the linked list implementation, but when we got to the main problem's algorithm he asked me "How could you make this code work better?". My answer was mainly about just simple code optimizations that makes the code more easily readable and just saves one or two checks and code lines.
- "Ok, how can you test your code?".
This was actually the key to most of my algorithm implementation failure, I started to tell him test cases, my first couple of test cases were normal test cases just to make sure that the algorithm is running ( and that's the only thing that passed my testing). What if the number n to remove from the list is zero?, what about the list is empty?, Okay, the worst is.. What if the number n to remove from the list is NEGATIVE.. And some others, my implementation was actually handling the basic cases of the algorithm the normal cases, and sometimes it passed some of my cases, but not all of them.

Anyway, he then started to read my CV, he noticed that my graduation project was robot motion planning, so he started asking me about it. I even explained to him the algorithms I used, what I was responsible for in this project?, how did I move the robot in both known and unknown environments, and how I divided my environment into small cells.

Then he asked me about the MCSE course, and how I became MCSA certified, he then asked me about TCP, UDP, DHCP, supernetting, DNS.

That was almost everything in the first interview, Thoughts in my mind were "My first interview went fine, but still I have a long way to go." .

The interview almost took 45 min, and then me and the other four interviees met in our room, where we hanged out, drink some coke and relax for 15 min, I didn't really talk about anything, I was trying to concentrate as much as possible.

My second interview was with a testing manager called Ahmed, when we went on the interviewing room together, the table was in the middle of the room where we sat facing each other, and again a laptop infront of him, some papers and a pencil. One of the HR ( the girl who called me in the phone interview) came to the room with us, telling me that she hopes it wont bother me staying with us, she sat with us for the whole 45 min of the interview taking notes.

To be continued.

Apr 12, 2006

Before Microsoft Interview (Getting Ready)

You might want to read the previous post Road To Microsoft.

Good Communication skills, Good Communication skills, Good Communication skills.. That's one of the most important things that u need when u talk with any interviewer, remember, u r going to be their team mate, so u must know how to communicate with them. Interviewers are normal people like u and me; So dont be afraid from them, act normal, be urself, smile, it's very important to smile. Yes ofcourse u must be technically ready before any of this, and even more important is being smart and show how smart and creative u r.


Before the live interview, I started reading about how MS interviews go, reading others' blogs, I started to ask my friends whom had interviews with MS before, I wanted to know how the interviewers talk, how they act, how they ask, where do u guys sit, what does the rooms look like, what they care about, what they stress about, everything, and I mean everything. I even read what to wear and what colors should we wear.

I started to look for Microsoft interview questions on google, I asked meshref and yasser what questions they have been asked in their previous interview, how they thought about it, how they were interacting with the interviewer. I was almost very calm before the interview, don't know why!.

Anyway, The interview was being held in the "4 Seasons hotel", they sent me all the information and asked if I need a plane or train ticket to go to the interview, and they asked me to keep any receipt that I'll spend to go to the interview so that they could be able to pay me back, they asked me to scan the passport and a transcript of my college degree even before the interview and send it to them.

The interviews were going to be held in two successive days, Thursday and Friday, my interview was scheduled to be on Thursday at 8:00am to 1:00pm (First group). They hold 2 interview groups in each day, where each group contains about 5, 6 or even 7 interviewees, the second group start at 2:00pm and also takes almost about 5 hours(If u r lucky enough to pass all).

I went to the interview almost at 7:45am, as a normal person I asked where are Microsoft's interviews being held, I remember they told me its on the third floor and they gave me 4 room numbers, I went to the rooms where I saw no one, I was heading back again to the lobby to ask again, that's when I saw an interviewer, he asked me "Microsoft Interview?", I answered yes, "First room on the right" he said, "Thanks" I answered smiling.

I was the 4th person arriving, I already knew that 2 of my group interviewing with me are friends of mine whom I know (A boy and a girl), both have been offered a position as professors assistants in my college. The problem is, this boy, was actually the supervisor assistant on my graduation project and he's very smart, and he was a team member in the team winning the 4th position in the 2004 ACM ICPC contest over Middle East and North Africa.

A HR welcomed us and started telling us the rules, we were not allowed to talk in Arabic in the whole interview process (even between interviews), and ofcourse we were not allowed to talk to each other about questions we have been asked.

Five interviewers all wearing casual came to the room, each had a CV and other papers in his hand, and each called for one of us. And there it was my first interview was about to start. He took me to another room, we sat on a small table facing each other and a labtop infront of him, there were some papers and a pen on the table too. He introduced himself, I didn't really understand and his English was not very clear, but as I understood, he developed something concerning the TCP/IP in the windows OS. After that he started reading my CV and then asked me my first question... Next Post.

Next: First Interview

Feb 15, 2006

Road To Microsoft

MS :-) 7ases eny bakteb code serry.. :-) msh 3aref leh every time I start thinking about this post, I think I 'll write it in english, :-) w here I 'm f3ln actually typing in english. Anyway, I have recently been offered a position as a Software Design Engineer at Microsoft Windows Serviceability team. and I know that ofcourse its almost any developer dream to be offered a position like this; so to help u out.

As a start, why do u want 2 join microsoft!.. because its a big company?.. because it has many products and its so famous that it 'll contain ur dreams?.. what about google, IBM, Intel, Oracle. All of these companies i'm sure that they can contain ur dreams and more, is it because that Microsoft do interviews in ur country or somewhere near u?.. what if any of these companies do the same?.. what if u got accepted at microsoft, does that mean that after a while of u being there, U 'll leave MS for some other company like google or IBM?!

U have to really start thinking why do u want to join Microsoft!.. u have to really think why exactly MS.. If u have all ur opportunities infront of u, still going 4 MS?!.. prove it!.. if u don't have the motive to join MS, believe me u wont join it. If u really want to be part of MS team; then U can go on and do it. Thats a good start; If u r not going to think about what I said, then stop reading the next posts, because u 'll be wasting ur time. If u really have the passion to join MS, Then, next post I 'll talk about what U need to start with in any interview. c u all next post.

Go to Next Post about Microsoft Interview.