Fabulous Adventures In Coding
Eric Lippert is a principal developer on the C# compiler team. Learn more about Eric.
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!
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!
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.
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."
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. :)
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 ;)
Have a look at
"Smart and Gets Things Done " by Joel Spolsky
It is useful for both employees and employers.
> "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).
"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)
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.
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.
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.
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..
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.
- Good Pay. I work to eat... and I eat a lot :)
- 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.
I'd look for anything with karate, ninja or rockstar in it. :)