Attracting Talent


Today I want your insights, opinions and advice.

In any large organization over time people are going to move around within that organization, or leave it for various reasons, and therefore sometimes you need to bring in fresh new people to fill the gaps left by the attrition. Over my sixteen years in the Developer Division at Microsoft I’ve seen numerous understaffed teams working on great technology; it is almost always a struggle for them to find, attract and hire talented developers.

My two questions for all you professional developers reading this are:

(1) When you read a job posting on a career site, what are the things you look for when deciding whether you’re interested or not? Are there “red flags” that immediately make you unlikely to follow up? Are there more subtle indicators that discourage you? What encourages you?

(2) What would you find particularly attractive or unattractive about an opportunity to work on a developer tools team? (at Microsoft or elsewhere, though I am particularly interested in “at Microsoft”.)

Note that I am particularly interested in your opinions on software developer positions; if you have insights on attracting people to program management, quality assurance or user education positions I’m happy to hear them but I’m more interested in developer position factors today.

I certainly know what my answers are to those two questions, but I already work here and I might be atypical. I’m interested in what your answers are. Please leave comments!

Comments (95)

  1. Rick Pocklington says:

    I’ll preface my comment by stating that I usually look at job postings for in-house IT. I don’t know how different it is working for a software development company.

    What I typically find discouraging are job postings that emphasize experience with a wide variety of technologies. I’ve seen some postings that have such a range of “required” skills that I don’t think there’s a single person qualified. These postings make it sound as if they aren’t considering the technical prowess of the applicant. As Joel Spolsky calls it, the “special part of the brain that they’re going to need to do great programming work.” Instead, they only seem interested in whether you’ve worked on a project that used Python for at least n years.

    I once saw a job posting that required “five years experience working with ODBC”. Seems reasonable, right? This was in 1992! I had actually just received the first version of the ODBC developer SDK and was in the process of writing the ODBC driver for WATCOM SQL (now known as Sybase SQL Anywhere I believe.)  The ODBC dev kit had been available for I think a couple months when I saw that posting. Recruiters often don’t know anything about the actual technology, its history or context; they just know they need a dev who can understand “ODBC”, whatever that is, and write the posting. — Eric

    In my experience, the quality of programming of a top-notch developer who used technology X once or twice is still better than that of a mediocre developer who’s been using technology X for years. When I see job postings that so emphasize particular technologies, I feel so threatened by the need to explain to the recruiter that it isn’t as important as technical aptitude, that it discourages me from applying.

    I strongly agree. However, there is a flip side. Once, many years ago I interviewed a guy who had nothing but machine vision on his resume; that’s what he had done his masters research on and what he’d worked on in industry. Now, I agree with you that this demonstrates ability to learn about a particular topic deeply, and we certainly need that skill on the language design team, so I was very glad to get this candidate. First question: “I see you have a lot of machine vision experience, and I’m very interested in that topic so I’m looking forward to talking to you about your work. But I’ve got to ask, why are you applying to a compiler team?” 

    His answer: “I have no interest in working on languages. The Microsoft Research team that does machine vision isn’t hiring right now, so my plan is to get a job working on something else for a year and wait for a position in the machine vision research team to come open. Then I’ll transfer over there.”

    I was stunned. I mean, A+ for honesty, but NO HIRE for my team. Hiring people, ramping them up and getting them productive in a complex existing codebase is very expensive. We need a team member who is going to be engaged and interested for the long term, not someone who is just wasting time and drawing a paycheque until something better comes along. — Eric

  2. Pbh says:

    A very interesting question. I think to your first question, what attracts someone to a certain advertised position varies tremendously based on what one is looking for in a job and so there is no globally "right answer". For someone like me work is an important part of life (40+ hours/week) and so I want to ensure that what I do is 1. Technologically beneficial to society at large (the more it "changes-the-world", the better it is), 2. Challenging (the more innovation in the space the better because you get to learn more) and 3. perceived culture of the organization (does it sound like the company in question does not think culture is important by not talking about it in their ad?)

    As to your second question, developer tools is tricky business. One does not necessarily see the product being utilized by your everyday man and so that sense of your product being life-changing is limited as opposed to say working on the iPhone (its kind of like working on quantum field theory vs black holes in theoretical physics, the latter having more visibility). At the same time, atleast in my case,  because your target audience/customers are seasoned technologists and developers the challenge of delivering something that can be quantified as an excellent product is even higher and therefore so is the satisfaction (not to speak of the fact that your customers can understand the nuances of the problems you faced while developing the product, as evidenced by this blog). Also I feel that working on dev-tools also allows you to interface with academic research more so than working on enterprise software.

  3. Chris B says:

    One of the first things I see that discourages me is a posting that includes “technology vomit”, a list enumerating every technology known to man.  Postings like this indicate to me that the company doesn’t have a clear direction for how technology fits with its overall goals. Also, for technical positions, familiarity with word processors and spreadsheet editors should be assumed, so when a job posting for a technical position mentions that, I start to wonder. I also like a posting to indicate focused responsibilities.  This is more difficult for smaller companies where one IT person may be the developer, network admin, and help desk.

    Alphabet soup discourages me as well, both when I see it in a job posting and when I see it in a resume. — Eric

    All of these things are akin to code smells. I don’t immediately shut down, but I start to look for other signs of concern.

    I will also second both Rick Pocklington and Pbh. The most important thing any engineer can have is problem solving skills.  The ability to learn and understand languages and tools depends on these, as does the ability to guide a project through its lifecycle.

    When we interview job candidates here, we do ask questions about certain technologies that are important to our methods as a starting point, but our most important questions are puzzles and riddles because those are much more difficult to be prepared for.  We aren’t necessarily even looking for people to get the right answer, we are mostly watching how people reason through them, because that is more important than correctness (in an interview anyway).  Its much easier to show someone an error in their reasoning than it is to teach them to reason better.  As a candidate, I look for companies that think along similar lines.

    We used to do that at Microsoft, for similar reasons. This is not encouraged anymore, for several reasons. First because we’ve become famous for such questions and people are showing up prepared for the old chestnuts. Second, many of these puzzles have “aha!” solutions; I’m not interested in whether someone can come up with the “out of the box” solution. Rather, I want to know if they have a grasp of the tools that are already “in the box”, since those are the tools we actually use 95% of the time. And third, I can learn about people’s reasoning skills by watching them analyze real code, rather than inferring their code analysis skills from their ability to divide matchsticks into three piles with an odd number in the first pile… etc. — Eric

    I also would like to work for a company with more “visibility” and be surrounded by people who are capable of doing great things.  They are the people I want to learn from, and right now, I have to do it through blog posts, magazine articles, and, in some cases, forums.  Being able to work with such people directly is an advantage that Microsoft has that not many other companies can claim.

    I think working on developer tools at Microsoft would be a very interesting position, and am surprised that there is difficulty in finding candidates*.  I expected that people would be knocking the door down.  I, for one, would love to work there (especially on dev tools) because it does provide the opportunity to solve challenging and interesting problems.  I know the “Developers, developers, developers” mantra has been blasted, but that mentality is especially appealing to me (a developer, duh).  MS gets knocked around for a lot of things, but the one thing I don’t think can be argued against is that the products are almost always top notch, inside and out.  The business value may be primarily on the outside, but the problems I find interesting are usually on the inside, so working somewhere that does both well is an especially appealing idea.

    *Out of curiosity, is the difficulty in finding candidates or in finding good candidates?

    There’s no shortage of candidates, the vast majority of whom do not make it past the initial phone screen.

    Thanks for your thoughts and kind words. — Eric

  4. J West says:

    1) Whether or not they have the slightest clue what they want to hire me to do.

    When the posting has a large set of skill requirements and no mention of what they want those skills for, it’s pretty obvious that they don’t have the slightest clue what kind of a developer they’re looking for.  I’m not likely to chase that one down very hard.  When there’s a small skill set requirement and actual mention of specific teams or products that they want someone to work on or with, then it gives the definite impression of there being specific work that needs doing.

    I’m not interested in being hired for headcount, I want a job to do.  The more specific they can be about what job they want to hire me for, the more interested I am in chasing that job down.

    Another big factor would be the software development methodologies in place.  If they’re looking for someone who already knows unit testing and is familiar with agile software development practices, then I’m highly interested.  If I have to tell them what TDD is and they don’t even know that they’re using waterfall development, then they’re going to the bottom of my list.

    Call it "evidence of structured development practices" (or lack thereof), it’s a big flag.

    2) I would be thrilled to bits to work on a developer tools team, period and end of story.  It’s what I usually do, but I’m typically the only guy on the team.  Actually having other people on the team would be great.  So the #1 attraction would be the existence of a team that I could join.  Since the collaborators are the attraction, the better that team is the more interested in the position I am.  Equivalently, if the team is a bunch of cowboys, then I’m less interested.  Although I can’t imagine how any company with a whole team just for toolmaking could have a bad team.  Doesn’t mean it couldn’t happen, just that the mere existence of the team is still a positive even if the team somehow doesn’t seem all that impressive.

  5. I have been a consultant for over 25 years, so my focus is always on contract positions rather than direct/fulltime (formerly known as permanent) positions. This may have an influence on my “thought process”.

    Like the others I cringe when I see “technology vomit”. If I were to include ALL of me experience (I have actually been programming for almost 38 years!) I would not have a resume, I would have a fairly large book.

    What I tend to look for most are the clients who fall into one of two specific areas [I work across most vrtical markets except for gaming]…

    a) They have a specific problem and are looking for a resolution.

    b) The are interested in a new technology, process, etc. and are looking for guidance. In other words “They know that they don’t know what they need to know” [my apologies to those for whom English is not a first language]

    I know that’s confusing, but don’t you see what’s happening here? You and me, we’re pawns in this ugly little game. lf you love him, if you really love him, then just keep on loving him. Never let him know that you know what he thinks you don’t know that you know. You know? — Eric

    Both of these are VERY hard to discern from the vast majority of postings.

  6. For jobs far from where I live, if a position does not allow telecommuting, I immediately discard it.  I don’t understand why more programmer positions aren’t completely work-from-home.  I feel very limited to programming positions in my area because I never see positions that don’t require a person to be in the office every day.

    The main kind of programming I would be doing and the languages used are the most important after the telecommuting option.  I prefer doing web work, and I have a subset of languages and frameworks with which I’m most happy.

  7. Dave says:

    On question 1: Maybe this would exclude me from the type of developer you are looking for, but as much as I love programming, it’s not my first love. So I’m always looking out for explicit or implicit suggestions that "you must not have a family / hobby / church life / etc. to succeed at this job." Occassional all-nighters & extra-hours — of course. And keeping up-to-date on your own time by reading books? Expected. But, at the end of the day, it’s a job, and must fit into life according to one’s priorities.

  8. Will says:

    You say you get lots of candidates, just not good ones.  That might just be because MS is no longer considered to be a place where good/ambitious people go to work.   The last ten or so years have been a long run of difficult press, no stock growth, (recently) layoffs and some pretty awful product releases.

    Even devdiv doesn’t look, to me, like it’s well-run from the top.   There are some glittering nuggets (and C#/CLR is one of them), but much of the rest is a shambles – look at VS – personally I wouldn’t want to be anywhere near the kind of hell-storm which must be surrounding that project right now, even if I was hired onto a different team initially.

    I think you are massively overstating the problem. Yes, some aspects of this release cycle were a little bumpy, particularly around the performance characteristics of the CTP releases. We’re working to address both the specific technical problems and the “process” shortcomings which led to the problem. From my perspective, this release has been not particularly better or worse than others. (For example, getting through the “bug tail” on the Whidbey release was a very long slog.) Shipping software of this magnitude is a hard problem no matter what team you’re on; what matters is how well management addresses the problems when they occur. I don’t expect perfection; I do expect professionalism, and I feel comfortable with the level of professionalism I’ve seen. — Eric

  9. Larry H. says:

    Let me add my vote for over-specific requirements as a turn-off. However, there is more to development than general problem-solving skills. Applications development is very different from systems development, which is different from language/compiler design, etc. It’s a good thing when people ask for domain or category experience.

    Also, it’s a little discouraging (but hardly surprising) the importance a lot of companies place on one’s college degree and class standing, especially for senior developers. Especially discouraging for me, since I don’t have a college degree: I didn’t need one in the 80’s when I started.

    It’s extremely irritating to say say right upfront that you don’t have experience X (but you’re willing to learn), go through the entire weeks-long interview process, and then get rejected for not having experience X. That happened to me the one and only time I interviewed for Microsoft, and why I wouldn’t apply there again.

  10. I had little desire to interview with Microsoft after reading “How Would You Move Mount Fuji? Microsoft’s Cult of the Puzzle”.

    Though I enjoy William Poundstone’s writing, I was struck when I read this particular book just how out-of-date it was. As I said above, I know no one at Microsoft who still uses these hoary old brain teasers as interview questions. They do a bad job of testing for skills that I am actually interested in, like ability to debug existing code efficiently and effectively. — Eric

    Agile teams are attractive to me. A recent podcast interview with a Microsoft employee made it sound like TDD is still the exception rather than the rule at your company.

    Generalizing from one employee out of 90000 is perhaps a hasty generalization. There are some teams that are full on scrum-meeting-every-day test-driven-development agile, and there are some that are very traditional waterfall model. Microsoft is not a monolithic entity where one size of solution fits every development problem. It’s more like a collection of mostly-allied fiefdoms where each particular team sets its own working style based on what works well for the product and the employees. For example, the XBOX dev tools team is on a strict “every thirty days” ship cycle, which works well with a scrummy agile style. But that would be ludicrous for, say, the team doing research on programming language asynchrony. — Eric

  11. for me, i like to know that the programmers are largely shielded from non-programming aspects of a job.

    programmers like to program!

    not only are non-primary aspects of a job demoralizing over time, they can have quite the negative impact on concentration and productivity.

    another aspect for me is flexibility. while i can see that some there should be some "core" business hours for a team to all be around (some 3 hour chunk in the day maybe), the rest of the time should be pretty flexible. not everyone gets into their natural zone at the same time.

    as for Microsoft specifically? i have a fear of inflexibility and lots of corporate/political baggage – both as an overall layer as well as inter-team infighting, turf-wars, etc.

    it could be completely unfounded, but that’s a general fear i have about any large company.

  12. @Sarah – Although I have done many tellecomute projects (acroos the USA, and from Germany to Austriala (the long way), my experience is that this is rarely effective in many areas [but by no means impossible]. While LiveMeeting, etc. can address many of the issues, so much of the the project dipically tepends on ad-hoc meetings of the team members in a fc-2-face situation

    @Dave – "It’s not just a job, it’s an Adventure"…but I do get your point. My experience is that a top developer needs to spend 15-20 hours per week if they are to keep current [over and above the "paid hours"]

    @Will – I worked for MSFT (specifically MCS) for two years [2005,2006]. It was a great environment (however the extensive travel brought work/life balance into a near crisis. The days (as an MVP for 2008,2009,2010) I have to same that my involvement with DevDiv has been an excellent experience. This applies all the way from the top to each of the teams I have been involved with.

  13. Eric, nice on the Sneakers quote.  I’ve got to see that movie again.

    Quite frankly, I rarely judge a job by its HR description.  My first consideration for a job is whether I would want to work for that company.  Then I think about the project.  And then I think about a few things that matter to me that are personal preference.  But I’ve seen job postings that sound horrible that I know actually describe pretty cool jobs.  Doesn’t mean I wouldn’t apply for them.  

    As for the requirements, I figure you’ve just got to read between the lines.  If you have real experience, you will be considered, unless you get unlucky.  If not, then you will be considered, if you get lucky.  What the experience is (or isn’t) actually doesn’t matter much.

  14. (1) What encourages you?

    - A Team that shares my passion for software development

    - People on the team that I know I can learn from

    - A Project that I know can have a larger impact

    (2) What would you find particularly attractive or unattractive about an opportunity to work on a developer tools team?

    - Being at MS that in itself would make it attractive, the scope of the project is as large as it can be for that area

  15. Tom W says:

    As a (very) junior developer who walked very much sideways into the career:

    1) Fear of being blitzed way above my level of knowledge.

    2)  Somewhat a secondary to the first; lack of recognition that experience and knowledge don’t just magically appear. Some of the juniors you’re interviewing haven’t been in the job for very long, and if they happen not to be computer science graduates, won’t know stock answers to fundamental questions. They’re the sort of thing you work out as you go along, or look up. I’d like there to be some demonstration that the ability to adapt, learn and improvise is important to the employer.

    Then again, if those are my issues, perhaps I’m not the sort of person Microsoft are after.

  16. One big red flag for me is the use of specific products (i.e., ADO.NET connections to Oracle are not *that* different than to any other db) and overly-specific technologies.

    Another red flag is the location. Really. Headhunters have a tendency to believe all of Michigan is right next to Detroit…

    As far as what I find attractive in a developer team, the single most important aspect is a high degree of autonomy. Agile may be nice, but out of all the job postings emphasizing agile methodologies, not a single position actually had anything to do with agile (it was just used as a buzzword, maybe?). But autonomy is important – I’d at least want to participate in the technological decisions (in my current job, I get to make them all).

    To answer an unspoken question ("Why can’t we find more employees?"), here’s a few facts:

    1) In the current economic climate, people are leaving cities and moving into the country.

    2) The housing market in Seattle is still incredibly high. My $100K house here would cost ~$750K there. So it’s very difficult for people like me to move into your area unless you offer like a half-mil hiring bonus. Right.

    So, I think there’s an additional factor to consider there.

          -Steve

  17. Erik Schulz says:

    Background: I’m new (5 years dev experience) to the industry but I’ve programmed for over 15 years.

    1)

    What gets my attention:

    Long descriptions!  If your job posting contains less detail than my resume maybe you should try harder.  

    Likes:

    Is it interesting work? Will I get to work with skilled people? Is it good pay and how long will positions / projects last?  What team will I be working on and what have they done in the past?  I rarely see any of this on a job posting and when I do I almost always apply. If you answer these questions fully that’s what makes me jump to apply.  If I match all the job skill requirements that just means I can ask for a higher starting salary.  

    Dislikes:

    "technology vomit" – As others have mentioned this is an instant next.  The call back rate on these job postings are so incredibly low I don’t even try to apply to them.

    Micro Requirements – Similar to "technology vomit", Don’t expect me to be familiar with something that can be learned in a few months.  If I see a lot of "prefer people familiar with X technology" I move on. This means you’re looking for the perfect candidate that you will never find and that isn’t me and/or you don’t really know what you need.

    Obsolete Technology – If you’re still using Visual Basic (doesn’t apply here but you get the idea) what other obsolete technologies are you using?

    Bureaucracy – Sometimes this is associated with a company and sometimes it is visible in the job posting.  Can I tell if the job posting was written by a professional writer or a dev.  This seems little but it gives hints as to if I am going to be micromanaged or killed slowly in long meetings.

    2)

    Developer tools sounds interesting but without details it’s hard to say.  My assumption is that everyone on the developer tools team is interested in challenging work.  Who really enjoys whac-a-mole programming anyway?

  18. NickLarsen says:

    I graduated about a year and a half ago, but I remember exactly what I was looking for when searching for a job.  I wanted to know the team size I would be working on specifically because it was my goal to find a medium size team.  I asked about this specifically for every company I interviewed with and even some follow up questions to make sure they knew I was asking "how many people have the same job I have" and now, how many IT people do you employ?  I also do not like switching jobs often (meaning the kind where you start over with learning a new code base) and so I would always ask questions about the projects the team is currently working on, what technologies they were built on and what kind of goals they were working for with those projects.  

    Most of those things probably do not belong on job listing, but I was particularly drawn to anything specific that sounded like a developer wrote it.  I remember a listing I jumped to apply for when it said developing a system which tracks alien activity in the United States (not space aliens, but non-citizens).  That caught my eye as something I would be interested in, and so I looked deeper.  My eyes glaze right past listings for "web developer" all the time even though that is what I want to be doing because it is not nearly specific enough to catch my attention.  I have looked at 1000 listings for web developer that ended up being some mom and pop shop looking for someone to make them a website for $500.  That is not what I want to be doing, so I stopped looking at those a long time ago.

  19. Kevin Stevens says:

    I won’t reiterate the above complaints about “technology vomit” (a term I am going to immediately adopt, btw).

    One of the things I look for in a job typically isn’t covered in job postings, and I wish that it were: autonomy. I’d like to know how much freedom of action I have to get my work done. However, I can usually get to it through a few questions during the interview.

    How hard is it to install a new piece of free or open-source software on my dev box?

    If the team decides it needs a new tool, how hard is it to get?

    How much control do I have over my work schedule.

    Around here, it’s typically: hard, not very hard, lots. As for the first item: it is hard to use open-source tools because of the danger of some legally-vague, insufficiently-tested-by-courts license whereby I use this tool to reformat my source code once, and suddenly we’re legally required to ship the source code for Office. Or I look at the source code for this code reformatting tool, and suddenly if someone else in the next building makes an even vaguely similar reformatting, we’ve violated a patent. Or whatever. It is a legal minefield that we do not want to step into. — Eric

    If those things are hard to do, I’ve found that the company is far too restrictive for me to be successful there. Others may thrive in that environment, just not me.

    As for things that would get me to apply for a job, working for Eric Lippert would definitely be one of them.

    Thanks, that’s a nice thing to say. Just to be clear, no one works for me, only with me. Microsoft has two tracks for advancing as a developer: technical, and managerial. I am firmly in the technical track, so I’ll never have reports. — Eric

  20. barrkel says:

    As a developer, I tend not to read job postings on career sites. I’m more open to people who contact me, rather than the other way around; especially if its contacts who know me, or know someone I know.

    WRT developer tools positions, the major opportunity is having input into the design (and implementation, but especially design) of abstractions and abstraction-building tools that can make life for end-user developers easier, or even one’s own life as a developer easier.

    WRT developer tools at MS in particular, there’s a problem: MS is particularly focused on developer tools that make writing the kinds of software that MS writes easier. They are not as strong WRT tools for web applications, or tools for targeting other platforms, or even tools that don’t necessarily integrate with SQL server, IIS, integrated authentication, etc. etc. I feel that the strategy tax where MS is involved is substantial and burdensome, and badly impacts MS’s DevDiv’s creativity for producing tools developers actually need, rather than what MS biz mgmt thinks it needs in order to shift more server licenses.

  21. Will says:

    @Eric – You are, of course, able to describe how things really are inside MS.   I’m only describing how I perceive them from outside – even though I’m wrong, it might be relevant when trying to get inside the mind of a potential new hire.

    I look at things like RicoM’s disappearance shortly after making a presentation on November about how good VS2010B2’s performance was, and I imagine the processes which took most of a decade to stop F10-help being a 10-second blocking wait which gave you the wrong help and I click on a Connect link and wait for my browser to timeout after a specious security warning which after a retry gets me an off-hand one-line dismissal by someone who doesn’t even really speak English of a bug report which took an hour to create.  And then I wonder why .NET 3.6 had to be called .NET 3.5 SP1 RTM, and then I think ‘would I be enjoying coffee and biscuits with Anders once a week as a member of the golden C# circle, or would I be weeping with frustration as my attempts to fix any one of these trivial problems were ground under the heels of a thousand committees and middle managers, any one of them waiting to shaft me in some annual review process if I got too lippy?"

    MS may well not be like that at all, and if it is, it’s certainly not your fault and you can’t fix it.  But I’d be surprised if some of your potential applicants aren’t wondering some of the same things, and that a vital role of your job advertisement might be to communicate "we’re not as bad as we sometimes look" to potential employees.   Alternatively, you might consider that I’ve run my own company for years, am completely unemployable and know nothing about either recruitment or MS  :-)

  22. Anthony P says:

    I also get frustrated by the unreasonable (and usually irrational) technology requirements in most postings. How long has the .NET 4 beta been available? Because I’m pretty sure I’m going to see requirements for 5+ years w/.NET 4 in the coming months, alongside the "obvious" related requirements of ASP, PHP, XSLT, VB, C, and Fortran, all for a junior developer role paying 45K.

    I’ve had my eye on the (depressing) job market for a while. I need to bite the bullet and move to a better market, but as for now I keep telling the local recruiters that I’m looking for a team environment. In my present role and really for my entire time as a programmer (although this current job is my first 100% development position), I’ve been the only guy on the "team." I enjoy learning new things and exchanging ideas, because I feel it makes me a better programmer when I can not only be assisted but also assist somebody else, and right now I get that fill from blogs such as this one (which pits me as the assistee) and on forums (where I mostly play the role of the assister).

    The other downside of my present job is that we work on websites for other mostly local companies and we tend to go from job to job in rapid fashion. I like to laugh when people bring up agile and test driven development and having shippable code every 2-4 weeks. Most of the projects I work on have to be completed in less time than that! There are a few that keep me busy for longer, and then there are clients that are constantly wanting to add new functionality to their websites, but many of the projects I get are 20-40 *hour* projects that, frankly, do not often challenge my intellectual curiousity enough.

    The positive about working here is that I have learned a lot on my own and have gone from somebody who probably was woefully underqualified to be the only guy on the team to someone who, I think, is pretty darn good at what he does. But the growth potential is limited since the projects aren’t that diverse and there’s only so much you can do for smallish local companies anyway (or only so much they can afford).

    Anyway, I can see this doesn’t really help you, it’s more of a venting session! I guess the takeaway is be accurate with your requirements and provide challenging work (which I’m sure isn’t a problem for Microsoft).

  23. Diego F says:

    I’ve been playing with programing languages since I was 13 years old. Later at age of 17, I’ve started working as an intern on the IT department of a mid-size company on their ERP (VB6 and ASP). Since then I’ve been working with .NET and C#, and I still take time to read and learn every day. I’m comfortable with C#, C++ and F#, as well as COM, COM+ and other scary things in Windows eco-system. Took my MCPD exams without even studying. Every company I entered told me I’m a good professional.

    But still, what keeps me from taking an interview at Microsoft Developers Division is the high expectations that the company has on the candidates. I’m a normal guy, which works 42.5h/week and is a passionated developer. I’m not someone who eats algebra and spits assembler. That’s why I don’t waste your time.

    Besides that, it looks like a really good place to work.

  24. Diego F says:

    BTW, I’m 23. Forgot to mention that.

  25. Seth Petry-Johnson says:

    Things that catch my eye in a GOOD way:

    ————————————————-

    - Posting mentions modern technology, but not in an alphabet-soup manner. I’m looking for positions where I can stay current and explore new things during the day, in _addition to_ the learning I do on the side.

    - Posting indicates, to some degree, the team culture that exists. Would I be working with smart, energized  people that share my passion for technology? Or is it a place where developers go to die? Is there an organizational commitment to continuous improvement, or is the goal to just get things "good enough"?

    - Posting indicates I would do more than write code 100% of the time. Software engineering is my passion, but I am also talented in (and enjoy) DB design, performance profiling, data analysis, marketing, front-end UI and the occasionally forensic troubleshooting session. I want my primary job to be programming, but I want to add value to my team in other ways as well.

    - Telecommuting is always a plus for those of us that don’t live near a "tech mecca".

    Things that catch my eye in a BAD way:

    ————————————————-

    - Posting indicates a poor level of understanding of the position. If the posting and interview are run by a non-technical person, how will they know how to value me relative to my peers? How likely is it that they’ve done a good job of hiring the sorts of people I want to work with (see above)?

    - Posting indicates the company is looking for "hands on a keyboard". I want to be encouraged to provide thought leadership, I don’t want to be a cog in a wheel.

    - Posting is devoid of personality. I don’t need to work at a dot-com-boom era office with air hockey tables and nerf bullets flying everywhere, but I _do_ need to work somewhere with a soul. A good posting has a touch of marketing spin to it.

    - Posting indicates the company is slow to adopt new tech. I don’t care what the salary is, I’m not interested in any position doing .NET 1.1 development in 2010… staying current can be a competitive advantage, especially when it comes to attracting and keeping talent, and any company that doesn’t see that is no place for me.

    I would LOVE to work on a developer tools team.

    ———————————————————-

    I’ve always enjoyed writing application frameworks more than the applications themselves. I’m much happier working on tooling and infrastructure than feature cases, and developers are much more interesting users than the traditional cubicle dweller!

  26. Playing to trends:

    "Ninja coder" / "Guru" / "Thinks Outside the Box"

    These are red flags. You’re Microsoft. I already want to work for you. Your reputation as a work environment alone makes me want to work for you.

    Second red flag sometimes is that your reputation could keep me from applying. I don’t know if I’m even good enough to work for Microsoft. There’s a level of Software developer that could conceivably work for MSFT, but not have the confidence necessary to even try — because of the reputation that Microsoft only hires the best.  Only fools believe they are the best.  I know I’m not the best (or anywhere near the top), so why go through the anguish of being rejected by MSFT?

  27. A guy from the Mediterranean. says:

    A bit OT, but… a dream of mine would be to work in the Windows Division as software developer, because I do like low-level stuff (e.g. the layers when the software meets the hardware, etc.) and C/C++.

    Moreover, I think that Windows Division produced powerful tools like WinDBG as well.

    It’s gonna be very interesting and technically rewarding job!

    Do you know if Windows Division has the same "hiring problems" of Developer Division?

    Any suggestion for someone wanting to enter Windows Division as software developer?

    …and what kind of questions are typically asked in the phone interview screening phase?

    Thanks a lot!!

    …and keep your very good work with C# and this blog.

  28. Kenneth Ito says:

    Personally, I’d like to see more job posting’s from the team/peers who are doing the hiring.  I get the feeling that the majority of job listings out there are cookie cutter blurbs by HR that mostly regurgitate a set of required skills.  When I’m screening resumes and see, "Objective/Purpose: Detail oriented, self motivated programmer seeks job to provide value," it doesn’t bode well for you.  Similarly, if I’m browsing jobs and see, "Fortune 500 company seeks detail oriented, self motivated programmer to work on exciting new projects," it just doesn’t do much for me.

    I care about the specifics of the job I’m working on and the team I’m working with.  Give me some concrete information and a sense I’m reading something from a person looking to hire a person, not a corporation hiring another nameless worker bee.  If I can identify with you and the work you’re doing there’s a much greater chance I’ll be interested.

    As to finding developers for developer tools, maybe try the appropriate blogs. Dev’s reading these blogs are probably already have something going for them and theyre already interested in the subject matter.  Personally, I don’t mind the occasional post about a job opening from the blogger I’m following.

    On another note, the Microsoft career site is clunky.  Huge lists of jobs with titles that are too full of vague acronyms.  "SDEII(707719 -External)."  The site is rather slow for clicking into every one of these.  I haven’t really browsed the site in quite a while but I also remember seeing what appeared to be internal Microsoft acronyms used within the job details as well.  

  29. Anthony P says:

    @Kenneth Ito

    "On another note, the Microsoft career site is clunky.  Huge lists of jobs with titles that are too full of vague acronyms.  "SDEII(707719 -External)."  "

    That is indeed true of many large organizations (and true of one I worked for before my current job). Job names that might have meaning as far as internal candidates are concerned (at least you might hope someone internal would know what the titles mean and/or compare to other roles), but are too cryptic for a public job site.

  30. Eric,  I posted a response to this post on my blog: http://blog.yapb.net/post/2010/03/01/Attracting-Talent-A-Response-to-Eric-Lippert.aspx  My comments would be too long to fully post here.

  31. jsternal says:

    When I’m at a career site, I want to see the company’s name in a posting, not ‘one of our large clients’ or ‘a large player in the communications industry.’ Jobs for unspecified companies start at -25.

    Most of all, I want to know that the team I’ll be working with only spends its time on high-value features for which there is a demonstrable demand, and that the team has a way of judging when a release is done.

    Practically, that means the team has to be using some form of agile / Scrum, because that’s the only reliable way of defining and delivering software that I’ve seen. (I regard other successes as lucky accidents.) Postings that advertise an agile environment always pique my interest.

  32. Chris Hannon says:

    In answer to the first question, it sounds to me like you are asking for the things that would sway you one way or another if conditions were otherwise ideal. From that perspective, assuming that all conditions are perfect with regard to job location, commute time, amount of travel required, salary (if mentioned), as well as technologies and procedures used, I would personally be encouraged by signs that the company knows what they’re doing, knows who they want and will provide a culture that will attempt to sustain that and retain good people.

    In addition to things other people have said (technology vomit, established development methodologies), too many buzzwords or sentences that don’t communicate useful information will give me the impression that they’re trying to sound more important than they really, perhaps to mask a lack of clarity. Too many typographical or grammatical errors will tell me that they really didn’t bother to check what they put out, which makes me wonder about the overall mentality of the company. These are definitely not huge things, but they will affect my perception of the company (as well as the job) in proportion to how often they occur.

    Likewise, including information about the work environment and office culture is helpful; It allows me to picture what it might be like. Reading the sentence "developers have quiet areas to work and access to a library of books on a wide variety of subjects" pushes me more towards inquiring than hearing nothing at all or getting the impression that I’ll be stuffed into a noisy cube farm with fifty other people.

    The question of whether or not I will be in an environment where I can learn something or be challenged, or even just around people that I can learn from, is a big one, but that might end up being more of a company or team image thing than something that can be conveyed in a job description. The overall goal, though, is to make it sound like a good place to work. If it’s unspecified, that leaves it up to my imagination and my knee-jerk impression of the place, so a job description needs to at least partly answer the question "why would I want to work there?" and not just "what tasks would I do?". I spend a good deal of time working, enjoying my job should not just be an "on a rare occasion" perk.

    As for working specifically on developer tools, I think that description covers a little bit too much ground for my liking. It would encourage me to hear specific products that the existing team has put out or will be working on, as opposed to a vague tools-related description like "designing and developing the next wave of mission-critical and developer-centric applications" which doesn’t end up telling me a whole lot.

    I’m much more likely to say "Hey, I’ve heard of Project X, that sounds interesting" or "I’m interested in Field Z that Project X is a part of" and apply, instead of playing job roulette and hoping for the best. If things are vague, then who the company is will tend to play a larger role (if I know that Company Y does these five things and I’m only interested in one of them, I’m not as likely to investigate more seriously). Specificity is usually more of a help than a hindrance, I think.

    Microsoft in particular gives me the impression that they could provide a good job, because of the tendency (perhaps perceived) to be more selective in hiring (meaning more people to learn from), and that there are a wide range of jobs and teams available that could be challenging. The size of the company is worrying (potential loss in flexibility, bureaucracy, whether my voice will be heard) but not a deal-breaker.

    As far as usefulness of the job descriptions, say, on careers.microsoft.com, I like that they are generally very specific about the responsibilities and technologies, why they need somebody and for what purpose, but I dislike that they tell me nothing more than two paragraphs about it and say nothing of team size, culture or other non-technical things. Microsoft is a large company and so, as far as I can tell from the outside, these things could vary widely from location to location, or even from team to team. It’s not even addressed, though, which I don’t find particularly comforting. That gives me a "we need a cog for our machine" feel, not a "we value you as well as your skills and want you here" feel.

    Thanks for asking, and I hope my long, rambling paragraphs will help in some way.

  33. Martin says:

    I never read job postings, but when someone calls and mentions a job, I ask: can I contribute something unique; can they contribute something unique; will my kids / the world / someone else I care about care about what I’m contributing?

    If I’m going to spend my entire working life making someone that’s very rich a bit richer, then I pass, because I’ve done that already.

    So I guess to get someone interested in your positions, I’d explain:

    what the person would need to do

    what the person could gain

    how they will "make a difference"

    ..and then forget about recruiters, because the signal/noise is too high.  Go to  professors for their students, conferences for their speakers, new projects in related spaces for their innovators.  But I’m sure you know all this…so you have to decide whether it’s something about the role / company that’s holding you back (I think a few of the earlier comments covered that area well), or just bad luck – finding people takes time and can be frustrating.  Don’t compromise, though, or you’ll have to live with that compromise for far too long.

  34. Ollie Riches says:

    ‘Tech vomit’ on CVs & job posts exists because HR departments (internal & external) don’t have the time (and skills) to shift through all the applicants to the required level, hence they try short-cutting the process.

    Why is this?

    I see it simply as the tech sector has grown so much in 25 years that the number of candidates is now becoming a hindrance.

    1) If the job post can identify where applicant should be (in their career) without mention implementation details and explain where they are going to be in the future then it would interest me.

    2) Chance to bug Eric about his opinions on LOTR and the ‘odd’ work question. Though it has to be said the thought of meetinginterview with you or your peers is a scary one.

  35. Konstantin says:

    Long list of requirements is Ok if company really needs it, as long as it is split into "mandatory" and "nice to have" skill lists.

    I do not like vague job descriptions. I need to see what I will be doing at this position. "Writing software" is not sufficient explanation.

    Your words about "developer tools team" are rather misleading. Usually, such teams make tools for internal purposes, or for very few highly trained people in a customer company. You are, on the other hand, make product for millions of customers. Those jobs have very different specifics.

    What else would be important to me? Gifted team and intelligible team lead. Don’t forget to mention: their team lead will be Eric Lippert!

  36. Greg says:

    I live in a small midest town & my family is pretty well rooted. Low crime rate, 10 min drive to work, etc. Job positions that I have seen prefer relocation vs remote.

  37. Brian says:

    What I look for…

    1) A position that allows me to constantly create or re-create something broken anew and re-factor freely. There is nothing worse than maintaining or converting code that is riddled with every known anti-pattern ever invented. I derive joy from this profession when I’m allowed to be creative and enjoy the fruits of my labor with positive (and negative) feedback ASAP.

    2) Being surrounded by mentors. Not just other employees who’ve been spinning code for N years longer, but social human beings that genuinely enjoy TEACHING other developers new tricks or giving constructive, mature criticism.

    3) The fostering of a healthy work-life balance. I’m not 22 anymore. I have a wife and kids. Work is a distant 2nd place to that. If a job posting looks like it was meant for someone willing to work 80 hours because of un-realistic deadlines, I’ll pass.

    Unfortunately, job postings rarely illustrate any of the above qualities. You have to hear about these jobs via friends, family or just get lucky…

    As for a developer tools position. If you could demonstrate in your job post what the dev would be allowed to create, how much they’d contribute, what they’d learn and emphasize the impact that their work would have on the community — I’m sure you would spark some interest. Perhaps even a homework assignment on a small piece of related work would be a good way to filter out the candidates. I’m surprised more places don’t do that. It’d be a great conversation piece in a follow-up interview.

  38. A. L. says:

    I am not a developer myself, but I work in IT. What I heard from devs about super brilliant teams like yours is this: "These guys have too many stars in the team already. It will take me years to prove that I worth anything and even longer to get into decision-making."

    It looks easier to get to a less famous team, but be able to drive design and make decisions.

  39. Andy White says:

    Why I am afraid of working at Microsoft

    1) I have been writing enterprise software for the last 10 years. I do not know what the O(n) is for algorithm x. I am extremely rusty on shifting bits or writing linked lists.

    2) I am dedicated to my job. I work 45 hours a week but do not want to spend all day writing, blogging or twittering about software. I want to spend time with my family and little one. I give my 110% during those 45 hours.

    3) Afraid of getting laid off or being "managed out" by MSFT managers (at least by the ones that are mentioned on Mini MSFT)

  40. Eric Burnett says:

    In general, to me the team I’ll be working with is more important than what exactly I’ll be working on (assuming it is at least a reasonably interesting project). I tend to read job postings first to decide if the problem sounds reasonably interesting (or for general job postings, decide if the company probably has interesting problems to work on). Beyond that, I try to get a feel for the company and the people I would get to work with there, so how stuffy/corporate the posting is likely has undue influence on my opinion. Other than that, I really don’t worry about the specifics too much.

    Related to your question (2), I can tell you why I chose to turn down an internship at Microsoft in the developer tools division – despite that being my first choice division to work in. The key reason was as a potential intern, after passing all the interviews all Microsoft could offer me was something within that division, but no specifics on project or team. The competing offer that I ended up going with, on the other hand, put me in touch with specific teams and let us chat, to make sure it would be a good fit. IIRC, Microsoft doesn’t hire for specific positions for the most part, but for a temporary internship finding the right team the first time is important, since you generally only get one try.

  41. F Karim says:

    (1) I would say autonomy, projects that require brushing up on new technologies/skills, and the ability to design/architect the overall solution in progressively complex projects are few things that I look in a potential opportunity.  I work in a core dev tools team in a large company (not Microsoft), and the best part of my job is the initial phases of a new project when I am faced with whole bunch of unknowns. I find that quite exciting.  

    (2) I guess best part of working for a dev team is that your customers themselves are developers. I guess this is  also a bad part, as your products do not see the light of the day as much as let’s say end-user tools like a browser or a cool app.

  42. configurator says:

    You might be interested in how my company attracts developers. They almost only look for recent graduates (they grab them right from school). They don’t care about experience. They also don’t care what you learned at school. They’d even consider a Psychology major who’s never programmed before. What they’re looking for is the people who can think, who can learn new technologies quickly, and who care about doing a good job. In my job interview, one of my tasks was to write code in a language I’ve never even seen before.

    That’s a risky approach to take, and I doubt it’ll work for your team (since you obviously need more experienced people), but it works very well for my company. And it attracts the best people because a job where you are required to spend some percentage of your time constantly learning new technologies sounds good; and it is good.

    That said, I wish I could have worked on your time. I know I’ve applied to it more than once. But even if I was accepted today, I wouldn’t leave my current job for it.

  43. Paul Batum says:

    Specifically addressing applying for a job with Microsoft:

    Similar to Andy White, I am afraid that I will fail a interview with Microsoft because my computer science fundamentals aren’t as strong as some, as I’ve been working in application development since I left university.

    As a result, I tell myself that I should study on data structures and algorithms before I apply. But its hard to do that when I’m already committed to supporting open source projects in my limited free time. That and I find it really difficult to resist playing with the latest framework or shiny new programming language. So the CS fundamentals study continually gets put off and I never feel ready to apply.

  44. Jonathan Clark says:

    I have no idea what the problem is. Working in developer division is pretty much my dream job. It’s my entirely self-serving hope that you’ll still have a shortage of talent by the time I’m finished my degree.

  45. Todd Wilder says:

    Ownership is what ambitious developers are looking for, so jobs that allow for ownership are important. Being a good collaborator is really important, but you cant test for that in an interview, you need a while to find out (If I owned a company everyone would start at 6 month contracts). Lastly, being good at what you do is very important. We made our candidates open visual studio and write code (normally a recursive method). Slow typists, people who didn’t know shortcuts were a definate NO. I admit these things are trade skills but if you claim to be a good developer you need these skills. ctrl-K ctrl-D!

  46. developer says:

    what different type of crap burgers you have to eat working in hostile environment. You make it happen and someone eat your lunch. I do not think anyone would want to work in that kind of environment. Employers are always look to minimize head counts.So someone headless boss get more bonus.

  47. Pavel Minaev says:

    @Diego F

    Your background sounds very similar to mine – I don’t eat algebra and spit out assembler, either (well, okay, I can do the latter on some basic level, given enough time…) – and I work at MS in DevDiv for slightly over 1 year now. Not in Eric’s team, mind you – I was originally aiming for VS editor team, and ultimately ended up in Shell – but there are plenty of interesting things to do on all levels and in all areas.

    Don’t make the mistake of underestimating yourself too much. I thought much like you did, until the day an MS recruiter contacted me and asked if I’d like to apply for one of the available positions. I wouldn’t say that the interviews and other things were easy, exactly, but they were less stressing then I expected them to be; and as for day-to-day work, I definitely do not feel "out of my level of experience", so to speak.

    So don’t let that fear hold you back. I’ve found one joke and one proverb in particular to be worth keeping in mind at all times:

    "What’s the difference between a good programmer and a bad one? A bad programmer, when asked if he is able to do a task completely new to him, will give a resounding ‘No’ as a reply. The good one, though, will say, ‘Yes, I can do that – I just don’t know how, yet’".

    and the shorter version of the above:

    "Whatever man has done, man may do."

  48. Lee says:

    My first reaction was, "Seriously? Microsoft is having a hard time attracting talent?"  But then I remembered, "Oh, yeah, we have that problem too."

    Here’s my theory:  I believe strong candidates aren’t actively looking for jobs right now, so they’re not seeing the job postings (which are probably written just fine).  I figure that most of the real problem solvers in an organization have it made, at least in the short term.  They’ve weathered a few layoffs, stayed gainfully employed, and generally feel appreciated at their jobs.  They haven’t had reason to keep their resumes terribly current.

    Your best bet, I think, is to rigorously recruit from traditionally low-tech companies (companies with more janitors than programmers… like insurance companies, for example) with an impressive, in-house-developed, high-tech product.  There is a better-than-average chance that enough of a cultural rift exists between the developers and management that they might be enticed by a recruiter.  Of course, you’ll have to convince those developers that they, in fact, do have what it takes to work somewhere better and get them to submit resumes.  You may even have to remind some candidates that they had not, in fact, sold their souls to their current employer.

    Also, I don’t think you should have to word smith a job posting to death.  Maybe I’m just a romantic, but you should be hiring people that are not only qualified, but are so blinded by their fervent pursuit of employment at Microsoft… in Redmond… in the buildings that look like plus signs, that the finer points of the job posting text are immaterial.

    If that all works out for you, please let me know so I can pass this on to our recruiters. :)

  49. Benjol says:

    1) How much of my soul does the company want? As others have already said, I have a family.

    I love coding; I hang out far too much on StackOverflow; I sneak as much new stuff into my day job as I can, but the companies which have a reputation for "work hard, play hard" are off limits for me. If your company is looking for disciples more than employees, then it’s thanks, but no thanks.

    For megacompanies, there are also some of the worries mentioned by Will (at 12:21 PM), which may be totally unfounded, as he said, but it plays into the equation anyway.

    And there is the "those guys are way too clever for me" effect. Half of your posts leave me on the starting blocks!

    All of this is slightly theoretical in my case, I’m not about to move from the other side of the planet…

    On the plus side, I think this blog helps to demystify what you guys do, and give a human face to your little part of the behemoth.

    "You too can work with the famous Eric Lippert!" is a pretty good tagline ;)

  50. Mehdi Asgari says:

    Have a look at

    "Smart and Gets Things Done " by Joel Spolsky

    It is useful for both employees and employers.

  51. Pavel Minaev says:

    > "You too can work with the famous Eric Lippert!" is a pretty good tagline ;)

    That’s actually a mighty good point, and Eric is also in a very fine company there – Anders, for one, but then there’s also Neal Gafter (of http://javac.info fame).

  52. David Clegg says:

    "Microsoft has two tracks for advancing as a developer: technical, and managerial. I am firmly in the technical track, so I’ll never have reports"

    I’d put that in flashing neon lights. I have absolutely no interest in a managerial role, so knowing there was plenty of room for career advancement without this would be an excellent selling point for me (and I suspect many other developers too)

  53. Nigel Rheam says:

    Current trends are moving towards the phone interview and early rejection – so maybe you should not be too surprised that many of your candidates ‘do not make it past phone interview’ (that is the purpose of the filter, is it not?)

    Having said that, maybe this is not a problem of you the employer and the advert wording, and as much one of psychology of the potential applicant. An analogy here is the fabled cute girl (Microsoft) with the ugly guy (the poor candidate). [The poor candidate is the only one who was unafraid to ask]. You can see this in the way some of the comments have expressed concern that in a company like yours they would be baffled and overwhelmed. I too feel that way and yet I also know that this very act of self-introspection (and a little fear) is what drives many such people to work hard to find bugs, improve their code, and themselves.

  54. ShuggyCoUk says:

    We are going through a program at the moment to try to do something similar as we have less than 10% pass rate on our test (which should not be hard for anyone with a decent CS degree, though many with them fail it)

    what would en courage me from an ad is the oppurtunity. Is the team fun, smart, working on things that are high value and interesting.

    What would encourage me specifically about MS would be tricky. A key one would be the people involved (I think the blogging push from within has been highly effective at this). In terms of dev div the potential for ‘meta’ activity, ie to break down what I and others do and work on improving things that I use would be quite compelling.

    I would say though that based on my experience you will still have trouble getting good people because any one good enough for you is likely to be good enough to work in finance (in IT) and so if they have any sort of focus on remuneration you’re going to lose out.

  55. Joe says:

    Most job ads I see aren’t much more than a (wide) list of required buzzwords. Some of them have a marketing blurb about the company, and rare ones have a blurb about the team or project.

    NONE of them tell me EXACTLY what the job is.

    Given the above, there’s usually nothing to differentiate one job advert from another, other than how comfortable one is with the list of buzzwords. I really wish adverts would ALWAYS state the salary range, but few of them ever do, and without this there’s just nothing that jumps out at me.

    If a company isn’t open and honest about the salary range up front, I’ll just never bother applying. I don’t want to waste my time going to an interview only to find that the salary is half of what I need.

  56. Karn says:

    As for me, two main factors are a) team/company b) product

    I never accept a job of creating infininite winforms applications in small noname company. Probably i go in a small noname company to create a new ORM toolkit that’s going to kill the market. Probably i go in Microsoft to create infininite winforms applications (less probability:)) and it should be a work of dream to develop entity framework in MS for example..

  57. Mark Knell says:

    A job posting is a sales pitch, not a pre-flight checklist.  It should have a certain amount of personality, if not outright brio.  I worry about any company that doesn’t seem to realize that.  This includes most companies.

    If it isn’t brief, it’s probably written by someone that hasn’t decided (or, worse, hasn’t realized that they haven’t decided) what they want.

    If it isn’t open-ended, it’s probably written by someone who’s uncomfortable with the process of hiring and is therefore over-compensating with laundry lists.  They’ve already got one foot out the door of the interview before it starts; they’d much rather this be over with.  They’re trying to solve it a priori.

    If the posting isn’t enthusiastic, they aren’t seeing it as an experient, an adventure, a discovery; this suggests something sad about their overall commitment to innovation and their tolerance for risk.  Probably also says something about how pleased they are with their hiring efforts in the past, i.e., they don’t much like the people they already work with.

    Overall, if we’re talking about what actually sets a job posting apart–the stuff beyond what you’d expect and minimally require, like technical competence and a business plan–I look for postings that show self-awareness, humility, a sense of purpose, and a bit of mischief.  Not a *lot* of mischief, though.  Basically, all of these traits are are proxies for discipline in the best sense of the word.  

  58. Filini says:

    Green Flags:

    - Prerequisite in one or two technologies I know fairly well. I’ve been working on a small set of .NET technologies (ASP.NET web sites and web services, WinForms) and Web languages (HTML/Javascript) for 7 years. I am most of all a UI developer/designer, and I am too honest to sell myself as an "expert" in any other area (I am always willing to grasp new technologies, but so far I’ve never seen a company willing to hire a developer with 10 years experience just to make him work on something he never saw)

    - Good Pay. I work to eat… and I eat a lot :)

    Red Flags:

    - Unclear description of the Job. Blurry infos, or too many buzzwords thrown in the Job Description, give me the idea that they don’t know exactly what my role will be, that I’ll be just a filler.

  59. Hi Eric,

    I’d look for anything with karate, ninja or rockstar in it. :)

  60. Chris Loggins says:

    (1) I look for the basics (company name, location, technical requirements), so I can research the position. The "feel" of the posting is important: if it’s too stuffy, I will avoid it. If they stress years in service or a plethora of certifications, I shy away.

    (2) The most attractive part would be the challenge. Coders can be a very picky lot when it comes to the tools they use. It would be fun to work against a tough audience.

  61. HealthCareDev says:

    Why is it questions like this get so much response, even from those of us who haven’t been in the job market for awhile? ;)

    As it happens, I’ve been hiring myself as our group has been growing at a rapid pace. I agree with the idea that the technology requirements be tightly focused on what the candidate is actually expected to know coming into the position. By the same token, as a reviewer of resumes I always look skeptically on a technology stew. Focus your resume on what you know best.

    Now here’s my perspective on the things I’d look for in a good candidate:

    1. An ability to solve problems. We don’t have "puzzlers", but use basic programming questions on our tech test.

    2. A thirst for learning and self-motivation.

    3. An ability to get along with other people. In some work cultures, that isn’t an issue, but ours is extremely team-oriented.

    4. Integrity. Our interview questions try to draw out a candidate on experiences that had both good and bad outcomes. A red flag goes up for me if a candidate is unable to give a good example of a project that didn’t go well for him/her. They aren’t being honest.

    And here is the top question from a candidate that raises a red flag for me:

    1. What is your work from home policy?

    As a candidate, here’s what I would look for in a company. And I’d either looks for clues of this in their posting or draw them out on this during the interview.

    1. A company that is interested in telling me about what they do. I had one interview several years ago where the interview started immediately with technical questions. Needless to say the interview went poorly for both parties. I concluded right then and there that they were either too stupid or too arrogant to sell me on them. Fail.

    Another example is an interview where I arrived and the interviewer had clearly not even looked at my resume before I arrived (even though we had a scheduled appointment). He also yawned a minute into our interview. I thought, "WTF, dude? What am I doing here?" Again, fail.

    2. That they are committed to investing in you and your growth. Are you a hired hand or are you going to participate in the growth of this company? In my current situation, this is definitely a negative. I just sat in on a manager’s meeting where our top manager extolled all the training opportunities the company offered. Guess what? All those "training opportunities" are focused on management. I have been with this company for four years and the technical training opportunities have been minimal at best – stuff like, Introduction to SQL Server. And yes, this is something I complain about regularly – to no effect.

    3. Work that makes a difference. This is a value call, of course. But you have to believe the work you are doing is good and inching our evolution along in a positive way. Does the job posting reflect this?

    4. Work that is challenging. One of the key attractions of software development is that it never gets boring, that are always new problems to solve. If you don’t see the potential for work that engages your curiosity and desire to learn and explore, then I would think twice about taking the job or inquiring about the job posting.

  62. HealthCareDev says:

    Oh, yeah, and ditto the comment that MS has a big leg up on most companies given the people who already work there and are well known to the developer community. Who worth his salt wouldn’t want to work with Lippert, Hanselman, Guthrie, Nick Allen, Kim Cameron, and so on?  ;)

    Seriously.

  63. jsrfc58 says:

    1) As others have mentioned, I avoid the openings that have an endless string of acronyms in their list of requirements or the ones that go to other extreme and are vague about their needs. Also, the thought of having to go through multiple gatekeepers before speaking to a tech person gets tiring sometimes…especially if there is a large pool of candidates applying. Years ago, I remember talking to a temp agency rep who said that whenever he posted a tech opening online, his office would get flooded with 200-300 resumes within two days. Those seem like awfully long odds to me.

    What would be encouraging is to see an opening that is willing to let the candidate continually grow/learn. Stagnation will cause me to disengage rather quickly.

    2) I applied to Microsoft years ago, but never heard back. I think it would be great to work on the developer tools team…although I think I have a strike against me because although I have a degree, it is not in Computer Science. I’m also not all that great at articulating my abilities in an interview situation or on my resume, and when it comes to programming, I’m heavily self-taught. So how do you portray that in a positive light and convince a company to take a chance on you in this economy? Anyway, I plan on shipping a 3-D game/game engine sometime within the next year or two, along with related tools. So either way…whether here or there…I’ll ship software.

    And, as someone else mentioned, it’s important to show the "value" of the role in the job description. I mean, if you are going to be working on a piece of software that no one is really using…what’s the point?

  64. Bart says:

    1. If it is sufficently technical with little commerical aspects, especially with references to niche fields or working with people that write books/blogs I’m following.

    2. Moving to the US is the unattractive side of the equation, however I don’t see that many options in Europe for these kind of projects.

  65. Diego F says:

    I didn’t quite answer the question about what I find attractive.

    What really attracts me in getting a job at MSFT DevDiv is the amount of high-profile professionals. Microsoft employs some of the best software engineers on the market, and having the chance to work with some of them and learn from them is something that would be invaluable for my career.

    My current role in our society is to be sure that the latest technologies are available for the average computer user in the form of new and exciting products.

    Working at MSFT would mean going deeper on this, and be part of the process that creates the latest technology.

    That’s something that attracts me.

  66. DaveV says:

    I am a developer and have been one for the last 8 years. I love what I do, I get rave reviews all the time about my work. But I have never applied to Microsoft after college because the job descriptions scare me off.I always have this feeling that a large organization has most of its practices already defined. I have found that I have my own unique way of understanding things, my own way of doing things. The descriptions dont tell me how creative I can be.

    Second, in college, when Microsoft came to my campus,  only people with the highest GPAs even got through to an interview. I totally disagree with that because GPA dont indicate how good a person will be in the workplace.

    What really attracts me is the technology – that I can get to know more about how things I work with actually work themselves.

  67. Dave Lacerte says:

    Hi,

    As a developer I personally always sought to have the opportunity to spend time developing tools for developers, and not have to justify it in terms of line-of-business.  In 2002 I built an ORM that we called Object Space (named after a hanging project from MS ;-)), and it was pretty powerful, generating IL from the mapping file, loading complex graphs in O(n) and keeping track of entities for insert-update-delete operations.  It’s still in use today in a large financial solution sold in Montreal.

    Since then, I’ve always been frustrated to not have the opportunity to work on tools like that.  Each time we select a tool for an LOB project, I feel like I should have built it myself.

    The kind of offerings you propose are inherently attractive for someone like me, and I’m not the only one.  Even though I have my own company today, it’s a partnership and we still have constraints in terms of what we should or shouldn’t develop.  Still today, I keep earing "why would you work on something like that, there’s something similar that already does that".  Each time I read you blog, I can’t help feeling how great it must be to work on the C# compiler and language specifications, not to mention how great it would be to work on stuff like EF, WCF, WPF, or whatever tool in use today or in the future.

    If I was you, I would tend to leverage the simple idea of working on tools that will be used by hundreds or thousands of developers worldwide.  I think that designing tools used by developers is like building music instruments.  It’s a completely unique world where you truly have to love the music for itself.  When designing tools, you have to love code architecture for what it is : a masterpiece of the human mind.  When you design things that will be used by other programmers for their duty, I frankly believe that you’re doing something very special that’s really different from the common developer’s job.

    Focus on finding people that find beauty in a good code architecture, that can see an architecture as a piece of art, and you’ll automatically attract them and get the perfect developer team.

  68. Isaac says:

    Well, I think you can divide the first question into two sub-parts. Firstly, I look at the culture for people in the team I would be in / the role. I’m talking about things such as: enthusiasm in the job – I don’t want to be the only person pushing to improve. Being goal-focused. Willing to listen as well freedom to speak up and to be heard. Understanding that saying "i don’t know" is not a sign of weakness, and being keen to learn and share new skills.

    Secondly, from a technical point of view, I guess people like to work on newer technologies – at least, I do – but I suppose more important than that is that we would not continue to do things the same way as we have done in the past simply because "that’s the way we’ve always done it" etc.

    I’ve spent the last few minutes thinking about the second question you’ve posed and haven’t come up with a cogent response one way or the other so will get back to you with that :-)

  69. Dave Lacerte says:

    By the way, I’d like to work with you guys, haha!

  70. BBlake says:

    One immediate negative is job postings that don’t know what they’re talking about.  For instance, the other day I saw a posting for a position requiring 10 years of .NET programming experience.  If they know nothing about the technologies they’re using, that’s not where I want to be.  

    Another immediate rejecting factor is requiring too much for too little.  Another posting I saw was listing for a Level I (entry level) developer position requesting 8-10 years experience.  If I’ve been around 10 years, I am not entry level nor am I willing to work for entry level pay.

    Beyond that the first thing I look at is the location.  I will not consider any positions in areas I would not want to live.  For instance, being in central Ohio, i won’t consider positions in Cincinnatti or Cleveland, because I would not want to live in or near either town.  

    After that I would echo many of the things others have said regarding posts that don’t reveal the company name, aren’t clear on what the position is for, or the endless list of "must be familiar with" technologies.  

  71. Ed Downs says:

    As with most of the posters, I hate seeing a list of qualifications that maybe 10 people in the world actual have.  Most people will tell you, "They aren’t really looking for all of that, just apply" and perhaps they are right.  But just seeing that list often turns me off.

    The thing that would most attract me to a position is the opportunity to work with some very talented developers.  I currently have 5 years of experience, but I still have a lot learning to do to become a great developer.  To even be tempted to apply for a position, I would have to feel that it would be an opportunity to advance my skill set and get some new perspective on problem solving.

    As for working at Microsoft, the commute is too long.  =D  Why doesn’t Microsoft have offices in Tacoma?  UW Tacoma is turning out quite a few new developers these days.

  72. arnshea says:

    The ads that tend to stand out to me are those that describe the interesting problems being solved by the team.  For one it gets to the heart of the matter (do my interests align with theirs?).  For another, it reveals a little about the technical background and approach of someone in the hiring path (assuming it wasn’t ghost written).

    Sometimes it’s also nice to see a little "formal jargon" – not buzzword soup but enough to let you know that someone, somewhere has done a little (hopefully a lot) background reading on the subject.

  73. RagnaroknRoll says:

    As BBlake said, entry level positions should be… entry level.

    Requiring 5 years of programming experience in an entry level position is just plain stupid.  Someone looking to get into programming won’t have that.  Someone that has that will want actual pay.

    A description entailing what you would actually be doing would be nice too.

    My wife saw a good description for a job and looked into it.  The description sounded like stuff she would love to do in server management, the interview described the job as effectively tech support.  They also weren’t going to pay for server management but for tech support.  This was a major waste of time for both parties as she wasn’t taking a 10K+ pay cut to do something she hates.

    That’s another thing, some companies say entry level, will pay entry level and the requirements are for folks that are anything but entry level.  Having folsk that would qualify for senior positions in most environments be the only ones able to apply for this means fewer applications and some of those are fudging their qualifications.

    Speaking from someone that does tech support and QA more I can say these are universal.

    No one likes seeing a ton of requirements that have nothing to do with the job or even not knowing what the job actually does.  No one likes seeing only overqualified people show up to interviews who then see the pay and politely explain that there is no point continuing because their pay requirements are well above what the company was willing to pay.  

    Describe the actual job, give a fairly accurate ballpark for pay and make sure the requirements are on par with what you would expect someone to be have at that level.

  74. Zac says:

    1) A few people mentioned this: getting a sense that I can personally make a meaningful difference on the team, within a year of starting the job, is very important.  This is the case whether it’s a development position or not.  However, I’m not sure how to write a job description for an arbitrary position in such a way as to make that impression more likely.

    2) I think a "developer tools team" is one of those things where either you’re already keenly interested or you’re not really interested at all.

  75. Pavel Minaev [MSFT] says:

    > I think it would be great to work on the developer tools team…although I think I have a strike against me because although I have a degree, it is not in Computer Science. I’m also not all that great at articulating my abilities in an interview situation or on my resume, and when it comes to programming, I’m heavily self-taught.

    Again, I’m not sure what the requirements of Eric’s team in particular are on this, but speaking more broadly, CS degree is not a must to work in DevDiv in general. I do not have any degree at all, CS or otherwise – purely self-taught. It was not a problem during the hiring interview (IIRC the only time this was even raised was a single question by HR representative during the personal interview; it was not mentioned at all during the technical interview), nor did I ever see any sort of "looking down" upon from coworkers who have degrees in the field towards the likes of myself. I also know a few other people here with degrees in entirely unrelated fields or none at all, and I have never heard them mention it as a cause of problems for career advancement within MS.

  76. I can echo Pavel’s experence…when I interviewed (And was hired) by Microsoft Consulting Services [MCS], the only mention of my degree status [i.e. NONE] was on one form. It was not a topic that was even mentioned during the Tech Interviews [grueling…started at 09:00 and ended about 21:00…with amost a dozen distinct sub-interviews, some highly technical, others focused on "soft skills" needed to be a successful cusomer facing consultant..]

  77. Fred D'Angelo says:

    The most important aspect of a job for me is the opportunities it provides for learning new skills and professional development. I do not want to become stuck in a situation where five years of experience really means one of year experience repeated five times.

    I want the culture of the work environment to be collaborative, not cutthroat.

    Schedule flexibility is important, too. I don’t mind putting in the time needed to get the job done, but I prefer to control when that time is worked, allowing, of course, for metings with theteam and clients.

    I do enjoy being paid well, as mercenary as that may sound.

    Like many others, I detest postings that require experience with every technology that has been invented since 1969 and ridiculous requirements as in: "You built apps that access Oracle using middleware, but we want someone hwo access SQLServer using middleware."

  78. jsrfc58 says:

    Pavel/David…that’s reassuring to hear. Maybe it depends on the company/HR department.

    As far the job descriptions themselves…maybe that depends on who is actually writing them.

    I suppose an equivalent ridiculous requirement list for an entry level accounting person would read something like: "must have 10 years experience processing debits/credits, 5-7 years experience with Peachtree, Quicken, Quickbooks, dBase, Paradox, Access, Excel, Word, AppleWorks, iWorks, Lotus 1-2-3. Advanced accounts receivable experience, accounts payable experience, billing experience, payroll skills. Must type 75 wpm, have 10-key experience, be able to answer phones, and be able to lift 50+ lbs. Must know how to use e-mail and a copier."*

    Someday I’d like to see what HR departments actually use for queries when they look for resumes to try and fill positions like this.

    * I do know actually know of one controller who cleaned his own company’s toilets in order to save money. I’m not sure if he ever lists that on his resume, though. Unfortunately, the company eventually went bankrupt, but I think the two subjects are unrelated.

  79. Aaron G says:

    One of the things that really turns me OFF about any posting is a disproportionate emphasis on methodologies rather than actual talent.  I’m not sure I’d want to work with some of the people here commenting that the company absolutely MUST use TDD or some other Agile spew.  If the most interesting thing you can mention about yourself or your company is your adherence to TDD, MDD, DDD, ADD, QED, TLA, or whatever else, then you’re probably boring as hell.

    Microsoft has recently picked up a bit of rep for being management- and process-heavy.  I think that a lot of developers (myself included) want to know that they’ll have the freedom to get real meaningful work done and occasionally try new things, rather than follow a daily checklist.

    Some of the other things I would notice:

    • Personality.  Does it sound like a fun place to work, or is it going to be status reports and death marches?

    • Clarity.  JoS mocked a Microsoft posting a while back that was full of jargon and management-speak.  If I can’t understand what’s being advertised, I’m definitely not going to apply (not that I would anyway, but that’s only because I’m violently unqualified to work on a compiler).

    • Honesty.  Some recruiters just try too hard to make the job sound more exciting than it is and the pretense is painfully obvious.  I’m applying for programmer, not stunt pilot; put away the shovel.

    • Practicality.  This one’s specific to the "developer tools" bit, and I know this is going to be contentious, but I don’t think I’d want to work on projects like DSL or WWF that end up getting used by about seven people.  Compare to working on the Visual Studio or WPF teams where millions of people care about what you’re doing.

    Take this all with a grain of salt, as I’m one of those types that tends to stay where I am, I don’t spend a huge amount of time looking at job postings.  Then again, maybe that’s the point.

  80. SteveJ says:

    I resigned from DevDiv in 2006; I worked on the test team of a cool project with amazing people. When I started in 2000 I was excited about learning new things, doing things that made a difference. I was fresh out of college and wanted to use everything I had learned. It didn’t happen. 6 years later I found myself working for a BOSS who said "I need you doing THIS job… your career isn’t important to me…” I left that team very disillusioned and have been contracting at Microsoft since that time.  

    I’m happy to now say that my first BOSS was a fluke. Since returning to Microsoft I have worked for very gifted LEADS. They are truly leaders of their teams. They have been very knowledgeable and maintain an open door policy towards their reports regardless of whether you are FTE or CSG. I ask nothing more than to be challenged every day and every project has something new to learn. Sometimes this means learning a new language or a new tool, sometimes I have to make the most of a tedious job.

    What do I look for is a job? A job that makes me want to drive 60+ miles every day to do things that are mentally rewarding and occasionally get acknowledged for my work. Not much, just want to know that what I do helps the team and the project. My current position isn’t exactly that kind of position but when I accepted the position it was with the understanding that I could use any down time to create tools to make the process better.  I look at every position as a way to build on my skills.

  81. pete.d says:

    Wow. Have never seen this quantity of comments from so many different people here. Must’ve struck a nerve (besides my own, that is).  :)

    Anyway, it’s such an open-ended question. However, having been involved in looking for work over the last year or so, some things have stood out.

    As far as reading job listings go: a big warning flag is a job description that insists some large amount of very specific job experience is required. I see this in a lot of contexts, but most notably the concurrency group at Microsoft is a significant, recent example. The fact is, what an employer really should be looking for is a smart person. Dumb people can have lots of industry experience, and it doesn’t necessarily mean a thing. On the other hand, if the job’s really compelling, even if it takes 3-6 months for a new hire to start being really productive, that’s a tiny fraction of the amount of time that smart person will spend working in the group, contributing smart-person stuff. And of course, if the group spends 3-6 months waiting for a person with that specific experience to show up, it’s a wash anyway.

    Or look at another way: if the group thinks so poorly of the level of interest the work they have to offer can generate, that they expect new hires to be gone before they’ve recouped the ramp-up time investment, that group can’t really afford to be that picky anyway.

    Fact is, even if I have the experience they’re looking for, the last thing I want is to be working in a group where they would rather start with a smart person and bring them up to speed, than wait some indeterminate time for a person who has "the right experience" but who may or may not really be the best contributor to the group. Not only does that tell me that the group has their priorities mixed up, it’s the kind of the thing that can significantly affect me as an employee in the group, as the team flounders waiting to fill their headcount.

    As far as what would make a job attractive/unattractive to me, there are lots of things. But, having personal experience as to how Microsoft works, here are some points that come to mind:

     • Signal-to-noise ratio. Being made to waste time in meetings, or dealing with bureaucratic overhead, rather than being able to spend my time coding, designing, mentoring, etc. – all the things that actually contribute _directly_ to an end goal – is annoying.

     • Work environment. As an employee, knowing that the company is doing everything it can to make my experience more pleasurable, so that I really enjoy my job, is a big bonus. Unfortunately, I think Microsoft fails at this more often than it succeeds. It has retained the "free drinks" policy from long ago, but so much of the rest of the work environment is defined by belt-tightening and failure to manage the growth of the company, that there are plenty of sources of frustration.

     • Review process/effective management. Coming up with a good review process is difficult, no doubt. But one where the outcome of the material aspects of the review is so heavily dependent on the quality or lack thereof of one’s manager and that manager’s ability to comprehend the value a report adds to a team, never mind represent their reports during the review process, is just awful. And act as though time spent by an employee on the review process when they know in advance that there’s really nothing about their end of the process that affects the outcome of that cycle is downright demoralizing.

    Also, having managers that understand that they have an obligation to their reports as much as their reports have an obligation to them. I have seen far too many managers who use their position to emphasize the authority they have over their reports, often adding useless workload to the employees, rather than doing true managerial things such as encouraging their team, praising them when they accomplish good things, and being proactive about filtering all the bureaucratic B.S., protecting their employees.

     • Work/life balance. I remember almost two decades ago, Microsoft making a big deal out of how work and not-work needed to be in balance. And yet, nothing ever changed then, and still today I see employees who try to stick to a traditional 40 hour work week simply cannot make any progress in an environment with people who are willing to sacrifice their own personal lives in pursuit of promotion. But, employees will be healthier in a variety of ways, and that health will show in the health of the team, if they are encouraged to really balance their lives. Too often, employees who make that balance a priority have to resign themselves to stagnation in their work status, even when their greater wisdom and broad-mindedness could have significantly beneficial impacts on the work group.

     • Smart people! It’s hard to write about this without coming across as arrogant, but the fact is, I want to work in a group where the people are at least as smart as me, if not smarter. There’s nothing more frustrating than trying to have a conversation with someone who just can’t keep up, nor than working with someone who doesn’t write good code. And there’s nothing more invigorating than working with people who are constantly challenging oneself to be better, be smarter, and think creatively. When I started at Microsoft a couple of decades ago, smart people were a given. When I finally quit, it was in no small part due to the fact that I was finding it very difficult to surround myself with smart people.

    Note that NONE of the above has anything to do with a developer tools team in particular. I find programming fascinating in all forms. I admit, developer tools carries a bit more fascination than perhaps other teams, because it’s programming about programming (double the fun :) ), but what really is important to me is working on something that matters, with people who know it matters, who are smart enough to do really high quality work and who provide that challenging environment to ensure I stay on my toes and do the best I can.

    If a team can continually provide that positive work environment and foster growth in all their employees, they can easily retain smart people, which of course leads to better retention of smart people.  If they can’t, then the question of whether a person is really all that interested in the specific work assignment – however important that question may be – is the least of their worries.

  82. Jason says:

    I would love to work for Microsoft for several reasons, primarily being the learning experience and passion for the technologies they build. (I develop with Microsoft tools, use windows, zune, xbox etc. You lost me with windows mobile but thats another thread…)

    Anyway I doubt I would apply for a Microsoft position for a couple of reasons.

    1) As a couple of people have mentioned I’m now an enterprise business app developer and have lost (or never had in the first place) the deep computer science knowledge that seems necessary to be successful at MS.  I read blogs like Eric’s and books to try and keep up, but honestly there is so much for me to learn to keep up with evolving .NET technology I don’t have time to backtrack and become an expert on algorithm efficiency. In my mind (and i’m sure this isn’t true but I’m also sure this is the the impression many people have)  if you weren’t top 10 in your class at MIT or spent every saturday night coding in your parents basement since you were 5, you’re going to make an ass of yourself in the interview.

    2) Microsoft is a very mature and large company. This is definitely not the type of place I would consider rapid career advancement to be very common, and there aren’t going to be any dramatic stock increases anytime soon. So…great for you guys that got in on the ground floor (I hear bill gates is doing alright) but not so great for those of us looking for rapid advancement or to reap the benefits of growing with a newer company.

    3) Doing enterprise development is (usually) pretty interesting and diverse regardless of what level you are at. I sometimes get the feeling if I got in on the ground floor at Microsoft, I’d be working on a button in visual studio for 3 years. (Probably also not true but the internet has done an excellent job perpetuating a stereotype of MS over the years.)

  83. asdibutt says:

    Any of the job posting, which , by the list of skills mentioned seem to be fit for only Jon skeet or Eric Lipert,  I am deffinately not going to wast time over. And this is the case with every 2/3 out there. These sort of jobs posts actually attract those who take both, skills list and the employer non seriously.

  84. Denis says:

    A major turn-off for me is a feeling that the author(s) of a job ad themselves don’t know what on Earth they want from a candidate. As an example, I once answered an ad that insisted on a potential candidate having "hands-on experience and understanding of 2-D graphics". When I asked them to elaborate a little (at the end of the day, all computer graphic is 2-D, because all commercially available screens are still mostly 2-D), they simply said, thank you very much, see you next time.

    Another thing is a job that obviously boils down to being a maintenance drone, but the demands taking wing into something like the knowledge of UML, design patterns, OOP/OOD, SOA, Software Architecture, fluency in two or three languages, nuclear physics, interstellar navigation, and so on. That is a surest sign that the boss simply wants to boost his/her self-esteem by DOMINATING the people who may, God forbid, otherwise think they are smarter than he/she (like, "you’re so smart, are you," and so on).

    And finally, the need to relocate from where I am now (Tropical Northern Australia) to a place like Redmond, WA, with all the cold, snow, rat race, traffic jams, and the rest of it – no way, not for any money (not that I expect to be invited, obviously) :-)

  85. Andrei Paun says:

    I look for three things:

    * The name of the organization. Sure working for Microsoft is great but many use this as a starting point for launching their career. I don’t think many of the developers out there are looking for a long running career in a massive organization.

    * A short description of the responsabilities.

    * A short description of the benefits.

  86. Marc says:

    Quibble: How do you know that the people reading this (and answering here) are the ones you are trying to attract? If you don’t know, this will just get you from one unknown to the next.

    I guess MS will allways have a quite high number of people that are filtered on the initial screen, being a very known company, having good compensations and strong market position. So you just do attract a lot of people even if they do not match your criteria.

    So be open on what you really are looking for. Most of the smart people you need will not be intimidated by the requirements that you have. Additionally try to cut away the "usual bullshit" in job postings (e.g. be jounger than 25 have 15 years of experiance and at least 2 different degrees and are willing to work for a pittance ;-)

  87. Marc says:

    Quibble: How do you know that the people reading this (and answering here) are the ones you are trying to attract? If you don’t know, this will just get you from one unknown to the next.

    I guess MS will allways have a quite high number of people that are filtered on the initial screen, being a very known company, having good compensations and strong market position. So you just do attract a lot of people even if they do not match your criteria.

    So be open on what you really are looking for. Most of the smart people you need will not be intimidated by the requirements that you have. Additionally try to cut away the "usual bullshit" in job postings (e.g. be jounger than 25 have 15 years of experiance and at least 2 different degrees and are willing to work for a pittance ;-)

  88. Marc says:

    Sorry for the double post, but the server gave out an error "ooops"

  89. Chris B says:

    Considering the topic, I thought this was interesting: http://money.cnn.com/magazines/fortune/mostadmired/2010/full_list/

    According to (someone at) money.cnn.com, Apple, Google, and Amazon are all "more admired" than MS.

  90. Things I would look for when considering an opportunity to work on a developer tools team:

    * High project visibility and impact, e.g., working on a compiler or IDE that would be used by thousands or millions of developers would be a huge thrill.  Working on a GUI for editing some XML format used by a few random customers?  Could be interesting, but most likely less thrilling.

    * Interesting problems on which to work.  I’m sure "Interesting" has lots of definitions, but perhaps "problems that have been solved a small number of times before, and in varied circumstances" comes to mind.  Of course problems that have never been solved before could be interesting, but also could not (they may be unsolved because they are not useful or interesting to solve).  Or perhaps "variations on hard problems with some existing clues for solutions"…

    * Whether the team’s environment has a technical focus, e.g., working on tools to support a non-tech business’ software development department is not as desirable as working at a technology company, where the business drivers are directly related to one’s work.

    * Technical virtuosity of the team: working with great people who can raise the bar for almost anyone and who can do great work.  There is something to be said for being a big fish in a small pond, but it gets old quickly.  I’d much rather be the small fish in the big pond (with plans to become the big fish in the big pond).

    * Openness of the organization: It’s cliche, but software engineers prefer freedom, egalitarianism and flat structures, right?  They want to be trusted, and the best are eager to show that they can be trusted to be excellent decision makers and problem solvers, and be team players.

    * Regarding Microsoft: For some reason, the one thing I can’t get past is using backslashes in filesystem paths.  I’ve been wanting to get this off my chest for a long time.  I often hit "enter" when reaching for the backslash key, sometimes with frustrating results.  I know the Windows API supports forward slashes, but most everything above the API level seems to be written with backslashes in mind.  Do we really have Tim Patterson to thank for this?

  91. I thought about it on my way home and I feel bad about criticizing MS for backslashes.  It’s totally unrelated to the topic at hand.  I apologize.  C# is a great language BTW.  Thank you for making my daily work over the past eighteen months significantly more enjoyable.

  92. Matt Brooks says:

    My (overly verbose) two bits:

    1)  Things I care about:  sense of developer autonomy (can I get things done without a micromanager or political/bureaucratic grief?), talented peers (I want to learn from those around me, not just take orders from those above me),  flexibility of hours, and most of all the ability to learn and solve new problems, not just maintain someone’s codebase.   Most developers like to create more than they like to fix (in terms of sense of accomplishment).   Back when I was looking, job postings that emphasized these things in some way went to the top of my list, regardless of the company’s actual specialization, because I knew they would be potentially challenging and fun places for me to work.  

    On the other hand. . . like everyone else has said, "tech vomit" postings are a turn off.  It’s usually clear if HR or a tech person wrote the post, and whether  they know what they’re looking for.  Lack of problem definition also doesn’t help either.   If I can’t remotely answer the question "Why does this company need me?" then chances are they really don’t.  I also avoid posts with the following blurbs: "heads-down coding", "hit the ground running", or anything else that conveys urgency or immediacy, especially if they want someone totally immersed in a single tech.   It also suggests they are behind project schedule and need coding grunts who’ve yet to burn out (cf. Brooks’ law about manpower and late projects).  

    2)  Writing dev tools would be akin to a dream job for me, but I feel like I have a lot to learn before I’m there.  I am currently designing a framework/API for my current employer, and it’s a humbling experience sometimes.   I love coding in general but I definitely enjoy creating things that make a developer’s life easier; usually you can make a good product when you know your customers well, and in this case your customers are other developers.   I feel their pain more so than business customers and tend to be more excited about solving their problems.    It’s a unique set of challenges for sure, so I guess if I were at MS looking for this type of developer, I would probably create a posting that emphasizes those things.  I would also emphasize the kind of talent developers would have the opportunity to work with and learn from.  I mean, I read this blog (and others) frequently, so I can’t fathom how much I’d learn if I sat in the same room as Eric and others for 8 hours a day or more.   My brain would collapse from overload.  

  93. Steve says:

    My pet peeve about job ads (and I mean mainly internal ones here) are ads that say "Wanted rockstar developer" or "we only hire the very best", "only very strong applicants need apply" blah blah. I’m looking at a dev div job (say), I know you have high standards, enough with the ego trip in the job spec. It says more about the author fo the spec (arrogant, egotistical and lacking common sense) than it does about the role.

    A good job ad tells me about the team, the size, any major processes they use, the near and mid term goals, something about the mission of the group and who the mangers are. It should tell me any must have requirements too. You can leave out the "nice to have" items, you know those and can apply them when you triage applicants, as an applicant I will ignore it if I don’t have it, and if I do have it I will be too busy targetting my resume at the "must have skills" to go in to any detail on it. It should also indicate what you expect of the applicant once in the role. If you can’t be 100% clear about want you want I’m going to assume you are a second rate manager and not bother applying.

  94. I apologise in advance for the unhelpful comment:

    @Pbh I’m laughing so hard at

    "its kind of like working on quantum field theory vs black holes in theoretical physics, the latter having more visibility"