Jeff and .NET

The .NET musings of Jeff Putz



My Sites


June 2008 - Posts

Bill Gates era coming to a close

Bill Gates is just about done at Microsoft. I feel very fortunate just have been in the same room when he did the keynote at Mix06. I don't think the guy is evil in any way. I think he's f'ing brilliant, and he deserves every bit of his success. He's not always right, but he's a smart guy.

I really dig this quote from this interview:

I mean, that's the greatest surprise to me of all in my whole business career is that you find people who are so good at one thing, and where the principles and models and approaches in that and in the other area are actually very similar, very similar, and yet they're very poor at the one and just beyond brilliant at the other.

I've seen this very phenomenon countless times, and in terms of technology, I think it's the thing that at the root of so much technological failure. I would even theorize that it's the reason some of the "best" people I've worked with were not academically rooted in computer science, but came from a broader set of experiences. It's staggering how many brilliant code monkeys don't get even the most basic marketing principles.

It'll be interesting to see how the culture at Microsoft evolves post-Gates. I think it has already been changing for the better, just in the last five years that I've had exposure to the company. Regardless, you have to admire someone who started by taking a serious risk like dropping out of school and going on to lead one of the biggest, and arguably most influential, companies in the world.

Lingering thoughts about the Microsoft interview experience

It's strange how a number of different posts on my blog get comments practically every day. The big ones have to do with the failure of US education, my HP laptop from four years ago with the broken power jack, Xbox Live support sucking and the entire app/page/control event cycle based on pre-beta ASP.NET v2. A new one has become my post on my experience interviewing at Microsoft.

The comments on that post were thin, but I'm staggered by the number of e-mail messages I get. They come from random strangers, people who work there now and probably know the people I interviewed with, and surprisingly, a ton of people who had a similar experience, turned off by the company as a whole. As I said in that last post, that's still something I wasn't prepared for.

I also wasn't prepared for the, "Dude, you should come work on our team," messages. Ha! If only it were up to those people, right? The thing is, if I were approached again by someone at Microsoft, I'd make damn sure that the job was right for me. That's a luxury that I think a lot of people don't get used to when they get to a point of more senior experience. I never really realized it until I got my current job and left the consulting nonsense behind. An interview isn't just you being evaluated by the company, you're evaluating the company as well.

So would I work at Microsoft if I had the opportunity? Yes, I think I would, but I've developed a better sense of what I need first. The list starts with having a better opportunity for professional development than I have at I feel like they're finally getting me into projects and discussions that fit well with my skill and desires. Other companies have to compete with that if they feel I'm worth it.

Second, the position has to be right. My greatest interest remains in the ASP.NET area. It's what I know best, it's what I care about most. I really like the idea of being a PM, especially the opportunity to share your new goodies at conferences. I'm not sure if I'm smart enough to be a programmer, but my opinion may change as I continue to look at the .NET source code.

Third, the people who will interview me need to know what I'm about to some degree before I get there. I could tell that one of the guys I talked to last time had never looked at my resume prior to me sitting down in front of him, and frankly that annoyed me and I thought it was disrespectful (but hey, thanks for the 4,000 free OnePass miles).

I think it was that last part that really irked me when they came back with the stock "different direction" response. I was in a meeting last week talking about some pretty interesting stuff that we were planning, and my mind wandered back to Building 42 where I realized that no one had the slightest idea about the kinds of things I was doing today. That seems like a massive failure on their part.

I'm not the super-utility know-it-all type. I realize that, and I'm OK with it. But I do learn what I need to when the gig is something I'm interested in. The hard part about working for other people is that there is a certain level of burden placed on them to best utilize your skills, and you have only so much control in helping them connect the dots.

XNA Creators Club sucks too

It's bad enough that I can't use my real name on Xbox Live, but I can't even do it trying to sign up for the XNA Creators Club. And I'm sure there's no human being who would respond to, and act, to fix it. Believe me, I've tried.

You'd think my last name wouldn't be banned now that there is a baseball player, in Seattle no less, who shares the cursed name.

