Showing posts with label Work. Show all posts
Showing posts with label Work. Show all posts

Wednesday, September 2, 2009

The Geeky Workplace

One of the cool things about working at Microsoft is just how geeky people are. You can be in a meeting and there might be one or two people who follow sports (strangely it is possible they would be mostly women) and one of them would say something like how about that game last night and most of the people in the room would look at them confused thinking of World of Warcraft or some other sort of video game rather than a ball game.

Oh so much fun.

Monday, August 31, 2009

Return to Microsoft?

Woo! Hoo! I received the much anticipated Return to Microsoft email this morning, so I'm spending some time working on updating my Resume. Now how do I summarize the vast amount of random stuff I did in my last contract to only a few short sound bites?

Tuesday, March 18, 2008

Unemployed

A week long Friday is now over. I am officially unemployed for an hundred days. Today at a little after 3:36 PM I handed my badge over to my Employment Rep.

Before the day was up, I sent this email to those I thought would care.

The curtain closes and it’s time to take the final bow.

Goodbye all, the pleasure has been mine, to have worked with each of you.

Thank you.

The funnyest responce was from my former Manager:

Not every day a tester comes along like Him who both cranked out a lot of excellent work and didn’t drink all the beer!

It's a bitter sweet time. A short time to be free before the next adventure begins. Yet sad, to miss what I have been enjoying doing for the past year.

Sunday, January 13, 2008

Reverse

While helping my office mate prepare for his Interviews a whole bunch of us were coming up with questions and challenges for him. We were really hoping he would make it. One of the challenges asked was to reverse a string.

Having been asked to do it in an interview before (I did it in VB then) I had, had the time to come up with other possible solutions to the challenge. Here is a C# version of the method from memory:

/// <summary>
/// Reverses a sequence of chars in a string.
/// </summary>
/// <param name="value">String to Reverse</param>
/// <returns>the reverse of the provided string.</returns>
/// <remarks>
/// Reverse by back stepping through each char in the string 
/// and filling a StringBuilder with the result.
/// </remarks>
public string reverseStringFill(string value)
{
    StringBuilder temp = new StringBuilder();
    // Iterate backwards through each char and copy 
    // it's equivalent from the source string.
    for (int index = value.Length - 1; index >= 0; index--)
     {
         temp.Append(value[index]);

     }
     return temp.ToString();

}

Here is another variation:

/// <summary>
/// Reverses a sequence of chars in a string.
/// </summary>
/// <param name="value">String to Reverse</param>
/// <returns>the reverse of the provided string.</returns>
/// <remarks>
/// Reverse by back stepping through each char in the string 
/// and filling the resulting array.
/// </remarks>
public string reverseStringBFill(string value)
{
    char[] temp = value.ToCharArray();
    int length = value.Length - 1;
    // Iterate backwards through each char and copy 
    // it's equivalent from the source string.
    for (int index = length; index >= 0; index--)
    {
        temp[index] = value[length - index];
                
    }
    return new string(temp);

}

My Office mate having learned in C/C++ most of school came up with a swap method that he had learned in class, but when he tried to run it in C# it had compile errors. because he was trying to do things the C way in a type safe language. After a hint about casting he figured it out. What he ended up with is something similar to the following:

/// <summary>
/// Reverse String using Swap
/// </summary>
/// <param name="value">String to Reverse</param>
/// <returns>the reverse of the provided string.</returns>
/// <remarks>
/// This is how a C/C++ programmer would reverse a string in C#
/// </remarks>
public string reverseStringSwap(string value)
{
    char[] returns = value.ToCharArray();
    int index = 0;
    while (index < value .Length / 2)
    {
        // Swap chars
        char temp = returns[index];
        returns[index] = returns[(value.Length-1) - index];
        returns[(value.Length-1) - index] = temp;
        index++;

     }
     return new string(returns);

}

While he worked at the problem I was thinking of a similar way to do the same thing from a managed perspective:

