Another long time without posting anything. This time due to changing groups!!! Once we had wrapped Whidbey up, I spent some time thinking about what I would like to do next. One of the good things about Microsoft is that it is a huge company, you can work in a ton of software areas here, from experimental OSs or the Windows kernel and all the way to something like MSN web services, passing by games, productivity software, databases, search, etc, etc... It's just amazing.
I had a great time in the CLR, I spent 5 years there, working with some of the most talented people I've ever met, had the opportunity to work on cool features of the product. Working in the CLR is close to building an OS, you are building this platform upon which a ton of groups and people build their own software. Most of the time you are working at a very low level, and we must be one of the few groups left in the company that is implementing crazy x86 tricks to get some extra cycles out of some important codepath. It's cool to be at the bottom of the stack, but it also has it's bad side, everything you do you have to look at from 1000 different angles, see how you will affect everybody, make sure you are meeting everybody's needs, and no matter what you do, somebody out there you will be breaking or annoying. The result of this is that everything moves slow, it's the price of doing business when you are the platform.
So after thinking about it, I heard about an opportunity in Exchange, in Outlook Web Access. I had some friends there, plus its an app I use every day and I like, it's mostly managed code and there are a bunch of things to work on. After 4 months here, I can say I'm happy with my decision, I get to work on a lot of interesting stuff, I'm using the platform I helped to build, which is an incredible feeling and I get to use (dogfood) the app I'm building, every day, which is a really good feeling.
So anyways, I'll probably keep posting about CLR, I'm seeing a lot of things from a different perspective now. I now I'm using managed code every day in a real product, not in my home projects, and boy, it's amazing, The combination of Visual Studio + the super rich set of libraries the .NET platform has is just a massive productivity boost, you really have fun writing code. I also get to see some uglyness we didn't really get right, and that until you feel the pain, you don't realize how much a simple mistake in the platform or one of these 'postponed' features can cost everybody out there for n years.