<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Cullen's Blog</title><link>http://blogs.msdn.com/cuwaters/default.aspx</link><description>Game Audio Programming with a total noob</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Introduction to XAudio2</title><link>http://blogs.msdn.com/cuwaters/archive/2009/10/28/introduction-to-xaudio2.aspx</link><pubDate>Wed, 28 Oct 2009 20:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911014</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9911014.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9911014</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee415737(VS.85).aspx" target="_blank"&gt;XAudio2&lt;/a&gt; is Microsoft’s cross-platform game audio API.&amp;#160; &lt;a href="http://msdn.microsoft.com/en-us/library/ee416126(VS.85).aspx" target="_blank"&gt;XACT&lt;/a&gt;, which you may be familiar with from XNA Game Studio, is built on top of XAudio2.&lt;/p&gt;  &lt;p&gt;There are some key concepts in XAudio2 that we need to cover before I can into more interesting tips and techniques for working with the API.&lt;/p&gt;  &lt;p&gt;The most important concept is the concept of Voices.&amp;#160; Voices in XAudio2 come in three flavors: Source, Submix, and Mastering.&amp;#160; &lt;/p&gt;  &lt;p&gt;The Mastering voice (&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.ixaudio2masteringvoice.ixaudio2masteringvoice(VS.85).aspx" target="_blank"&gt;IXAudio2MasteringVoice&lt;/a&gt;) represents the final audio output of the API (this is where your audio is sent to your speaker system/sound card/receiver/TV).&amp;#160; There can be one, and only one, mastering voice active in your title at any time.&amp;#160; Since this voice directly relates to the audio hardware, it only makes sense to have just one.&amp;#160; There’s little to do with the mastering voice, other than creating it, and adding it to your audio graph (more on what a graph is soon).&amp;#160; You do need to tell the Mastering Voice how many speakers are set up or connected.&lt;/p&gt;  &lt;p&gt;A Source Voice (&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice(VS.85).aspx" target="_blank"&gt;IXAudio2SourceVoice&lt;/a&gt;) represents an actual sound in your game.&amp;#160; This sound can be mono, stereo, 5.1, or anything in between.&amp;#160; There are generally many source voices present in your title at one time.&amp;#160; In the simplest possible case (at least with audible audio content), there is only one source voice.&amp;#160; In the extreme case, you could have thousands of voices, if your title was heavy on audio content, and you created voices in a 1:1 ratio with your audio content files.&amp;#160; My next post will talk about a different (better?) solution, which reuses voices for multiple pieces of audio.&lt;/p&gt;  &lt;p&gt;A Submix Voice (&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.ixaudio2submixvoice.ixaudio2submixvoice(VS.85).aspx" target="_blank"&gt;IXAudio2SubmixVoice&lt;/a&gt;) is conceptually in between the source and mastering voices.&amp;#160; There can be multiple submix voices, or even zero submix voices.&amp;#160; I saved these voices for last, since they are conceptually the most complex.&amp;#160; Submix voices provide several different things, depending on your needs.&amp;#160; You can route one or more source voices into the same submix voice, and the output of your submix voices can go to other submix voices, or to the mastering voice, or both.&amp;#160; Submix voices can be used to group related pieces of audio content.&amp;#160; For instance, you could create a submix voice that represents ‘music’ in your game (as opposed to sound effects or dialogue).&amp;#160; You could then provide an option to modify the volume of all ‘music’ audio at the same time.&amp;#160; The implementation of this might be calling the SetVolume() method on the ‘music’ submix voice.&amp;#160; I’ll cover submix voices in more detail in a future post.&lt;/p&gt;  &lt;p&gt;The last topic for this post is the audio graph.&amp;#160; Conceptually, this graph represents the path your audio data takes to get from disk, through your audio pipeline, and out to the speakers.&amp;#160; Generally, you build this graph at load time, and leave it alone for the life of a level (or even the entire game session).&amp;#160; You create the graph by specifying the output for each voice, when you create it.&amp;#160; So you can create a graph where three source voices feed into a single submix voice, which then feeds the mastering voice.&amp;#160; At the same time, you have two other voices that feed directly into the mastering voice.&amp;#160; The set of voices in your title, and the connections between them, form the audio processing graph of your game.&lt;/p&gt;  &lt;p&gt;Hopefully this overview of XAudio2 is helpful.&amp;#160; There seems to be a dearth of information regarding game audio on the internet, so I hope to share some of what I learn with the rest of you.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911014" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Games/default.aspx">Games</category><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Audio/default.aspx">Audio</category></item><item><title>Days 1 and 2 on an xbox team</title><link>http://blogs.msdn.com/cuwaters/archive/2009/09/09/days-1-and-2-on-an-xbox-team.aspx</link><pubDate>Thu, 10 Sep 2009 03:12:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9893405</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9893405.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9893405</wfw:commentRss><description>&lt;p&gt;First, joining an xbox team is just a lot of fun, especially compared to other teams I’ve joined.&amp;#160; I had people walking in all day giving me fun stuff.&lt;/p&gt;  &lt;p&gt;Don’t have a tv on your desk?&amp;#160; here’s one.&amp;#160; &lt;/p&gt;  &lt;p&gt;Don’t have an xbox in your office?&amp;#160; have two.&lt;/p&gt;  &lt;p&gt;Only one incredibly huge montior?&amp;#160; Let’s order a second.&lt;/p&gt;  &lt;p&gt;All day long, people were coming in and giving me free, fun stuff.&amp;#160; &lt;/p&gt;  &lt;p&gt;The vibe on this team is a lot younger and more fun than the vibe on my old team.&amp;#160; I think that’s because the average age on the team seems to be a bit younger.&amp;#160; I was definitely younger than many of the folks on Office Live, but I’m right at the average on the new team.&lt;/p&gt;  &lt;p&gt;So far, it’s been a lot of fun, and there are a ton of bennies I didn’t know about :)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893405" width="1" height="1"&gt;</description></item><item><title>The big move</title><link>http://blogs.msdn.com/cuwaters/archive/2009/08/25/the-big-move.aspx</link><pubDate>Tue, 25 Aug 2009 19:39:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9883844</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9883844.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9883844</wfw:commentRss><description>&lt;p&gt;For the most part, moving during a Microsoft relocation is pretty stress-free.&amp;#160; Last Thursday, two guys showed up at about 8:30 in the morning, and started packing in the garage.&amp;#160; In my opinion, that was a genius move, since they were done with the garage by like 10, which means they weren’t out there in the 100° heat later that day.&amp;#160; The packers packed just about everything in 4 hours.&amp;#160; I thought they did a pretty good job, though I think the packers last time did a better job.&amp;#160; These guys seemed to skip all the bathrooms; or at least parts of the bathrooms.&amp;#160; They left the shower curtain, and silly as it sounds, like 12 rolls of toilet paper.&amp;#160; I know, I’m cheap, but I made them pack it.&amp;#160; They were done packing at about 3 PM.&amp;#160; Unfortunately, my day wasn’t over.&amp;#160; Just about the time the packers were done, the guys that were going to crate up my R/C planes showed up.&amp;#160; It took them until almost 6 to finish their thing (boxed our small plasma tv, crated 3 planes and 4 wings, and prepped the washer/dryer for loading).&amp;#160; So I was done around 6, and headed over to the house where we were staying until flying out.&lt;/p&gt;  &lt;p&gt;Friday, the truck driver got to our place sometime before 7:45, with 2 guys to help load the truck.&amp;#160; They immediately started emptying the house.&amp;#160; They basically didn’t stop until 3PM, when the house was completely emptied.&lt;/p&gt;  &lt;p&gt;The next day, Saturday, I got on a plane to Seattle, and I’ve been settling in since then.&amp;#160; The temp housing this time around is a lot more convenient; I’m right next to campus, literally across the street.&amp;#160; The apartment itself is a lot nicer, too, in my opinion.&lt;/p&gt;  &lt;p&gt;Sunday, my wife called, to talk about how our cats were getting shipped (they were getting picked up Sunday in FL, and delivered to temp housing on Monday night).&amp;#160; She told me the packers missed about half of our plates, by not packing half of a cabinet in the kitchen.&amp;#160; Of course, I feel like an idiot for not seeing that, and now we’ll have to get new plates to replace them.&lt;/p&gt;  &lt;p&gt;Tune in next time for my impressions of day 1 on a team that’s in the XBox org, and how that relates to day 1 on a team in Office/MBD.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9883844" width="1" height="1"&gt;</description></item><item><title>Finding a place to live</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/29/finding-a-place-to-live.aspx</link><pubDate>Wed, 29 Jul 2009 21:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9850235</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9850235.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9850235</wfw:commentRss><description>&lt;p&gt;Just so we’re clear, all of the posts where I mention relo stuff are based on my experience the first time.&amp;#160; I’m not sure if these benefits are standard (though I think they are).&amp;#160; Your experience may vary from mine, so don’t quote me if something is different.&lt;/p&gt;  &lt;p&gt;Once I accepted the offer, we were given a house hunting trip, to find a place to live.&amp;#160; We flew out to WA, and MS put us up in a local hotel.&amp;#160; We spent an exhausting, frustrating four days driving all over the eastside, getting lost, trying to see houses.&amp;#160; At the end of our four days, we were wiped out, and hadn’t found a house we would like to live in.&amp;#160; We started panicking.&amp;#160; My wife found a house that looked acceptable by searching online, and we signed a lease.&lt;/p&gt;  &lt;p&gt;Then, when we moved, we went into temp housing for 30 days.&amp;#160; What we didn’t realize at the time, or at least didn’t put together, and which ended up hurting us, was that we could spend that 30 days in temp housing looking for permanent housing.&amp;#160; Most rentals, especially houses, don’t stay empty for months on end (in my experience).&amp;#160; Most landlords are looking for someone to move in right away, not after a month or two months of the house being empty.&amp;#160; Rental housing doesn’t stay on the market for long; the market is very volatile.&lt;/p&gt;  &lt;p&gt;My suggestion is, if you get a house hunting trip, spend that time checking out areas, or cities/towns.&amp;#160; Find some areas you’d like to live in (like Redmond, or Bellevue, or Sammamish).&amp;#160; Then, go into temp housing expecting to spend your free time during that month finding a suitable place to live.&amp;#160; If, for some reason, you don’t find a place, you can extend your stay at temp housing (at your own expense).&lt;/p&gt;  &lt;p&gt;If you are moving into an apartment, you might be able to accomplish more during the house hunting trip.&amp;#160; Apartment complexes generally have places coming available every month, so even if the specific apartment you look at is gone, another will probably be available after your time in temp housing.&lt;/p&gt;  &lt;p&gt;We also left temp housing early.&amp;#160; Try not to.&amp;#160; Every day you stay in temp housing is a day you aren’t paying rent or mortgage.&amp;#160; Take advantage of that time.&amp;#160; If you can stay an extra week, you might save hundreds of dollars that you would otherwise spend.&amp;#160; We intend to stay in temp housing as long as we can this time, so we can maximize the time spent without a housing expense.&lt;/p&gt;  &lt;p&gt;Hopefully my experiences will help other folks who have relocated to WA for a Microsoft job.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9850235" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Life+at+Microsoft/default.aspx">Life at Microsoft</category></item><item><title>You’ve accepted an offer, now what?</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/28/you-ve-accepted-an-offer-now-what.aspx</link><pubDate>Tue, 28 Jul 2009 21:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9850227</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9850227.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9850227</wfw:commentRss><description>&lt;p&gt;The hiring process doesn’t end when you accept the offer.&amp;#160; At least, not if you’re remote.&amp;#160; If you work in the same city as your destination team, the process is pretty much done.&amp;#160; Your new and old managers agree on a date, and you show up for work at the new office on your start date, rather than your old office.&lt;/p&gt;  &lt;p&gt;If you have to relo, though, things get a bit more complicated.&amp;#160; After deciding a start date, you have to figure out when you are going to move.&amp;#160; &lt;em&gt;The move &lt;/em&gt;is cake, since Microsoft’s relo package is so great (my opinion here).&amp;#160; The last time, they came and packed everything we owned, put it on a truck, drove it away, and unloaded the truck in WA.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Moving&lt;/em&gt;, however, is never easy.&amp;#160; Moving 3000 miles is very complicated.&amp;#160; There’s a ton of stuff you have to do to cut ties with your old city, and start getting set up in the new place.&amp;#160; Utilities, mail, etc, all have to be handled.&amp;#160; &lt;/p&gt;  &lt;p&gt;The relo date drives all of this stuff, so it’s important to get that relo date as soon as you can.&amp;#160; In my case, I pushed back on my start date because it didn’t leave enough time for me to relocate back to WA.&amp;#160; I asked for another week before my start date, to allow for more time before the relo.&lt;/p&gt;  &lt;p&gt;I’m now waiting to hear back about the relo process.&amp;#160; When is my pack/move date?&amp;#160; What flights will we be on to get to WA?&amp;#160; Where will we be staying in our temporary housing?&amp;#160; I don’t know, but hopefully I will know really soon.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9850227" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Life+at+Microsoft/default.aspx">Life at Microsoft</category></item><item><title>My approach to email at Microsoft</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/27/my-approach-to-email-at-microsoft.aspx</link><pubDate>Mon, 27 Jul 2009 18:06:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9850058</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9850058.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9850058</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://bradwilson.typepad.com/blog/" target="_blank"&gt;Brad Wilson&lt;/a&gt; just posted &lt;a href="http://bradwilson.typepad.com/blog/2009/07/email-strategies-at-microsoft.html" target="_blank"&gt;his approach&lt;/a&gt; to handling the deluge of email here at Microsoft.&amp;#160; I use a different system than he does, so I thought I’d go ahead and post mine.&lt;/p&gt;  &lt;p&gt;I have three top-level folders in my Inbox.&amp;#160; Groups, Personal, and Projects.&amp;#160; &lt;/p&gt;  &lt;p&gt;Groups is intended for DLs that are required for my team.&amp;#160; This list includes aliases (aliasi?) like my team (4-5 folks), the test team I’m on (~20 folks), the product group my test team belongs to (~60 folks), and the overall product we work on (~200 folks).&amp;#160; Then there are aliases for checkins, code reviews, etc, but all pertaining to my current team (and thus all ones I expect to be leaving very soon, and replacing with new groups).&lt;/p&gt;  &lt;p&gt;Then I have Personal, which contains all of the email groups dealing with stuff I’m interested in, but not part of my daily job.&amp;#160; I have folders there for game development, R/C flying, betas, etc.&amp;#160; I used to have one for snowboarding, but I left that group when I came to Florida.&lt;/p&gt;  &lt;p&gt;Then there is Projects.&amp;#160; This group of folders if for my feature crew mails.&amp;#160; I prefer to keep my project emails separate, so I have a folder here for any features I’m currently working on.&amp;#160; These folders change relatively frequently (feature lists change quickly on a 3-month ship cycle).&amp;#160; I also have a folder here for my job hunt :).&lt;/p&gt;  &lt;p&gt;I use aggressive (I think) archiving.&amp;#160; I archive anything in my mailbox that is older than 2 weeks.&amp;#160; The only exception is one folder, called Save, where I put stuff I want to be able to find on any machine (using OWA), quickly and easily.&amp;#160; The bar to get into the Save folder is really high.&lt;/p&gt;  &lt;p&gt;In addition to archiving, I use tools to get rid of redundant mails.&amp;#160; Most folks at Microsoft have their outlook set to include the text of the original mail in a reply.&amp;#160; So the latest mail in a thread is the only one you need.&amp;#160; There was an addon I used with outlook 07 to help manage this.&amp;#160; The addon was internal to MS, but I bet there are commercial ones available.&amp;#160; Now that I’ve switched to outlook 2010, I found that outlook has this as a feature (called Clean Up Folder).&lt;/p&gt;  &lt;p&gt;Ok, so that’s my organization, but how do I use this?&amp;#160; Since emails from every alias I’m subscribed to go into a folder other than Inbox, everything that goes to my Inbox is addressed directly to me.&amp;#160; That makes it my ‘high priority’ folder.&amp;#160; Same goes for Projects; since those mails directly relate to features I’m working on, I pay a lot of attention to those folders.&amp;#160; I rarely have unread mail in my inbox during working hours.&amp;#160; Everything in the Groups folder is medium priority.&amp;#160; I have to read that mail every day, but I’m likely to just ‘mark as unread’ on many of those folders.&amp;#160; The stuff in Personal is about my hobbies, generally, and so I look at that mail third.&lt;/p&gt;  &lt;p&gt;How do you figure out which aliases to join?&amp;#160; I think this must be a team-specific thing, to a degree.&amp;#160; Most of my alias membership is required; I didn’t pick any of the aliases in the Groups folder, my team did.&amp;#160; They added me to these aliases once I joined the team.&amp;#160; For the optional, fun stuff, I used our internal tool which searches for email aliases, and just did keyword searches.&amp;#160; I’m pretty serious about leaving groups when they get too noisy, though.&amp;#160; If I find myself just using ‘mark as read’ on a leisure alias, I leave it pretty quickly.&amp;#160; I just don’t have time to keep up with that stuff, and why deal with the hassle?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9850058" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Life+at+Microsoft/default.aspx">Life at Microsoft</category></item><item><title>COM Interop is harder than it should be sometimes</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/23/com-interop-is-harder-than-it-should-be-sometimes.aspx</link><pubDate>Thu, 23 Jul 2009 22:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9845189</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9845189.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9845189</wfw:commentRss><description>&lt;p&gt;I spent the last couple of days working on wrapping a native win32 api in managed code.&amp;#160; I’ve been tasked with working with the Task Scheduler portion of windows, which has a pretty good native API, but no managed API.&lt;/p&gt;  &lt;p&gt;I thought, ‘hey no problem, a little COM interop and I’m done’.&amp;#160; It was, of course, more challenging than it should have been.&lt;/p&gt;  &lt;p&gt;One of the things I have to do is modify the parameters to an existing scheduled task.&amp;#160; There’s an MSDN sample (in c/c++) that was dead easy to follow.&amp;#160; Of course, translating it to C# was more painful than I expected.&amp;#160; Here’s the sample, go check it out: &lt;a href="http://msdn.microsoft.com/en-us/library/aa446852(VS.85).aspx" target="_blank"&gt;Setting Task Parameters (Windows)&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I was able to get the &lt;a href="http://msdn.microsoft.com/en-us/library/aa381311(VS.85).aspx" target="_blank"&gt;ITask&lt;/a&gt; interface in managed code, and could query the current parameters, and even set the new ones no problem.&amp;#160; I created an ITask interface in C#, and marked it up with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.comimportattribute.aspx" target="_blank"&gt;ComImport&lt;/a&gt; attribute.&amp;#160; &lt;/p&gt;  &lt;p&gt;The problem came when I was trying to persist the changes to disk.&amp;#160; The native code used &lt;a href="http://msdn.microsoft.com/en-us/library/ms682521(VS.85).aspx" target="_blank"&gt;IUnknown::QueryInterface&lt;/a&gt; to get a pointer to an &lt;a href="http://msdn.microsoft.com/en-us/library/ms687223(VS.85).aspx" target="_blank"&gt;IPersistFile&lt;/a&gt; object.&amp;#160; Here’s that code:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;  IPersistFile *pIPersistFile;&lt;/pre&gt;

  &lt;pre&gt;  hr = pITask-&amp;gt;QueryInterface(IID_IPersistFile,&lt;/pre&gt;

  &lt;pre class="alt"&gt;                              (&lt;span class="kwrd"&gt;void&lt;/span&gt; **)&amp;amp;pIPersistFile);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;I tried a bunch of methods to do the same thing in managed code, and couldn’t get it to work.&amp;#160; I was getting object references, but they were of the wrong type.&amp;#160; The thing I was missing is that the QueryInterface method above is really just returning a pointer to the same object, cast as an IPersistFile, because ITask implements IPersistFile.&amp;#160; Put that way, it sounds easy, right?&lt;/p&gt;