Understanding the benefit of a good IDE

Tyler posted a link to a blog post about someone preferring a text editor over an integrated development environment (IDE). Naturally, my first thought is, wow, who thinks like this?

My first real exposure to development work was with the old ASP, which was frankly a shitty scripting language. You could use Notepad, FrontPage or a stone tablet to "develop" scripts. And why the heck not? You ran the page and it either worked or it didn't.

In 2001 I got into the .NET beta thing pretty early, along with the new Visual Studio. I think the visual stuff in the app to this day came along to pacify the old VB6 crowd, but I don't know of anyone doing serious development using the visual tools. I've always been one to peck out the markup and C# in text.

And boy, that Intellisense is worth the price of admission. Type "<asp:h" and then tab and you've got yourself a Hyperlink control. Type "i" then tab and you've got ID=". In the C# side of things, "pub-tab-vo-tab" gets you to public void.

Now add in ReSharper, and I'm doing things like Ctrl-F to format code, optimize using statements and namespace references, ditch redundancies (like using "this" in a class when you don't have to), etc. Or highlight some private members, Ctrl-Ins and get public accessors generated for me. Or select and choose extract method, and just like that I have a logical piece of code broken out into its own method with the right parameters.

Visual Studio doesn't get you off the hook for knowing how to design software, but it does free you of the burden of knowing every class name in the framework or dealing with mundane syntax issues. That's empowering and saves time, and best of all, allows you to concentrate on solving actual problems.

To that extent, I think Microsoft has done a pretty terrible job in marketing that ability outside of the core people who already know. When you read a blog post like that one, you can only wonder what they'd think if they saw you working with VS. It's far from perfect, but it makes my life crazy easier.

ReSharper 4.0 is out!

The best $199 you'll ever spend if you use Visual Studio...


Microsoft interview fail
Well, I don't have to worry about moving to Seattle, because Microsoft is not making an offer. So now that it's all in the past, I feel like I can talk a little more openly about the experience.

I won't say which group it was that I was approached by, but I will say that it was not one that I expected. My expertise is largely in the ASP.NET space, and this was a PM gig definitely not in that area. It was initially pitched to me as being heavily related to my experience, so I figured, sweet, I could totally do that!

The job was actually posted after that, and the written description was a little different than I expected. But still, this was Microsoft, and there is certainly a lot of opportunity there in the bigger picture. And did I mention they were footing the bill for the visit?

My first interview was actually with one of the .NET PM's, which was cool because I felt like there was more to talk about there, even though I wouldn't be working directly in his group. We talked about how I'd handle a crisis with regard to shipping something, and I gave my best strategy based on my limited knowledge of the organizational structure (it was based on a real problem I'm not allowed to talk about :)). He also gave me a coding problem, which was surprisingly hard to get my head around without Visual Studio. I'm a refactor-until-it-works kind of guy, and boy do I realize that now! But it was still a fun exercise.

The second interview was with a senior PM in the group I was interviewing for, and that's where my impression of things started to change. The conversation was all over the place, which perhaps was a symptom of going out for lunch. I started to also get the feeling he was very disinterested in me. That's kind of intangible, but I kept getting the feeling I was inconveniencing him in some way. That really put me off. Checking e-mail and using his mobile device while chatting put me off even more.

From there, he asked me some very vague and abstract questions, leading me in kind of random directions. I know from reading other interview accounts that there tend to be a lot of complex scenarios thrown at you, but they're defined well enough that you can make actionable responses. This was not one of those. I asked a lot of questions, but I wasn't getting what I needed to make any kind of intelligent response. It's like someone asking you, "How would you make something?" It depends on if you're talking about software or woven baskets!

The third interview was better, but again with the e-mail checking or whatever. Come on, man, I had to come 2,000 miles for this! If you can't do me the courtesy of listening and learning about me, it's really hard to sell myself! I was really put off by that, to the extent that I started to feel like this wasn't the gig for me. Honestly I was so excited about coming to Redmond that I never even synthesized that as a possible outcome. I left the building feeling really let down.

