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

  • Anonymous
    February 28, 2010
    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

  • Anonymous
    February 28, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    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

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    @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.

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    (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
  • Anonymous
    March 01, 2010
    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.
  • Anonymous
    March 01, 2010
    The comment has been removed
  • Anonymous
    March 01, 2010
    Background: I'm new (5 years dev experience) to the industry but I've programmed for over 15 years.

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?

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    BTW, I'm 23. Forgot to mention that.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    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.  

  • Anonymous
    March 01, 2010
    @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.

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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!

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    (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.

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    @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."

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010

  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 ;)
  • Anonymous
    March 01, 2010
    Have a look at "Smart and Gets Things Done " by Joel Spolsky It is useful for both employees and employers.

  • Anonymous
    March 01, 2010
    > "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).

  • Anonymous
    March 01, 2010
    "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)

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.  

  • Anonymous
    March 01, 2010
    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.
  • Anonymous
    March 01, 2010
    Hi Eric, I'd look for anything with karate, ninja or rockstar in it. :)

  • Anonymous
    March 01, 2010
    (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.

  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 01, 2010
    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.

  • Anonymous
    March 01, 2010

  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?
  • Anonymous
    March 01, 2010
  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.
  • Anonymous
    March 01, 2010
    The comment has been removed

  • Anonymous
    March 02, 2010
    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.

  • Anonymous
    March 02, 2010
    The comment has been removed

  • Anonymous
    March 02, 2010
    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 :-)

  • Anonymous
    March 02, 2010
    By the way, I'd like to work with you guys, haha!

  • Anonymous
    March 02, 2010
    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.  

  • Anonymous
    March 02, 2010
    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.

  • Anonymous
    March 02, 2010
    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.

  • Anonymous
    March 02, 2010
    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.

  • Anonymous
    March 02, 2010

  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.
  • Anonymous
    March 02, 2010
    > 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.

  • Anonymous
    March 02, 2010
    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..]

  • Anonymous
    March 02, 2010
    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."

  • Anonymous
    March 02, 2010
    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.

  • Anonymous
    March 02, 2010
    The comment has been removed

  • Anonymous
    March 02, 2010
    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.

  • Anonymous
    March 02, 2010
    The comment has been removed

  • Anonymous
    March 03, 2010
    The comment has been removed

  • Anonymous
    March 03, 2010
    The comment has been removed

  • Anonymous
    March 03, 2010
    The comment has been removed

  • Anonymous
    March 03, 2010
    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.

  • Anonymous
    March 03, 2010
    The comment has been removed

  • Anonymous
    March 03, 2010
    The comment has been removed

  • Anonymous
    March 03, 2010
    Sorry for the double post, but the server gave out an error "ooops"

  • Anonymous
    March 03, 2010
    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.

  • Anonymous
    March 04, 2010
    The comment has been removed

  • Anonymous
    March 04, 2010
    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.

  • Anonymous
    March 04, 2010
    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.  
  • Anonymous
    March 07, 2010
    The comment has been removed
  • Anonymous
    March 08, 2010
    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"