&lt;p&gt;Here’s the C# code to get the IPersistFile interface:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;IPersistFile persistFile = nativeTask &lt;span class="kwrd"&gt;as&lt;/span&gt; IPersistFile;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Simple, right?&amp;#160; I have to say, I felt like an idiot for not realizing that ITask implemented IPersistFile sooner.&amp;#160; Polymorphism is a wonderful thing.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9845189" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/.Net/default.aspx">.Net</category></item><item><title>The job search is over!</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/22/the-job-search-is-over.aspx</link><pubDate>Wed, 22 Jul 2009 22:13:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9845156</guid><dc:creator>cuwaters</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9845156.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9845156</wfw:commentRss><description>&lt;p&gt;Yesterday I got an email from the XNA Developer Connection team, containing my offer, and I accepted this morning!&lt;/p&gt;  &lt;p&gt;I’m incredibly excited to be starting a new job, on a new (to me) team, returning to my favorite discipline (dev), and working in the game industry.&amp;#160; What could be better?&lt;/p&gt;  &lt;p&gt;So what’s next, for me and for the blog?&amp;#160; First, I’m going to be in the transition period for somewhere between 4 and 12 weeks (4 weeks is semi-standard).&amp;#160; Once that has completed, I’ll start on the new team.&amp;#160; Somewhere in between, we’ll be moving coast to coast again (for the last time, I hope!).&lt;/p&gt;  &lt;p&gt;As for the blog, once I’ve completed the transition to the new team, I should be able to focus a lot more on game development topics, while I learn everything I can about DirectX, and the XDK (Xbox Development Kit).&amp;#160; I’m not sure exactly what my focus area will be yet, once I know, you’ll know :).&lt;/p&gt;  &lt;p&gt;Stay tuned, and keep learning.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9845156" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category></item><item><title>Week 3 of the job hunt</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/16/week-3-of-the-job-hunt.aspx</link><pubDate>Thu, 16 Jul 2009 22:50:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9836002</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9836002.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9836002</wfw:commentRss><description>&lt;p&gt;Whew.&amp;#160; I’m tired after this week (well, last week, technically).&amp;#160; I was back in Redmond for my quarterly trip, and scheduled a few interviews.&lt;/p&gt;  &lt;p&gt;I had informational interviews with two teams, and started with one interview loop scheduled.&amp;#160; The two informational interviews went well, so I ended up scheduling two more loops during the week.&amp;#160; This is where I made a poorly-reasoned decision.&amp;#160; I scheduled two loops for Friday.&amp;#160; Unsurprisingly, the second loop went poorly.&lt;/p&gt;  &lt;p&gt;So, in one week, ~40 hours, I had a total of 13 hours of interviews, with 7 hours being on Friday.&lt;/p&gt;  &lt;p&gt;Two of the loops went pretty well, the second one on Friday, not so much.&amp;#160; I could literally feel my brain slowing down by the 4th interview on Friday.&amp;#160; Both of the teams where I had good loops had delaying factors coming up (one manager was going to be on vacation for a week, the other had some headcount issue to clear up).&amp;#160; So I’m still in the waiting pattern.&lt;/p&gt;  &lt;p&gt;Here’s the status so far:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms178093(VS.80).aspx" target="_blank"&gt;Visual Web Developer&lt;/a&gt;: Interviewed poorly, won’t be getting an offer&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/ebs/en/us/default.aspx" target="_blank"&gt;Essential Business Server&lt;/a&gt;: Interviewed pretty well, still in the running, manager’s on vacation&lt;/li&gt;    &lt;li&gt;XNA Developer Connection: Interviewed well, still in the running, headcount issue with a sister team&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I expect to hear a final decision from both EBS and XNADC this week, or early next week.&amp;#160; Both jobs are cool, in different ways, and I’d take an offer from either team with no hesitation.&lt;/p&gt;  &lt;p&gt;Keep your fingers crossed for me :)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9836002" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category></item><item><title>Week 2</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/08/week-2.aspx</link><pubDate>Wed, 08 Jul 2009 18:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814345</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9814345.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9814345</wfw:commentRss><description>&lt;p&gt;The second week of my job search was full of negative responses, with one positive response to lift the darkness.&amp;#160; The positive response was from a team in Windows Server, building a pretty cool new product.&amp;#160; Since this was an app, rather than a game, I was much more qualified for this job.&amp;#160; It was also almost exclusively C#, while many of the other positions were C++.&amp;#160; I’m much more familiar with C# than C++.&lt;/p&gt;  &lt;p&gt;One of the positions was eliminated, and of the others, all the no’s were because I was lacking specific experience.&amp;#160; In my opinion, that’s nothing to feel bad about, it’s just a limitation of that catch-22.&amp;#160; There are steps I can take to get past the catch-22, and I plan to do so, but it takes time.&lt;/p&gt;  &lt;p&gt;I had a great informational with the Essential Business Server team, and I’m expecting to have a loop scheduled at some point.&lt;/p&gt;  &lt;p&gt;One of the game teams I applied for (Project Natal) asked for copies of my reviews, and sent me a coding challenge.&amp;#160; The coding challenge was a lot of fun, as it dealt with game-specific topics.&amp;#160; Again, I’m not really qualified for that job, so it’s a long shot.&lt;/p&gt;  &lt;p&gt;Other than those, I’m just waiting for responses from the hiring managers.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814345" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category></item><item><title>The game programming catch-22</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/07/the-game-programming-catch-22.aspx</link><pubDate>Tue, 07 Jul 2009 19:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814375</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9814375.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9814375</wfw:commentRss><description>&lt;p&gt;Game studios want you have to have commercial game experience before you apply.&amp;#160; You can’t get commercial game experience without working at a game studio.&amp;#160; What do you do?&lt;/p&gt;  &lt;p&gt;First, there are other options.&amp;#160; It’s not as hopeless as it seems.&amp;#160; Most of these ideas came from a couple of friends of mine that are in the games industry already.&amp;#160; I’m sure they’ve all been published on the internet before; I’m going to share how I intend to approach the problem as well.&lt;/p&gt;  &lt;p&gt;One option is to write your own game, in your off time, and market/sell it.&amp;#160; It’s critical to sell the game, or at least attempt to, since that requires a higher level of polish and completeness than giving the game away.&amp;#160; Showing that you can manage a game from inception through to maintenance shows your dedication to the industry.&lt;/p&gt;  &lt;p&gt;Another option is to join a studio as a non-games dev.&amp;#160; Join as the tools dev.&amp;#160; Or join a team that works with game teams, but isn’t actually producing games.&amp;#160; The idea here is to get closer to the studios, so you can get to know folks, and learn more about the game development process.&amp;#160; If you do get one of these jobs, make sure you are networking with the devs and managers, all the time.&amp;#160; You should also be doing everything you can to learn more about game development.&lt;/p&gt;  &lt;p&gt;My approach is going to be to do all of these in parallel.&amp;#160; I wrote a game once, an asteroids clone, and it was ok. I wrote it in Managed DirectX, which has gone away, replaced by the XNA Framework and XNA Game Studio.&amp;#160; I’m going to rewrite the game in C++, using DirectX10, and then port it to XNA, and the XBox.&amp;#160; I’m going to use the XNA Indie Games channel as a sales/marketing channel, and I’m going to market the windows version separately.&amp;#160; &lt;/p&gt;  &lt;p&gt;If I were doing this strictly as a business, I would skip the C++ version, and just make the XNA version work well on both XBox and Windows.&amp;#160; Since I’m primarily doing this as a way to show my games development chops, I need the C++ version to exist.&amp;#160; It’s going to be headache maintaining two completely different versions, but that is life.&lt;/p&gt;  &lt;p&gt;In addition to my game, I’m going to write several other ‘games’ that highlight a specific area or technique.&amp;#160; For instance, my first one is going to be used to study shadowing and lighting.&amp;#160; I’m going to generate a terrain, and then model the sun and moon, and their light.&amp;#160; I will have realistic shadows, which move when the sun &amp;amp; moon move.&amp;#160; This should help me learn about shadows and lighting, and can only help my appeal to a games shop.&lt;/p&gt;  &lt;p&gt;The last thing I’m doing is applying for those tools dev and other game-related jobs.&amp;#160; In fact, I have an informational in 30 minutes (from when I’m writing this, not when it gets posted) with a team who works closely with game devs, even though they don’t write games.&amp;#160; I think it’s an excellent opportunity to get closer to the industry, and meet a bunch of folks that could help me out for my next position.&lt;/p&gt;  &lt;p&gt;Wish me luck :)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814375" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Games/default.aspx">Games</category></item><item><title>Week 1</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/06/week-1.aspx</link><pubDate>Mon, 06 Jul 2009 18:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814348</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9814348.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9814348</wfw:commentRss><description>&lt;p&gt;During week 1 and 2, I set up a saved search on the internal site, and starting digging through the available jobs.&amp;#160; I’m looking at all software development engineer (SDE or dev) jobs in Redmond.&amp;#160; I’m looking for jobs that are at my level, 1 higher, or up to 2 lower.&amp;#160; Many times teams put their ideal level on the job posting, but are willing to consider higher/lower level people, within a small range.&lt;/p&gt;  &lt;p&gt;There were ~52 jobs that matched my search criteria when I looked at the start of week 1.&amp;#160; I started going through the jobs, and putting ones that sounded interesting in my job cart.&amp;#160; When I was done with my first pass, I had ~20 jobs in my cart.&amp;#160; So I went through my cart again, and kept the jobs that really got me excited, and cut the ones that were just ok.&amp;#160; This was a difficult process for me, especially since the jobs I was most jazzed about were the ones I was probably least qualified for.&amp;#160; &lt;/p&gt;  &lt;p&gt;I have a strong desire to work in the games industry.&amp;#160; I’ve been a computer gamer since my first IBM clone, back in the mid 80s and early 90s.&amp;#160; I got started with text-based adventure games like Zork, and Planetfall, before cutting my teeth on the Forgotten Realms RPGs.&amp;#160; Since my first semester of college, in 1999, I have wanted to work at a computer game studio.&amp;#160; The gaming industry is one that has the classic catch 22, though.&amp;#160; If you don’t have games experience, it’s hard to get a games dev job.&amp;#160; But you can’t get experience without getting a games dev job.&amp;#160; I’ll go into more detail on how to get around this problem in my next post.&lt;/p&gt;  &lt;p&gt;So, after a couple of rounds of cuts, I had ~10 jobs in my cart, and I applied for the first 5.&amp;#160; Now we are going to come to the part of the process that I think is completely broken.&amp;#160; Resume submissions are done via email (like almost everything else at Microsoft).&amp;#160; The email you get tells you (the candidate) to look for other opportunities if you are not contacted ‘within a reasonable time’.&amp;#160; &lt;/p&gt;  &lt;p&gt;This is the part that gets me.&amp;#160; Reasonable time for one hiring manager is 72 hours.&amp;#160; For others, it can be weeks, depending on whether they are buried in emails, trying to ship, or even on vacation.&amp;#160; I really think the process needs to be changed to provide a way for hiring managers to say they aren’t interested, without being embarrassed (on either side).&amp;#160; My solution would be an addition to the career site, where managers could respond to internal applications, and say ‘no thanks’ by simply checking a box and hitting submit.&amp;#160; As is, I have to wait quite a while before deciding that the manager just isn’t into my experience, then I have to go cancel my application, in order to apply somewhere else (remember the 5 at a time rule?).&amp;#160; But if the manager just happened to be on vacay, she gets an email saying I’m no longer interested in the position.&amp;#160; There’s no way to say ‘I still want the job, but haven’t heard from you’.&lt;/p&gt;  &lt;p&gt;I got one negative response almost immediately.&amp;#160; The position had been filled, but the career site wasn’t updated yet.&amp;#160; So I applied for #6 right away.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814348" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Games/default.aspx">Games</category></item><item><title>The Hiring Process</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/03/the-hiring-process.aspx</link><pubDate>Fri, 03 Jul 2009 18:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814346</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9814346.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9814346</wfw:commentRss><description>&lt;p&gt;First, some information, so we’re all on the same page.&amp;#160; Internal transfers at Microsoft work just like the external hiring process.&amp;#160; We go to an internal version of &lt;a title="http://www.microsoft.com/careers/" href="http://www.microsoft.com/careers/"&gt;http://www.microsoft.com/careers/&lt;/a&gt;, which has all the same jobs.&amp;#160; We get a couple of pieces of information that folks on the outside don’t get; namely the name of the hiring manager, and the target level of the job.&amp;#160; Level only makes sense once you’re inside the borg, so there’s no reason to show it to external candidates.&amp;#160; I can’t imagine any hiring manager would use the site if they posted their email address on it (can you imagine the spam if they did?).&amp;#160; So, we’re on the same footing already.&lt;/p&gt;  &lt;p&gt;In order to transfer positions at MS, you first go to the career site, find jobs that interest you, and then submit a resume (sound familiar?&amp;#160; It’s the same process as external hires).&amp;#160; The only difference is that, as an internal candidate, I can only apply to 5 jobs.&amp;#160; External candidates, as far as I know, can apply to any number of positions.&lt;/p&gt;  &lt;p&gt;The hiring manager reviews your resume, and if you seem to have the qualifications they are looking for, they set up what’s called an informational interview.&amp;#160; This is an informal interview, where you and the hiring manager have a chat about the position, the team, and the product.&amp;#160; The goal of this chat is to decide if you are interested in the team (based on culture, product, etc), and if the hiring manager feels like you’re a good fit.&amp;#160; If you both feel like it’s a good fit, then the hiring manager will schedule an interview loop.&lt;/p&gt;  &lt;p&gt;Interview loops are hard.&amp;#160; They consist of 3-5 interviews over the course of a single day.&amp;#160; I’ve been on both sides of this process, and it is &lt;strong&gt;exhausting&lt;/strong&gt;.&amp;#160; If you do well in your interviews, the team offers you a position, and you decide if you are going to take it.&amp;#160; As I understand it, the job offer for an internal transfer is much less complicated than an external offer.&amp;#160; There is no salary discussion (you keep your same salary), and you generally don’t have to talk about bonuses, and stuff like that.&amp;#160; Basically, the offer is your last chance to bail out of the process.&amp;#160; You just have to decide if you still like the team, after meeting several of the team members, and getting a better feel for their team culture.&lt;/p&gt;  &lt;p&gt;Now that we have a common starting point, I’ll start sharing some of my experiences with the internal transfer process.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814346" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category></item><item><title>Working Remotely at Microsoft</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/02/working-remotely-at-microsoft.aspx</link><pubDate>Thu, 02 Jul 2009 18:02:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814268</guid><dc:creator>cuwaters</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9814268.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9814268</wfw:commentRss><description>&lt;p&gt;In my last post, I talked about how I’m a semi-happy employee.&amp;#160; The reason I’m only semi-happy is that I work remotely, from my house.&amp;#160; Many folks think that working remotely is the bees’ knees.&amp;#160; For some people, it may be.&amp;#160; For me, not so much.&amp;#160; I really miss the interaction with my team members, who are all really smart.&amp;#160; It’s very difficult to do a pair designing session over the phone.&lt;/p&gt;  &lt;p&gt;I also live 3000 miles from Redmond, and 3 time zones away.&amp;#160; The time difference and the physical separation just serve to make working with my team even more difficult.&lt;/p&gt;  &lt;p&gt;There are very few remote R&amp;amp;D (dev, test, program management) folks at Microsoft.&amp;#160; Since there are so few, it’s pretty hard to find managers who are willing to take a chance on a remote worker.&amp;#160; My team was only willing to do it because I had been on the team for over a year, and demonstrated my competence.&amp;#160; I’ve talked to dozens of managers since then, and none of them are interested/willing to deal with having a remote dev/tester.&lt;/p&gt;  &lt;p&gt;There are a bunch of technologies that I use, daily, to make the remote thing more bearable.&amp;#160; Of course, I use IM, in the form of &lt;a href="http://office.microsoft.com/en-us/communicator/FX101729051033.aspx" target="_blank"&gt;Office Communicator&lt;/a&gt;. I also make heavy use of &lt;a href="http://office.microsoft.com/en-us/livemeeting/FX101729061033.aspx" target="_blank"&gt;Office Live Meeting&lt;/a&gt;.&amp;#160; Both technologies allow me to have video conferences with my coworkers in Redmond.&amp;#160; I also use &lt;a href="http://www.microsoft.com/windows/enterprise/products/directaccess.aspx" target="_blank"&gt;Direct Access&lt;/a&gt; every single day.&amp;#160; We have a VPN system that has been around a while, but &lt;a href="http://www.microsoft.com/windows/enterprise/products/directaccess.aspx" target="_blank"&gt;Direct Access&lt;/a&gt; is &lt;em&gt;way&lt;/em&gt; better.&amp;#160; For one thing, it’s always on.&amp;#160; It seems to be more performant, as well.&lt;/p&gt;  &lt;p&gt;Part of my motivation for searching for a new job is to get a relocation benefit, so we can move back to Redmond.&amp;#160; Being in Redmond (or one of the other dev centers) is really a requirement for a successful Microsoft career.&amp;#160; We’re not interested in California, or Boston, or North Carolina, so Redmond is the place for us.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814268" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/cuwaters/archive/tags/Job+Search/default.aspx">Job Search</category></item><item><title>Hello, world</title><link>http://blogs.msdn.com/cuwaters/archive/2009/07/02/hello-world.aspx</link><pubDate>Thu, 02 Jul 2009 17:40:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814223</guid><dc:creator>cuwaters</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cuwaters/comments/9814223.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cuwaters/commentrss.aspx?PostID=9814223</wfw:commentRss><description>&lt;p&gt;Here I am, yet another Microsoft blogger.&amp;#160; As is customary, I want to open with a little description of who I am, and where I come from.&lt;/p&gt;  &lt;p&gt;I'm a mostly-happy Microsoft employee.&amp;#160; I spent the first three years of my career in the test discipline, before making the switch back to dev.&amp;#160; Prior to joining Microsoft, I worked at several companies, ranging from a startup with ~15 employees to a Fortune 500 bank.&lt;/p&gt;  &lt;p&gt;I've worked on a variety of projects, both personally and professionally, and I really enjoy helping folks get the most out of the products I build.&lt;/p&gt;  &lt;p&gt;For my first series of posts, I’m going to document what it’s like to change jobs at Microsoft.&amp;#160; Moving to a new team is, in some ways, just as hard as getting your first job at Microsoft.&amp;#160; I’ll share my trials and tribulations as I attempt to both move to a new team, and change disciplines in the process.&lt;/p&gt;  &lt;p&gt;I hope some of you gain some insight from my experiences.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once I get onto a new team, I will switch to posting about other topics, hopefully helping folks to use the product I help build more effectively and efficiently.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814223" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cuwaters/archive/tags/General/default.aspx">General</category></item></channel></rss>