Interesting post on life at Google vs Microsoft from a individual contributor perspective

Life at Google – The Microsoftie Perspective « Just Say “No” To Google

The comments are freaky. MS folks piling on this person which seems kind of stupid, because this reads like a love letter to life at Microsoft if I ever read one. I’d like to see this person follow up with a second interview in a few years and see how the Microsoft grind changes their perspective. I never worked at Google, but part of the reason that I left MS was because it was starting to feel like management looked at developers as cogs in the machine. Maybe its worse at Google, I don’t know, but this certainly doesn’t compel me to go work there. Especially as a manager. 100 direct reports! That is insane.

The difference between being an Apple developer and a Microsoft developer

At the Microsoft Professional Developer Conference

Check out this new technology! It will be shipping next year, and it is super awesome! It is the way we are going and we’re putting a huge amount of effort behind it!

It sounds neat, you drop your old silly code and jump on the bandwagon figuring you’ll be ahead of the game . The next year: silence. No mention. What happened? Microsoft dropped it. Whoops, too bad.

At the Apple World Wide Developer Conference

Hey, we’ve completely changed the OS! You’ve got 30 seconds to rewrite all your apps!

This sucks. It happened with the switch to universal and it is happening now with the switch to 64-bit. The worst part is the arrogance that comes from the stage when Steve talks about how easy it is. It makes the software vendors look like crap to their users. The switch to universal was as simple as checking a check box if you were doing nothing interesting. Wolfram Research’s products are unix products, there isn’t any altivec assembly in them. Real products of real substance like Adobe’s or Microsoft weren’t so simple. Everyone in those companies had to drop what they were doing and spend months rewriting code (switching to X-Code was a serious en devour in itself) just to get back to where they started. Now, with the switch to 64-bit, Apple is now saying that they are dropping Carbon support. However, that is not what they were saying up to a week ago. If you look at the cached page on google for Leopard 64-bit, you’ll see the following quote:

Leopard delivers 64-bit power in one, universal OS. Now Cocoa and Carbon application frameworks, as well as graphics, scripting, and the rest of the system are all 64-bit. Leopard delivers 64-bit power to both Intel- and PowerPC-based Macs, so you don’t have to install separate applications for different machines. There’s only one version of Mac OS X, so you don’t need to maintain separate operating systems for different uses.

Dropping carbon is MAJOR. For apps that exist on both windows and OS X and for apps that predate Objective C, Cocoa is a non-starter. Many of Apple’s own major apps are written in Carbon. Apple just shafted their ISV’s and then told their user base that 64-bit was going to be awesome gearing them up for a second major revolt when the next set of apps come out and they aren’t 64-bit. This is the universal thing all over again. And WTF with Steve on stage saying “you’ve done a great job switching to universal, well, most of you.” Jackass.

The RIA battle heats up

Not content to let Adobe and Microsoft slug it out, Java and Firefox decide to enter the fray.
APC: Firefox to go head-to-head with Flash and Silverlight
CNET: Schwartz: JavaFX can take on Flash

I don’t think that this will amount to more than a distraction. JavaFX seems a bit like a mess. Reading over the docs, it is very awkward from a language perspective. Java devs don’t really need it. I could see it being more of a problem for Flex than Silverlight, only because I don’t really see a lot of the Java crowd embracing any Microsoft technology. That said, it is really aimed at the same target market that Silverlight is: developers. Flash devs aren’t switching to Java any time soon. Even Silverlight doesn’t seem to do much for them. I’m guessing that JavaFX may gain some success in the Java community, but I don’t see it peeling of Silverlight or Flex devs.

The main problem with Firefox is marketshare. Until they hit 95% of the browser market, why would anyone do something that would only work in that browser? I’m assuming that I’m missing something here.

proof that H1-Bs are used to hire cheaper labor

I have railed against the abuse of the H1-B program in the past, having seen it up close in a previous company.

The program was cut back seriously after the bust, but several key tech heavyweights have been arguing for its return to old levels even though there are still 800,000 fewer people employed in the tech sector compared to 2000.

The InfoWorld Reality Check blog has some more data dispelling the lie that H1-Bs don’t drive down wages for the rest of the industry. Part one is anecdotal evidence from a former HR person, the other is real study data from John Miano. Unfortunately, he seems to work for some right-wing anti-immigration think tank. Can we get some more impartial data or anecdotes?

Flex goes Open Source

Flex:Open Source – Adobe Labs

this is freaky awesome news. I work at Adobe and I didn’t even know about it. This will totally open up the tool chain and allow lots of cool authoring apps addressing the different needs of Flex developers. I won’t jump the gun and declare Expression or WPF/e dead, but in the minds of web developers, who are the kinds of people who actually care about this stuff, this makes the decision a no-brainer.

