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.
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 Insurance.com. 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.
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.
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.
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.
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.
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 Insurance.com, 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.