/// <summary>
/// Reverses a sequence of chars in a string.
/// </summary>
/// <param name="value"></param>
/// <returns>the reverse of the provided string.</returns>
/// <remarks>
/// This is similar to the swap method except it
/// only pulls it's chars from the source string.
/// </remarks>
public string reverseStringBSwap(string value)
{
   char[] temp = value.ToCharArray();
   int length = value.Length - 1;
   int half = length / 2;

   for (int index = 0; index < length; index++)
   {
      temp[index] = value[length - index];
      temp[length - index] = value[index];
                
    }
    return new string(temp);

}

He had written his in a console app and I in a GUI app so rather than  return new string(returns); His actually used Console.Write(returns); I stumbled around for a little while trying to remember how to cast to a string. But eventually found it, hopefully I can remember it now. I have changed the methods so they work the same in a GUI and a Console app as I like a clean Modular design.

While at it I found Array.Reverse(""); and this nice little, simple, clean and tidy, method ensued:

/// <summary>
/// Reverses a sequence of chars in a string.
/// </summary>
/// <param name="value"></param>
/// <returns>the reverse of the provided string.</returns>
/// <remarks>
/// This is the simple way to reverse a string.
/// Simply by using the power of the Framework.
/// </remarks>
public string reverseStringArray(string value)
{
   // Copy to an array
   char[] temp = value.ToCharArray();
   // Reverse
   Array.Reverse(temp);
   // Return casting the array as a string
   return new string(temp);

}

Now for the real fun. Recursion (Where a method calls it's self over and over until it finishes it's work, then backs out to provide the results.). This method ends up being fairly simple, but it is slower, has potential to crash and is somewhat difficult to wrap one's head around. But it looks clean and impressive.

/// <summary>
/// Recursive String Reverse
/// </summary>
/// <param name="value">String to Reverse</param>
/// <returns>the reverse of the provided string.</returns>
/// <remarks>
/// This method Reverses a string by calling it's self recusively 
/// The method used here is certainly not the fastest method avalible
/// as it uses slow string concatenation and has the possibility of
/// having a buffer overflow recursing to many levels if using a 
/// string which is to long. But the idea is just so fun.
/// </remarks>
public string reverseStringRecursive(string value)
{
    if (value != "")
    {
        // Recurse the incoming string, minus the first char, then return 
        // the resulting string, appending the first char to the end.
        return reverseStringRecursive(value.Remove(0,1)) + value[0];

    }
    else
    {
        return "";

    }

} 

Ah, this was fun! One of these days I should revisit one of my old favorite sites (http://www.xbeat.net/vbspeed/) and try to work out a method for timing the methods and try a few other speedy ideas.

One of the odd things from that site is that you learn that simplicity is not always equal to speed. Rather often the reverse is true. There are some strangely long code snippets setup just for improvement with speed.

Monday, January 7, 2008

Résumé updating

I have less than three months left in my contract, so I'm back looking over my Résumé again, trying to figure out how to add my current position to it, which apparently I had added in June and since forgotten about the contract mix up which required an update. Well, I have updates to add to it anyway, as I have been doing some SDET work lately. Ah, having fun breaking software, he he.

While helping cleaning on Saturday I stumbled across a packet which included a handful of Resumes. I glanced over them and thought about what would cause a potential employer to balk, while trying to read them. I was balking anyway, they were a little brash, slightly pompous and blindingly difficult to read. All written using one of the the standard Word Resume templates. On one the goals mentioned had nothing to do with the position.

If I were the hirer I don't know how long I could stand looking over those resumes unless all of them were similar. So I think I know some things I should remember as I work on mine. But it is hard to detach myself from what I have written, to look at it through someone else's eyes.

One reason for the update is that there are a couple of FTE positions open on my team which I could possibly apply for.

I'm not going to get all excited, thinking I will actually get a position, but if I do interview, it would at least be good practice as I continue to learn and grow in this career path.

Sunday, January 6, 2008

I _ Software

A silly thought came to me the other day of the perfect bumper sticker if I were to ever get one. So I went searching around and finally found a website which allows you to design your own bumper stickers http://www.makestickers.com/customize.aspx?TID=5870 And this is what I ended up with:

But if I was ever to find a way to get in on the Dev side I would have to switch to this one:

I think the first one is funnier.

Wednesday, December 19, 2007

IE Passes Acid2

Woo, hoo. A couple of months ago I was waking through the halls of IE, so I could catch my carpool home, and glanced something exciting on the wall.

What I saw has finally been announced. It should have been introduced something like: 

I hope all you developers out there there now have smiles on your faces.

Why? Because IE8 finally passes the Acid2 test!

http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx

The first section of the video on Channel9 is cool.

The team has put in a lot of work over the past year, they still have work ahead. But it is exciting. At least for someone who does occasional web development.

When IE had a public bug tracking system setup for IE7 there was a bug which simply stated. "Pass Acid2 test". Well I suppose that bug can be closed now. :)