Not surprisingly, I didn't get the gig. I think the position itself was a mismatch for my background, and that was the first issue. The second is that the quality of the interviewing wasn't particularly good (except for the first guy, who I wouldn't be answering to anyway). I've had far more vigorous interviews that did a better job of assessing my capability.

Now that I've had a couple of days to think about it, and have a sort of closure with the non-offering, I think I have some conclusions I can draw. The first is to remember what I learned years ago with meat market recruiters who put me places like Progressive (the worst consulting gig I ever had), in that it's a good idea to understand for yourself if the position is right for you in the first place. Just because it's Microsoft calling doesn't mean that the gig is right. Duh.

Second, while I was disappointed with the experience, it's not a reason to write off Microsoft as a whole. My experience as an author, and as a customer needing a little help, has been awesome. Heck, it has been better than awesome. There are a lot of very smart and passionate people there.

Is there a big job change in my future? I'm not entirely sure. As I said before, I wasn't actively looking as much as I thought it'd just be a good idea to be on the radar in Washington. It helps to understand what your worth is every couple of years and evaluate if you're getting what you want out of your current job.

Bottom line, the experience was worth it. And visiting my future brother-in-law and his family was certainly an awesome perk.
Distributed caching: Velocity

This post by Scott has me thinking a bit about caching. It's a topic that I'm sure every ASP.NET developer has had to deal with, but it's funny how you can be around something so much over time that you cease to think critically about it. That's certainly my condition.

I admittedly don't find any time to mess around with other platforms (which in part comes from a desire to be great at using one, not mediocre at many), but I do read a number of blogs and try to keep up with news sources to at least understand what's going on. It's pretty clear the for a lot of heavily trafficked apps in PHP, Ruby or whatever, that memcached is like the gold standard and saviour of performance when used correctly. That certainly makes sense to me, though the stuff I've typically worked with is far smaller, and managing cached data on the Web server itself is adequate.

So it's interesting to see Microsoft releasing "Velocity" to do largely the same thing that memcached does. It certainly helps round out the Microsoft platform (even if it is a little "me too"), which I'm very pleased to see growing beyond the Web server-database-Web framework combination. The strength here, to me is that you can pretty easily cache any serializable object. I emphasize the word easy. Looking through the documentation, I think they've got a pretty solid API. It should be easy enough to rewrite your data access code to use this.

Someone deserves a pat on the back for this. 

Interviewing at Microsoft

So by now it's probably pretty obvious that I interviewed at Microsoft. Truthfully, I haven't been looking for a job, and I tend to like where I'm at right now. That said, I had a series of casual conversations with various people at Microsoft, and out of the blue I got a call asking me to come interview for a program manager position.

The PM position kind of reminds me of the gig I had at Penton Media, basically where you provide the vision and direction for something, and coordinate the development of that product. It's a neat mix of development, architecture, some degree of project management... really a little of everything.

Since Microsoft was paying for the visit, and, well, it's Microsoft, how could I not go? It's hard to say how I think it went, for a lot of reasons I'll talk about at some other point. Truly I think that this was as much about me seeing what the company was like as it was the company seeing if I was a good fit.

So regardless of the interview itself, I was actually quite surprised at the scope of the campus. I mean, I know Microsoft is fairly substantial, what with $50 billion in the bank, but it's amazing at how big the many buildings are, with their parking garages, shuttles driving around, etc. From the outside perspective, it seems like an enormous amount of overhead.

But when you get inside, it doesn't strike me as a company of excess, the way I perceive a lot of technology companies. They seem to be a lot more invested in their people, which is, I think, the right thing to spend your money on.

Like I said, I don't have a good read on how the interview went, or even how I feel overall about the entire experience, but there is a lot to think about if they do make an offer. If not, I'll continue working at, where they continue to give me more responsibility and more opportunity to meaningfully impact the business.

Wow, I can't believe I just wrote that. Sure is a different scenario than that of eight years ago.

More Posts