Review of blend from an Interaction Designer

SB.com: –Engage!

After all this, I realized that MS made a really powerful tool for really expert users. It seems that after all is said and done that it is a tool not for interaction designers, but for interactive designers and thus its real promise is lost because interactive designers don’t design or engineer applications but rather sites, and experiences. Interaction designers do both, and quite honestly are more skilled and experienced in designing complex interactivity than those who come to all this from interactive design. I know I’m going to get burned from that statement, but while interactive designers are really great and knowledgeable, they don’t know a heck of a lot about UX, cog psy, HCI, usability, etc. It just isn’t part of what they do. They concentrate mostly on implementing the presentation layer without much attention to the context of use, without using user centered research models, etc.

First of all, I didn’t know there was a major difference between Interaction Designer and Interactive Designer, although I guess it makes sense that you would want to distinguish between the two different disciplines. I usually hear User Experience vs developer, or something like that.

That aside, it is a very interesting take. It actually makes blend a bit more appealing to me, because I’m more a programmer than designer, but the interface seems pretty screwy relative even to Flex, so I don’t know…

Rands In Repose: A Glimpse and a Hook

Rands In Repose: A Glimpse and a Hook

I just read this post, you should read it too. It’s a great follow up to my earlier post about college CS resumes. I agree with “rands” (not his real name) on a lot of what he said, so rather than rehash, I’ll offer how I do things differently…

Your Name. It’s simple. Do I know you? Whether I do or not, I’m going to immediately Google you to see if I should. Oh, you a have a weblog. Excellent.

I may google you eventually, but I usually won’t bother until I’m setting up a screening call. Then, I only care if you’ve posted about something relative to software development, or if your name is familiar.

Company Names. Do I recognize any companies that you worked at? If I do, I don’t look at what you actually do, I assume that if I recognize the company, I’m in the ballpark. If I don’t know the company, I scan for keywords in the description to get a rough idea. Hmmmmm… networking words. Ok, you’re a networking guy.

yeah, this is pretty spot-on. I will add that if I know someone at a company you used to work at, I might ping that person to see if they knew you.

Other Interests and Extracurriculars. Yeah, this is part of the first pass. I’m eagerly looking to find something that makes you different from the last fifty resumes I looked at. More on this in a moment.

I totally disagree here. If I see “Other Interests and Extracurriculars”, I see “Resume Filler”

Skills. I skip the skills section not only because this is information I’ll derive from job history, but also because this section is full of misinformation. I’m not going to say that people lie in the skills section, but I know that if a candidate has heard the word Linux in the workplace, there’s a good chance they’re going to put Familiarity with Linux as a skill on their resume.

I totally disagree with this as well. If you have the skills, but not the job experience, I’ll assume that you don’t have the skills. If you have both, expect to get a lot of questions about the listed skills in the screening call. As I said previously, “Don’t list it if you can’t back it up.”

School. Yeah, this is the first time I’ll notice whether you went to college or not. I purposely do this because I’ve found over years of hiring that a name brand university biases my opinion too early. There’s a lot to be said for a candidate who gets accepted to and graduates from Stanford or MIT, but I’ve made just as many bad hires from these colleges as great ones.Seeing a non-Computer Science degree is not a warning flag. In fact, I’m a huge fan of hiring physics majors as engineers. For whatever reason, the curriculum for physics has a good intersection with computer science. Any technical major for me is perfectly acceptable, and even non-technical majors with a technical job history make for a resume worth thinking about.

I agree that once you’ve been in the industry for a while, your education isn’t nearly so relevant. The fewer years you have been out of school the more relevant a data-point it is. Same with your major. Some of the best programmers I know were music majors. If you’ve been in the industry for a while, your major isn’t really important. If you are coming straight out of college, it is pretty critical.

Never include a cover letter. I don’t read them. Recruiters don’t pass them on. Make sure the key points of your cover letter are living in your career objective and your job history.

Damn skippy.

Include seemingly irrelevant experience. This applies mostly to college types who lack experience in high technology. You’re going to stress that your job history doesn’t include any engineering and you’re thinking your summer working at Borders bookstore is irrelevant. It’s not. Any job teaches you something. Even though you weren’t coding in C++, I want to know what you learned by being a bookseller. Was it your first job? What did you learn about managers? How did you grow from the beginning to the end of the summer? Explain to me how hard work is hard no matter what the job is.

Sorry, but I don’t care what other jobs you’ve had unless they are relevant to the job I’m interviewing you for. If you’ve been in another industry and you switched over to engineering, that would be relevant, maybe.