Monday, October 1, 2007

Socks and Sandals

Sad. My Manager is moving to a new position soon. He is an awesome Manager. I suppose it is good that he is moving on at the highpoint of this position. That's the way to do things.

He is one of the classic Pacific Northwestern Socks and Sandals guys (http://www.werealotlikeyou.com/) See #56. And the Youtube to go with it (http://www.youtube.com/watch?v=Z59fQ12OR0A).

Ah. Maybe I didn't have to give up Sandals and socks when I moved up here after all.

I finaly fixed the you tube link

Wednesday, August 8, 2007

A Little on the Class Culture of Microsoft

Here is some interesting information about employment at Microsoft I have gathered. First you need to understand that there are two or three classes of Employees at Microsoft. There are FTE's (Full Time Employees), Interns, and CSG's (Contractors, Vendors and other Contingent Staff).

FTE's are just that Full time, They get paid Salary. They have good benefits. But no Overtime.

Interns are recruited directly from Colleges. They usually come in to experience the Microsoft culture create a project and do regular work. They are treated just as FTE's except when school starts they go back. Often Interns will be hired on as FTE's

CSG's are divided up two or three categories. In this there are Contractors and Vendors. The other Contingent staff I am not quite as familiar with how their employment works.

Contractors come from a variety of Temp Agencies, such as Volt, and Excel Data Corporation, which seem to be the two largest. They are hired, on contract, for a maximum of One Year. They are provided Office space, which is usually shared with others. Many Offices have two or three sharing an office. Contractors are provided with equipment and supplies, but are not privileged to FTE perks such as use of the athletic fields, or discounts at the Company store. Once a contractor reaches the end of their contract they are let go and can not return to Microsoft for 100 days at which time they may be rehired anywhere in the company.

Many of the Agencies offer jobs with other companies such as with Real Audio or Expedia, but by far the biggest customer of the contractor Agencies is Microsoft. Especially for Testers. There are no other companies that focus so many testers as Microsoft. Microsoft has allot of ground to cover with the back compatibility pledge, and rarely enough to test all scenarios.

Contractors are generally paid hourly, with time and a half Overtime, should any be worked. Contractors are paid weekly. However some teams have been known to do odd stuff when it comes to how overtime is divided out, especially in the less profitable divisions such as games. There are teams where contractors get mega-overtime and so could earn a pretty penny that way.

Similar to Contractors are the Vendors. Vendors are contracted through other companies to provide a service or to provide a collaborative interface with other companies. Vendors are not technically given workspace and are not provided equipment. They like other CSG's are not privileged with FTE Perks.

Most Vendors are hired to do one particular thing, to fix something, or create something on contract. There are however Vendors such as those from HP, NVIDA, ATI, etc. that are hired by their company to work with Microsoft to ensure their product works with Microsoft's products. Especially when it comes to hardware.

One of the touted benefits of being a Vendor is that 100 day breaks are not required since they are paid to provide a service. But the downside is that they are sometimes treated as 3rd class citizens, and if their project suddenly finishes or dissolves so suddenly does their job.

Often CSG's are hired as FTE's if they prove themselves. There are quite a few that have gone that route.

It is interesting that there are many FTE's who were once CSG's, usually in the 90's, that remember the old days as a contractor and with the overtime getting big checks, so they often wish to trade their stable life with good benefits for the adventurous life of a contractor. Especially if they are in one of those Dog eat Dog teams, or are feeling unappreciated.

It is an interesting study of a culture.

Sunday, June 17, 2007

Stinky Feet

Lock your Computer, lock your computer. That and no tailgaters. are some of the security things that are drilled into people that work at Microsoft. And for good reason. Employees, Vendors and Contractors deal with sensitive, confidential information which has not yet been released to the public.

Access to a computer could prove access to such information, so locking a computer becomes important. I have pretty much become accustomed to hitting [Windows] + [L] to do so. But sadly some of the more Junior coworkers still don't understand the hazard. So a tradition has sprang up in my team. If certain team members happen to notice that a computer was left unlocked then they will send an email from the unwary team member's computer, to everyone in the team, simply stating; "I have Stinky Feet!". Yep, quite the incentive. I have been lucky enough to not have to deal with the fallout of the resulting email taunts though I have witnessed it happening.

Monday, June 11, 2007

Work Schoolin

I signed up for a class through Volt and actually got in. It's only $10 and I start on the 12th. I hope I can get something out of it. It is only two nights for two hours a night but it should be interesting.

It is a javascript class. I have studied some javascript before but I would get partway through a book and get board of it. It is hard to keep going through such a book on my own motivation. I managed to get through my even more dull drafting books by doing all of the reading studying and projects in class, where I could almost totally focus on just that book.

There is another class coming up that I am thinking of signing up for but I'm not sure I'll get into it. It is on a more popular subject so it could be a craps shot to get in.

Friday, March 30, 2007

I speek Microspeak, do you?

Microsoft has its own internal language, it is called Microspeak, Most of it is abreviations of terms that are used frequently while working. Others are code names or just descriptions of things that are done frequently. You hear things like: "let's dogfood this", "ping the developer" or "the BVT was run last night" it's part of what makes getting started at Microsoft difficult, part of the steep learning curve.

~Alma

Tuesday, March 27, 2007

Welcome Meeting with Volt rep

At least I didn't forget my badge today.

I didn't quite get to work before eight AM, like I wanted to, but I was there sufficiently early. Sigh, more responsibility is being handed to me, I'm still choking some on what I have, but little bits are starting to sink in. I hope I'm ready for when Sanjina goes on her 100 day break.

I found out some interesting and somewhat concerning information today. I had an interview aka welcome meeting with my Volt rep. It seems that the Non-Disclosure agreement I signed requires that I am not allowed to get a job with any other agency for a period of 180 days after the end of an assignment. I had previously thought it was 100 days as the Minecode people were quoting me. So, that means that if I had taken a job with Minecode after only 100 days I could have been in some possible serious legal trouble.

Of course Volt has agreements with Microsoft as well as other companies that, if offered, I could possibly be hired on full time. Nothing like putting a leash on your employees. Oh well, at least I am enjoying my current job. I also found out that accrued paid vacation days can only be carried over if returning to work within 140 days, which I just happen to be two days over. Well, I suppose it doesn't really matter, I can't really think of a reason I would be taking a vacation any time very soon.

~Alma

Thursday, March 22, 2007

Another day at Work

Okay I did more actual work today. I think I might be beginning to learn how to file bugs. I think a good way to describe what I do is that I am a copy editor for the Help files and websites for Windows Server. I run the documents to be compiled into Help files or Web Pages through some automation looking for common mistakes and also look over the document for any errors.

It is starting to become more interesting. But it is certainly like no other testing I have ever heard of before. This will be interesting. I wonder if I could get hired on fulltime from this position.

Wednesday, March 21, 2007

Day Three at work

I finally had work to do today. I have no idea if I understood what it was I was supposed to be doing, but I hope I will catch on soon. This is certainly not the kind of work I was expecting. It is very different than what I was doing on the IE BVT team. It seems that I am sort of like an editor, for help content, I check over the finished documents to make sure the formatting hasn't been lost ant the links are correct. Most of the testing is done via. Automation like profanity filtering, link checking, etc. but some of it just has to be done by eye. I spent most of the day checking help files to make sure the content hadn't lost its formatting.

This is going to be an interesting job. Now if I could just comprehend what people are saying when they are telling me, at Eighty miles an hour, what I am expected to do. I’ll just have to keep asking questions.

Tuesday, March 20, 2007

Second Day of Work

When I checked in with the receptionist to try to get my Agency Temp pass I was told I could pick up my badge. Cool, and on the second day too! I didn't have to wait the full Seventy Two hours I had to wait the first time. So I walked over to Building Eight to pick it up, and was given my old badge back. Even more cool. Then back to my Office to finish installing an OS I couldn't finish the day before.

My Manager was working from home today so I wasn't quite sure what I was supposed to do. One person was instructed to show me the ropes of the tests, So I sat in his Office as he showed me how to examine the test results, and file Bugs. They certainly aren’t like the tests I had over in IE. It might take me a little while to get the hang of things.

Next, my office again, and a short introduction to one of the main Microsoft wide tools. Then busy work trying to get the systems arranged and trying to learn a little about what I'm supposed to be doing. I had a little trouble trying to do some of the things I needed to do because there are still a few permitions that haven’t propagated. hopefully they will all be ready tomorrow.

I guess I am expected to work for Eight hours a day, and I can arrive whenever I can get there, I just have to be at work between Ten AM to Four PM. Yawn. I'm already starting to feel the drain of Eight hour days. I Hope I can get accustomed to is soon. The hundred day break requirement is nuts, it creates a more difficult transition when returning to work. One of the cool things about this job though is they seem to expect contractors to return after their breaks.

Monday, March 19, 2007

A day at Microsoft. AKA: First day on the job

Today was my first day of work. It was sort of interesting. I first turned in my insurance paperwork in at the Volt Main Microsoft Campus. Then went on over to building 43 But I was about an hour or two early So I wandered around a little outside area nearby until I was only about 45 minutes early. Then I went into the Lobby and registered with the Receptionist who also contacted my Manager to come and get me. I'm in an Office that will eventually hold three people. I'm in an office where I can see a window from my door. I started by setting up my Mail machine, though it was a struggle, since a good portion of my permitions have not propagated on the servers.

One thing about Microsoft, When you start; it is like jumping from the frying pan into the fire. You are given a set of computers and told to set them up, with a little help. Then with little, or no training, given instructions to follow to do your work. It's kind of the flying by the seat of your pants training. I suppose, it could be rather exhilarating.

There was a team meeting; I was invited to, where things that are currently over my head were discussed. I am supposed to replace someone that has four weeks left on her contract. So I have a little bit of time to learn and be tutored. She has apparently become quite the efficient tester and has a whole lot of areas she is covering, so I have some really huge shoes to fill. They are working on a semi-automated project to help me do what she was doing, they are calling it Everest. I wonder what that could mean.

There is a second guy on the team that started today in the same room as me. It was his first day ever so he was struggling big time, he was getting rather frustrated. Domains can be a fussy torture devise if you haven’t had to really deal with them before. Finally after I was done with everything I could do I helped him get his Mail Machine in working order. At least I could sympathize with him having gone through the same sort of experience only about Ten months ago. Then home ward bound.

Monday, March 12, 2007

Orientation

I had Volt's Orientation today. Most of it was filling out paperwork and a presentation which I pretty much saw at my first orientation when I started with IE. It will be a relief to get the initiation over with and back into the swing of things. I just hope I am up to the requirements of the job. I’m a little nervous. I have never done production code that might be critiqued; there is a possibility that I will be writing some code, I hope I am up to it.

I'm a little excided as well, I even pulled my badge holder out and it is ready to go for when I get my new badge. I wonder what my new alias will be. I suppose there is this sort of FBI/CIA covert cool kind of aspect of working at Microsoft. Working with technology so new it hasn't even been released yet, the requirement of badges to get in the buildings. Even as a contractor it’s cool.

With my starting work; I wonder if I will be able to keep this blogging up. Usually it takes me a few hours to compose a good post, and with work’s tendency to leave me drained I’m not sure I will have the energy to keep at it. I’ll keep trying as long as I can though.

Wednesday, February 21, 2007

I had an interview with the Virtual PC team.

Okay, I went through the interview. I was interviewed by a panel of three people, on the Virtual PC team. It started outgoing pretty good. Then, they started asking questions… I was asked to name what a number of DOS Command-line script commands do. There were a few that I didn’t recognize. One of them PushD I remembered afterwards what it did. Let's see if I can rebuild the list this time with discriptions.

MD = Creates a directory. PATH = Displays or sets a search path for executable files. DIR = Displays a list of files and subdirectories in a directory. NET LOCALGROUP = Retrive/modify users on the computer. PUSHD = Saves the current directory then changes it. Restored using POPD START = Starts a separate window to run a specified program or command. IPCONFIG = Windows IP Configuration. PROMPT = Changes the Windows command prompt. DEL = Deletes one or more files.

Next I was asked to test these two applications one was a very simple calculator, the other a Triangle determinater. I did okay I brought up a few good tests but on reflection there is something I should have brought up; I was with the Virtual PC Team. I should have thought to test their applications on different platforms. Duh! Why didn't I think of that on the spot!

After that I was given a Microsoft famous Brain teaser question, even though they are supposed to be discouraged now days. I was given a problem where a balance scale was drawn up on the white board and nine balls. One of the balls is lighter than the others which are all alike. All of the balls are the same size. I was asked to find the lighter ball. Boy did I flounder on that one. Here "http://sakharov.net/puzzle/weight.html?SRC=sakharov&STAT=9Z2&TTL=2" See if you can work it out before continuing on to the answer.

One thought I had while heading home was to bounce them and the one that bounced higher or lower could be the one. But that is not the answer. So what is the answer?

Separate the balls into 3 groups of 3. Place 3 balls on the left side of the scale and 3 balls on the right. If they balance out, you know that the heavier ball is not one of those 6. If one side is heavier, you know that the heavier ball is one of those 3. Then once you know which set of 3 has the heavier ball, you choose any 2 of them and weigh one on each side. If they balance out you know the final ball is heavier. If they don't balance, well, obviously the heavier ball is the one you are looking for. From: Casey, Yahoo! Answers

I was sort of close at one point but, I had for some reason assumed that I had to weigh every time to get the solution. I have realy never been very good with this kind of Brain teaser puzzle. Oh well. Next time, maybe.

I really don't think I have the job. Which could actually be a good thing since when I read the email all the way through I found out that it would only be a three month contract, which could put me with a hundred day break allot sooner than would be good.

Update: 21 Feb 2007 5:22 PM, I recived word on the interview. "Hey Alma, The team decided to go with a no hire decision. I will provide more feedback tomorrow. Zeshan"

Tuesday, February 20, 2007

I have another Job Interview tomorrow.

Woo, hoo. I have another Job interview with Volt, at Microsoft on Virtual PC, tomorrow. One of the requested skills is C#, So I'm not very expectant about getting the job, but I'm hopeful.

They also want Kernal Debugging skills, Hmm. Maybe I should try to learn to connect the Debugger to IE and try to figure out what the problem is I have been seeing lately.