Does this mean that you don't even give these people an offer, or do they reject your offer citing low salary (or other reasons, but you suspect it's actually low salary)?
I'm asking because many examples in the article (WhatsApp founders, females, Hispanics) seem like they weren't given an offer in the first place, not that they rejected an offer because their current position was rationally a better option.
> A newly minted Phd, is one type of person that I've found myself having trouble hiring. Same with an newly minted Masters.
The PhD issue makes some sense, a person who just spent two to four years becoming an expert in a narrow area of specialization may want to use that knowledge, and may not be all that much more valuable if you don't need it (especially since his or her other skills may not have "kept up").However, for masters degrees I wonder if you're considering the fact that the degree (in many fields) can be seen as a "signal" [1]. Many masters programs are highly applied and, assuming a reasonable degree of rigor, more challenging than undergraduate programs. So, looked at in this way, wouldn't it make sense to use a masters degree to help narrow your pool down to people who can handle challenging work? In this case, you would pay more not for the additional knowledge, but for the free screening the degree provided.
Disclaimer: I'm getting a masters degree in CS (and already have one in econ, hehe), although from what I've seen, people don't have much trouble finding jobs, so...
The thing is, more education will enable a good developer to be even better. It's doesn't seem to help a struggling developer in any shape or form. Unfortunately sometimes I get the impression that people stay in school to address a problem that can't be addressed with more classroom time and end up doubling down on a field that maybe isn't right for them.
At the very least try to intern early on and or successfully help a popular open source project before graduate school.
> The thing is, more education will enable a good developer to be even better. It's doesn't seem to help a struggling developer in any shape or form.
In my (limited) experience, the people who struggled in undergrad run screaming away from any possibility of doing grad school (my experience here is consistent across econ and CS). The people who were good at the field consider grad school because the psychic costs of learning more are low.If you find a person with an MS who can't pass a simple programming test, then (and this is very general, I'm sure there are exceptions) take a look at the school her or she attended and stop interviewing people from that school, problem solved.
This is really bad advice, because much about learning programming is about an individual effort. It has little if anything to do with the school.
> If you find a person with an MS who can't pass a simple programming test
You actually need more than a simple programming test that solves a single problem. You need to see enough code to have some architecture, designed by the candidate. Interviews are too short for this so experience whether at some other company or open source, or just if skilled people can vouch for you goes a long way.
I agree that learning to program is individual, but you don't learn to program in grad school. If a school gave you an MS and you can't do Fizzbuzz, that school isn't serving its signalling purpose (that I mentioned in my first comment). So while that school may be fine, if lax, if the employer is using education as a signal, a school that doesn't fail students doesn't provide a strong signal.
Relating to your comment about needing to see more code, education is actually perfect for that. Most companies don't let you take your source code with you, schools do. So provided you took some courses that required significant engineering projects, a student has a big pile of (hopefully) reasonably-designed code to show off to an interviewer. A person who worked for a less-than-progressive company (since some maintain open source libraries and such) does not. They both have their open source contributions.
FYI the thread isn't too deep. HN disallows rapid-fire back-and-forth exchanges within a certain timeframe.
Also, there seem to be two types of people who go for masters. There are those that really love their particular specialty, and are willing to sacrifice significant opportunity costs to master it. I respect that group. And, then there are those that think that a masters will get them more pay, but who also had calculated that they couldn't increase their pay the hard way (e.g. working for it). I'm wary of the that group.
Also, when hiring a specialist, I don't want one who has focused on topics that any good developer with a B.S. can research independently: operating systems, languages, data structures, algorithms. I want one with a particular domain specialty - someone who can read recent research papers, and implement it.
I understand that there are "business" concerns (deadlines, tools, testing, and other things that aren't always taught in school) but a candidate could just as easily be deficient in those areas having worked for an employer with crap practices.
At some point companies need to stop whining and solve their own problems.
Perhaps you should instead consider that their specialization is a specific example of them applying themselves to a difficult new problem and solving it. It seems unlikely to be able to constantly hire people already experienced with what you're doing. Wouldn't you rather hire someone who's demonstrated an ability to learn something new and succeed at it?
Those are powerful tools. If the candidate wants a job that exclusively involves doing things related to their narrow field of study, then there is probably going to be a problem, but unless you haven't communicated the job description effectively, they're not applying for a job as an academic - they know exactly where to go if they want to pursue that career path.
Disclaimer: newly-minted PhD here, with no particular need to apply my dissertation topic directly to my software engineering work.
Can you explain this a little more? I'm genuinely interested.
Certainly, Silicon Valley has tons of these sorts of jobs too. Google is full of PhDs. But the ratio of specialized domain products to consumer products seems to be higher in the southeast. And as a result, my perception is that the market's valuation of PhDs is higher. It's quite common to see companies in that market where not having a PhD is considered a severe liability.
For many areas of software development, such as database engine internals, the pool of people that are qualified or trainable within some reasonable number of months is quite small. Therefore, for those areas of software development the shortage is real for all practical purposes. A PhD in computer science does not automagically confer the ability to become a software subject matter expert within a few months.
This point is key given that industry turnover is such that the first company to hire you has to expect that they are simply training you for the next.
I doubt that this is the norm though. I get the impression that most of these hiring managers who don't value experience are hiring for pretty uninteresting work and simply want inexpensive labour. The op didn't state what area of work he's in, but if a junior is the ideal candidate, it's very likely not very interesting or difficult work.
edit: after a bit of digging, it turns out that the OP works on trading systems in Canada. The ironic thing is that 125k is quite a bit above a junior position in most of Canada. So it's not clear what is going on here. When hiring PhDs, he's competing with the US companies and might be a bit shy of what they pay. On the other hand, if he's paying a junior 125k, he's paying well above the local average.
Personally, I don't think recruiters get this point.
- If the only projects they produced have been for academia or they have had a history of starting AND not finishing multiple side/non-academia projects
- Little to no involvement in group work or publications (which makes me think - what have you been doing during the 4-5 years?)
- Another item I have noticed was that an applicant's PhD thesis was very well written yet when I read the Masters thesis and any other written documentation produced, the grammar is less than average, even poor! Which makes me think of potential 'help' involved that polished their PhD. So look for inconsistencies.
- I found out that they registered a domain name Dr <Last Name> back even before they started. Who the heck does that?
Plus various other issues in conflict with the newly minted PhDs who have just entered industry and not being given things on a silver platter ($$$ and respect due to title). Give them a year or two in industry and see how they shape up.
Disclaimer: Hired a newly minted PhD, observations based on one person so I don't claim this is based on all. I would consider newly minted PhDs/PhDs but after the same rigorous checks I would make with all the other candidates.
It's probably either do that or wait and find someone else has registered it
Purchasing a domain name conferring to a 'Dr' title when one has not even obtained such title in the first place is sending out the wrong signal.
I'm not convinced.
What I'd worry about is if I saw NO improvement after 4-5 years. ;-)
Generally there are 3+ years between writing your Master's Thesis and your PhD, during which you spend a lot of time writing and editing and would hopefully get significantly better at doing so. I don't think there is any inconsistency in seeing an improvement in ability over that long span. It would be like looking at someone's code from the beginning of their career, comparing it to something they just wrote, and citing the inferior quality of their earlier work as a clear sign that someone else helped them with their most recent stuff.
> - I found out that they registered a domain name Dr <Last Name> back even before they started. Who the heck does that?
Why is this weird? Presumably if you're entering a doctoral program, you plan on finishing it (whether or not that happens). Whats wrong with getting a domain if you think you'll need it in the future?
Like everything else, that depends on the candidate. A person who has had 10 1-year jobs may have tons of applicable experience and be a better developer than the Loyal Schlub who spent two or three 3-4 year stints doing CRUD (or even proprietary trader front-end) app X. Given the rest of your post, I suspect the issue here isn't that you've had trouble finding good candidates with "10/1" resumes; it's that you simply are selecting them out due to bias.
"2) Its harder to find senior developers, regardless of what you pay. As Joel once said the good developers always have jobs, hence his internship program."
This actually supports the sentiment I expressed in response to your first point. It seems you're looking for an extremely specific and narrow type of resume--one that fits a particular format consisting of long-term, stable employment. You have a bias against other kinds of employees.
"3) the hire bar is, umm..., higher for senior developers as they are expected to do more, mentor, design architecture, etc. This means I'm more picky as to who I hire."
I have yet to see any interview capable of determining whether a person at the level you're talking about is actually capable of delivering on what you require. This last point is something that can only be adequately gauged in the context of your company's business by actually having the person work there, or work on a project there for some time. Companies are different. A person's ability to "be senior" in the way you describe at one company may not translate well, or at all, to another company.
I'm not trying to pick on you or be aggressive. I'm just commenting on a larger narrative--hiring practices in technology just aren't very good. It's not due to any deficiency in intelligence or honesty, either (most of the time, at least, I think). It's just that it's a really hard problem for which there isn't any one good answer.
For example, if your job is cranking out CRUD apps or "online brochure" websites for various clients and you do it for 5 years, there's a good chance that while you're very good at those things now, it hasn't really gained you the same experience as if you'd been doing something a bit more demanding.
Why are there not enough roles for senior devs? It's not like someone with ten years of experience wants to do the same thing over and over.
It's like experience is undesirable in the tech industry.
For a mentoring structure, it is always more efficient to have more mentees than mentors, hence more junior roles than senior roles.
The 'senior' = 'superproductive' structure requires fewer employees overall, but also brings an element of risk since the work is more concentrated.
The net effect is fewer senior roles.
What are alternatives? I want to be in R&D, something that America doesn't seem to believe much in.
I'd push back rather hard on that statement. US companies invest loads of cash in R&D, more than any other country. The problem is that if you expect to be doing R&D for a YC startup (or even a typical SV consumer web or B2B startup), you're really barking up the wrong tree—those sorts of companies don't do a lot of R&D. If you're really interested in that kind of work, you'd be far better off in bioscience or hardware. Or at least larger, established software companies.
However the US tax code allows companies to write off new development of new systems as a tax break, so you typically would be doing this kind of R&D at a startup until the system moves into production and is then accounted for differently for tax purposes.
So US companies invest load of cash in R&D, just not the traditional kind of Pure R&D.
The other move is to do a start-up and work on one's own R&D (how you do it is your call)
The hard part is the "proving competency" part. I consider myself a somewhat competent programmer, but trying to catch myself up on the state of the art in my focus; N body simulation; is a hard enough problem, and even when you feel like you understand it, how do you let other people know? (little bit of chicken in egg here, since normally the PHD is this sort of signalling.)
The answer I chose is "build fun projects in my free time." and with the advent of more accessible programmable robotics, you can certainly explore both of your interests. (I should take my own advice here too...)
Edit: See 'meat-space' vs. 'net-space' comment below. https://news.ycombinator.com/item?id=7373273
In a fair market, price goes up to increase the supply.
For example lawyers. I'm paying $600 /hr. Plenty of them around, no shortage.
Actually, I suspect I know the answer in many cases, but I'm curious what other people think.
I would certainly pay an amazing engineer $600/hr if I could call on them at any time and get billed at increments of 6 minutes, but that would be an insane way to build software (I know lawyers who think its an insane way to do law, but it is the system).
Maybe not trial lawyers or other positions where you need a warm body in the courtroom, but entry level lawyers are feeling the outsourcing squeeze as well.
Github as CV has been debated already. Your employer may place restrictions on your ability to contribute to or publish open source. You may already be working 40+ hours a week and have other interests besides writing more code. If I'm not especially familiar with a project, I have no way to evaluate whether your contributions are valuable; I'm using the project owner's judgement as a proxy for my own. Maybe the project manager is a chump and the project is a mess, so does someone contributing 100 commits to that project count as a positive or a negative?
Let's say you one-upped AngularJS with a new library. How would you compete with that sort of marketing muscle? Devs are no different from regular people: they don't want to change, they'll be averse to re-learning things, and they'll downgrade you for not being backed by Google.
However the fault probably lies within the wider academia culture and the lack of expertise that academics/institutions provide to those wishing to leave and go to industry. Some PhDs genuinely do enter for the purpose of having a research career only to realise that academia is not for them and vice versa..
How do you tell if you're (hiring) one of these?
What would you say then about a developer that switches job every year so (s)he can learn something new? I think there is a stigma regarding those too.
How simple is it to gain 10 years of real experience in the industry? Are there enough jobs and opportunities for the ambitious developer to keep improving and gaining novel insights and experiences in that person's jobs? Or does she, after a point, have to relegate most the learning to free time projects because the work doesn't take her out of her comfort zone any more?
Whenever an article like this pops up the usual chorus is, there is no skill shortage, just a shortage at the price the employer is willing to pay.
Sadly I've seen myself as someone on the hiring side of the table fall into a few of these traps listed in the article.
A newly minted Phd, is one type of person that I've found myself having trouble hiring. Same with an newly minted Masters.
The reason is that often their area of specialization doesn't really help in the role I'm hiring and therefore I wouldn't give them any bump in pay for their extra schooling. On the other side of the table, especially for a Phd, they often expect a bump in pay for their additional schooling so its tough for me to hire someone like that.
EDIT to clarify, I don't reject these people out of hand, infact it helps them get an interview over others, but when it comes to offer time ie salary, I don't give any real value to a masters or Phd. Or put another way, if the salary I'm willing to offer is $125,000 its the same regardless of education.
To be clear, In a fund with 12 people, we have 5 Phd's and one more with a masters, so we do hire well educated people:)
Post grad education might get you interviewed first, but will have almost no bearing at all on if I extend a job offer or not.
The same can be said for what school you went to. MIT education, great I'll put you at the top of the interview pile, but when it comes time to extend an job offer, where you went to school doesn't factor into what we offer at all.
Too far along in their career can also be tough. Often this is due just to salary demands not fitting a junior role.
A new grad has no job they are quitting so they don't need a "bump" in pay to leave. Someone who is well into their career might be a good fit but is making a good salary where they are so they require a sizable pay increase to leave. Given this, it often makes sense to go with the younger candidate whose salary fits the role.
EDIT To flesh out the senior developer comment a bit more. There are really 3 areas I've had trouble with in the past.
1) The 10 year developer who has 1 year of experience 10 times over. This is just a junior developer who wants the salary of a senior developer.
2) Its harder to find senior developers, regardless of what you pay. As Joel once said the good developers always have jobs, hence his internship program.
3) the hire bar is, umm..., higher for senior developers as they are expected to do more, mentor, design architecture, etc. This means I'm more picky as to who I hire.
Having said that, there are times where experience rules, and in this case you get what you pay for.
NOTE This post has generated more upvote and downvotes than almost any other post I've written. So half the people agree with me and half disagree?