The comments to that post were really interesting. Some more good tips and a lot of people calling “rands” a jerk. I can understand if you’ve been passed up for a lot of jobs how you might dislike this kind of advice, but man ‘o man, I wish that someone had told me some of this when I was younger. That is why I post about it too. This is stuff that can help you, if you agree with it or not. Something interesting here is how he and I diverge. It shows you that all hiring managers look at different things. Does that help? Probably not. It probably confuses, but at least you have some more insight. I’m sure that there are a zillion more posts like this on-line. Read them all and distill the best advice for yourself.

One more point: unlike “Rands”, I read every line of every resume. Some, I may skim more than others (especially if I have a pile to get through), but I know what it is like to be on the other side. I would hope that most other hiring managers would have the same courtesy.

Open Call From the Patent Office – washingtonpost.com

Open Call From the Patent Office – washingtonpost.com

The patent office has decided to open up the approval process to anyone on the net. Allowing internet users to make claims regarding the voracity of a patent’s uniqueness and also show evidence of prior art. The first group of patents that will go under this public scrutiny are from the software industry.

On one hand, this is brilliant. There have always been the horror stories of the insanely extensive and overreaching software patents awarded to companies who had done nothing. These companies then went about suing every other company on the planet until finally someone stood up to them and challenged their patent. The patent examiners get a zillion patent applications a year, many of which require specialized knowledge of the arcana of software design. It is understandable how some stuff would get by them, and this new plan should help.

On the other hand, this could be a total and utter mess. Most professional software developers aren’t allowed by their companies to look at the patent office web site. The fear is that if the developer’s company got sued for patent infringement and there was a record of someone at that company accessing the patent website, the company could not prove that they didn’t know about the patent they were infringing. That is the crux of patent infringement defense. You can’t infringe on a patent that you don’t know about. So, then, who is going to be contributing to the patent review process? Well, I would imagine that the big companies would be contributing legions of lawyers to support their own patents and challenge their competitors. I would also assume that college professors may contribute, and they might have the best contributions, but doing this ain’t exactly gonna pay their grad students, is it, so how much time are they gonna spend trolling the site? Who is going to contribute the most? Random internet folk, the same kind of people that start flame wars on every site that allows users to contribute content.

Yeah, that’s is going to elevate the process.

Flex, WPF/e and the new war for developer hearts and minds

Scoble starts a discussion (Why do a reader only for one publication? (Adobe vs. Microsoft for developers)) and Ryan Stewart picks it up (How Adobe started winning developers)

I think we’ve got some fun coming on and we developers are going to be in the catbird seat as Adobe and Microsoft fight it out for our loyalty.

disclaimer: I worked for Microsoft for 8 years and I’ve been working for Adobe now for 3 years, but not directly on any of the technologies I’m writing about.

C# was first launched when I was at Microsoft and I was pretty skeptical because it seemed such an obvious attack on Java and at the time I wasn’t that interested in Java. Real Developers write in C++.

Then I left Microsoft for a start-up where our chief architect convinced us to write our system in Java, and I learned it, and I found it pretty powerful for some things. My development team was able to build a fairly complex system very quickly with few bugs by taking advantage of the richness of the language and supporting libraries like JUnit. It reminded me of Common Lisp. When you got used to writing in Java: if you needed some functionality, your first impulse was to look for it in the language itself instead of writing it from scratch. Most often it was there.

Then, I left that start-up for another start-up founded by a former softy like myself where we embraced .Net 1.0 ’cause we were using all other MS technologies and we were writing a grid-type app. I liked .Net and C# even more than Java because it was so integrated with the OS (as long as the OS was windows, which it was in our case).

Now, I’ve taken a Flex class and I have to say that I’m really impressed. It really does for RIA what C# and Java did for server-side programming. Also, it is nice to finally have a more programmer-oriented approach for developing SWFs with a real IDE! I think that C# was also really good for rapid application development and prototyping as well, but Flex is much obviously better. As someone who works on both Macs and Windows, I definitely dig that cross-platformness and symmetry.

WPF/e is really interesting, but I haven’t gone into depth with it. Why not? Well, at home I have macs only now, and at work I have my actual job to do (in C++, natch). After looking through the docs and stuff, I can’t really see how you’ll be able to author cross-platform stuff with it since it seems so crippled on other platforms. I have to say that the strategy seems pretty much like “protect the windows platform by making the tools for windows only and the experience crappy on other platforms while still talking up how we are cross-platform.” Kinda similar to the original .Net story.

I’m also concerned that this stuff could get dropped or have less contribution if MS ever does (or doesn’t) win out. (Blackbird, Windows Media Player for Mac, IE before FireFox, etc…)

The one good thing is that the competition will push both Microsoft and Adobe to continue to develop better tools and that makes us developers the absolute winners here.