Hacker News new | past | comments | ask | show | jobs | submit login
The Engineer Crunch (samaltman.com)
452 points by clarkm on Feb 18, 2014 | hide | past | favorite | 426 comments

I'm starting to be a bit disillusioned with this whole "we can't find great people" spiel that a lot of startups put up.

I have friends who are extremely good engineers (i.e., a mix of: contributors to major open source projects used by a lot of SV startups, have given talks at large conferences, published papers at ACM conferences, great portfolio of side/student projects, have worked at great companies previously, frequently write high quality tech articles on their blog, have high reputations on sites like Stack Overflow, etc.) and who have been rejected at interviews from those same companies who say that they can't find talent. (it also certainly doesn't help that the standard answer is "we're sorry, we feel like there isn't a match right now" rather than something constructive. "No match" can mean anything on the spectrum that starts at "you're a terrible engineer and we don't want you" and ends at "one of our interviewers felt threatened by you because you're more knowledgeable so he veto'd you").

Seriously, if you're really desperate for engineering talent, I can give you contact info for a dozen or so of friends who are ready to work for you RIGHT NOW (provided your startup isn't an awful place with awful people, of course) and probably another dozen or two who would work for you given enough convincing.

I'm honestly starting to believe that it isn't hard to hire, but that there's some psychological effect at play that leads companies to make it harder on themselves out of misplaced pride or sense of elitism.

Unless everyone wants to hire Guido Van Rossum or Donald Knuth, but then a) statistically speaking, you're just setting yourself up for failure and b) you need to realize that those kind of people wouldn't want to do the glorified web dev/sys admin'ing that a lot of SV jobs are.

>"I'm honestly starting to believe that it isn't hard to hire, but that there's some psychological effect at play that leads companies to make it harder on themselves out of misplaced pride or sense of elitism."

I expect that a fair portion of "We can't find qualified people!" is actually "We can't find qualified people for what we're willing to pay."

Beyond that, I wouldn't say that it isn't hard to hire, but it certainly seems popular to make hiring as hard or perhaps more accurately - to make passing as easy as possible whether it's via veto, "culture fit" or something else.

I was hoping that the vote of confidence in "behavioral interviews" [0] from Google over the summer would help things a bit - I guess not.

0: http://www.nytimes.com/2013/06/20/business/in-head-hunting-b...

If that was the problem, then they would complain not that they couldn't find people, but that candidates weren't accepting their offers.

(Of course it's possible they are implicitly or explicitly cutting all the people who cost too much money, leaving them with very few useful candidates.)

Would they though? That would be admitting that the problem was with them, something many people are not willing to do.

Only want to hire elite genius rockstars ... to implement a really boring CRUD app ... for median (sometimes lower) wage.

Not too surprising this strategy doesn't work out too well.

> I expect that a fair portion of "We can't find qualified people!" is actually "We can't find qualified people for what we're willing to pay."

Sure, but isn't that implied, since all companies have financial constraints? If you can somehow pay 10 million dollars a year for a software engineer, I'm sure you'll have a lot less trouble finding a great engineer.

Indeed. The big tell in the OP was the call for opening up H1B's. Also, training? hello?

It's funny at my first job a world leading fluids Rnd organization as a research assistant my instruction on joining was Kieth's going to give you quick hours run down on how to run the PDP 11's - then pop into the library there is a book on FORTRAN tech your self it :-)

Oh an that was direct from school I didn't even get any A levels :-)

At a previous job, we had a hell of a time finding candidates who were any good, and then of the ones we made offers to, we got a lot of "no thanks", I don't know why management couldn't close the deal but I have guesses (not gonna post them because people from that former job post on HN).

In other words, you don't want to actually be useful to former colleagues...

Agree 100%.

In my anecdotal experience, companies put far too much emphasis on finding unicorns that can solve problems on a whiteboard than they do on finding above-average developers that have a strong work ethic, can learn fast, and have shipped something.

As it stands, it seems the only people these companies hire are notable SV personalities, or people that excel at the formal interview format.

As a result, they are missing out on a lot of good talent.

Don't even get me started on working remote.

I could upvote this all day. I was rejected by a company that posts about their need for developers constantly, and it irritates me to no end. I provided a big batch of sample code privately, on Github, demonstrated the apps I've shipped, showed great enthusiasm in their product (I was a happy user long before I attempted to join the company). They see all of this before interviews and then they reject me because of how I named a variable in a 15 minute pair-programming exercise and said I should read Code Complete (I have mostly), promptly ignoring the thousands of lines of code they could inspect. I'm sure there was more to it, but still, left a bad taste in my mouth.

That is pretty insulting, especially given the subjective nature of naming things.

Also code complete is ancient, sure much of it is still relevant, I don't think it is the be all and end all though for the modern programmer.

Many interviewers simply can't get past the power-trip of interviews. This turns the interview into an awkward tightrope of appearing smart/dependable without being intimidating.

I find myself getting nervous on both sides of the table.

Just be glad you didn't end up working with these people.

You're absolutely right.

Remote is a non-starter for 99% of start-ups... and a lot of companies that are selling pants online are searching for PhD-level engineering talent to run their shopping cart.

I've noticed this, too, and been baffled by it. My working explanation is that people tend to hire clones of themselves. If the people making the hiring decisions in that online pants company have PhDs, they'll believe they need PhDs to work on that shopping cart.

> people tend to hire clones of themselves

Winner winner, chicken dinner.

Ask a company that is hiring "is X important?", where X is one of {open-source coding, algorithm design, Ivy league degree, master's degree, MIT degree, Facebook alum, Google alum, presence in Silicon Valley, under 25 years old, over 25 years old, has a github, has a blog}, and you will get a "yes" for each X that the founder has.

As someone hiring at a pants-selling company, I'd settle for somebody who can recognize a many-to-many relationship.

Our salaries aren't that uncompetitive, either. I think it's just that pants are un-sexy.

At the very least I'm trying to sex things up a bit by moving us to a semi-modern stack so we match the desires of the more ambitious talent in the marketplace...

Just checked pants-selling tech jobs; none of them (in the bay area, where the majority of them are, at least) have a requirement under 3 years. The majority of them are senior roles. Was your HR person flying by the seat of their pants when they wrote the job descriptions? If not, then I must be unaware that recognizing many-to-many relationships is a skill picked up after years of employment.

And as for remote work?

Is this a disco-pants selling company? That's pretty sexy.

note: before my inbox overflows with resumes, you still need to have j2ee experience.

(As much as I'd prefer to hire bright people who can learn on-the-job (a category from which I emerged), our current delivery schedule means we don't have the bandwidth. The reasons behind this are beyond the scope of this comment :( )

But... that seems a bit of a wrong approach. If it takes you another 6 weeks to fill the role, that's 6 weeks someone could have been "learning on the job", no? And there's always a ramp up period - you're making an assumption that the person coming in without X years experience in tech Y will by definition not be able to learn fast enough on the job to be productive enough to hit target Z. But by not filling that role, you're definitely not hitting target Z. I do also get that there's time that's spent in onboarding any new hire, but that's possibly equivalent to spending more time hiring no?

I understand your main point, but I just think many companies hold fast to that position far too long, when the alternatives might be better than they think.

I agree. But I'm not high enough on the totem pole to change the model.


Ah, the ole sets-out-to-demonstrate-that-there-is-truly-a-shortage, demonstrates-that-the-shortage-indeed-lies-in-the-number-of-entry-level-jobs.

The startup I co-founded is exclusively remote, with almost everyone in a different USA state. I've found a lot of the talent in the area we're looking for (Minnesota) find remote to be either a new idea (I've done just a little remote before), and perhaps a somewhat strange concept (many are not sure if they could do it all day long).

Is there any good strategy to finding remote workers in a specific geographic location? Yes, that's kind of antithetical to remote working, but the state offers tax advantages to employing people from the state... and looking through the entire state of Minnesota should find someone who's fine working from a home office... right? Or do those types of people really primarily live in the SV area?

Not exactly what you are looking for but might be something interesting for you to check out: venturepact.com

Appreciate you're insight here, if anyone knows first hand, I'd imagine it'd be you with your experience on developerauction.

I can't speak to the Valley or any other "top tier" places but I live in a 2nd tier technology city, Orlando. We are the simulation capital of the world, two full sized Lockheed Martin campuses, really any defense contractor name you can think of, some household brand video game companies, etc. Lots of action going on here. The unemployment rate for developers is under 2%. This means that not only do "above-average" developers have jobs, lots of really awful developers also have jobs. It's INCREDIBLY difficult to find talent with under 3-4% unemployment.

There are a variety of reasons for that, in my experience. In the I-4 corridor the "shortage" is driven by two things, primarily: 1) it's just a crappy place to raise a family, what with the poor public services (parks, transportation, you name it) and school systems (gotta fund those prisons and blame the poor and old people for consuming state-subsidized health care and driving up those costs, y'know); 2) companies there are even more ridiculous than the valley with lowball compensation packages (this is especially true of the simulations and video game companies in the area).

People, especially educated and intelligent people, typically don't want to live in a place that values tourism, guns, and private religious school vouchers over parks, playgrounds, and public schools, and that also pay average (at best) industry wages.

How do you local unemployment data on developers? Are there any agencies that collect this data?

Don't tempt me like that. I'm homesick, but doubt I could sell the wife on Florida. :P

I wonder if anyone in NY, SF, or any other 1st tier developer city can comment on the local unemployment rate for either software devs or IT in general. Here in Orlando/Tampa it's been around 2% for YEARS.

I don't know how First Tier Phoenix is... it's mostly business process development here, a lot of banking, and quite a bit of other financial process development, and business management dev.

We've been really low on unemployment for a number of years... the cost of living compared to dev wages (usually >= 80% of NYC/SF wages) is really great, that I would be hard pressed to consider moving to SF, Seattle or NYC. That said, it's a bit hard to find talent, but then I don't do it for a living... Also, I don't think the business people doing HR really "get" the mindset of a software developer in terms of actually recruiting.

Do you want to work with above average people, or do you want to work with great people?

I want to work with people who are good match for a job.

Most projects are not that difficult and uber-tech as founders like to think. Reliable average programmer that generates maintainable code in predictable speed might end up as useful and less annoying then bored genius.

That was annoying thing company I knew did. Candidates were selected for their love of algorithms and detailed knowledge of frameworks etc. Anyone else was labeled "weak".

It just so happened that the work required only surface knowledge. What they really needed was someone willing to do "boring" programming work responsibly and without supervision.

So, hired geniuses were running away faster then you can say bye and those who stayed half assed work.

> Most projects are not that difficult and uber-tech as founders like to think

This requires a certain amount of intellectual humility; as founders would have to acknowledge that it is likely they are not changing the world (they're coloring by number using last week's cool framework), and they don't need the best engineers.

I'd rather not work with above-average people who think they're great.

Agreed. The subset of people who think they're great, and are great is vanishingly small IME. In fact after around 15 years of working as an engineer, I can think of maybe 2 people who fit that subset, and easily 50 who were legends in their own lunchtime.

It's gotten to the point where anyone who proclaims to be an expert in something is immediately suspect to me. The smartest guys I know never have to say it, and truly never brandish their skillset like some kind of gaudy prize. That kind of attitude makes it very easy to be undermined.

So who would you prefer to work with:

a) The smartest guys you know? b) The average guys you know? c) The average guys you know, but tell everyone how great they are? d) The below average guys you know? e) Other?

People who are great, do so not by telling other people they're great (although sometimes you need to have a little PR), but by demonstrating their great:

1. You want to work with them 2. Work diligently to make the team, product, and company better 3. Are smart 4. Are productive

A perfect blend of: talent, hardwork, and ambition.

I've noticed a trend of acceptable mediocrity here on HN. Any mention of wanting to work with people that are exceptional, results in near universally negative feedback.

As a startup, your first hires are CRITICAL. They set the tone of your company, and will carry a lot of the burden alongside the founders. You can't just settle for "good enough to get the job done." You're not just hiring for today, but for the next 2-5 years.

Seed your company with great people, and keep raising the bar.

Myself personally, I'm not great, so I want to work with people who are better than I am, not worse.

So basically you don't want to work with above average people.

It depends on how you measure great.

You can be great as an above average developer, and you can be less than great as an excellent developer.

I'd prefer to measure the complete package.

Fair point, and I agree. You need to measure the whole package.

This 1000x.

I have never found it difficult to hire for my dev shop in San Jose and I don't pay anywhere near what I'm told the "market" rate is. I hire engineers fresh out of no-name colleges, self-taught programmers, former freelancers who decided they wanted the stability of a salary and people over the age of 35.

Basically I will hire the people who won't get the time of day from a lot of the big tech companies and rocketship startups and who wouldn't make it through the interview process there if they get through the front door. And you know what? Most of my hires turn out to be entirely adequate and the duds are not nearly as difficult to deal with as everyone says they will be.

Granted my company is not building database engines or running social networks with a billion users but we do enterprise web apps for good clients and we are profitable. This idea that you have to give every employee 10% of the company and 130k a year to get people who can get the job done is a terrible, terrible myth and posts like this perpetuate it.

Your post is a bit baffling. You state flat-out that your "dev shop" does "enterprise web apps" (almost certainly of the most pedestrian and easily automated variety) and that you target groups filled with people who are either desperate or unlikely to understand just how much you depend on them in order to take advantage of them by paying much less than you should. There's nothing mythological about that.

Wow! How to respond?

First off, while I appreciate your attempt at criticising the type of apps we build for clients who collectively generate billions of dollars in revenue per year I must point out that most web apps could be called pedestrian. Go through a list of the latest batch of YCombinator startups and I think you'd have a hard time finding many whose apps couldn't be called pedestrian too. An app doesn't have to be complex to be incredibly useful and/or profitable and by the way a lot of the work done at companies like Google and Facebook is pretty pedestrian too. So what's your point?

As for paying my employees less than I should, that's quite a statement given that you don't know how much I pay them. All of my engineers make $65-95k a year. At the lowest end is a recent community college grad who is really talented but didn't have the grades or money to go to a 4 year school because he was taking care of his sick father. I was literally the only company he applied to that gave him the time of day.

I constantly hear (from people like you) that my wages are too low and that I'm going to find it hard to hire good engineers but I have yet to experience this. I can't pay $110k to a new college grad or $140k to an engineer with 3 years of experience but from what I see the number of those jobs is far lower than the number of engineers in SV. Should the engineers who aren't going to even get an interview at Google remain unemployed?

I mentioned on another thread that I have one employee who I know is unhappy with his salary. He has about 4 years of experience and makes close to $90k a year but apparently he got it in his mind that the streets of Mountain View are lined with 6 figure jobs. He's a decent engineer who writes adequate code but he's not the type of guy who is going to pass a white board algorithm test. I know he has been looking and interviewing for the past 8 months and he's still here. If I'm taking advantage of him please explain why apparently no other company has offered him the 6 figure salary he (and you!) thinks engineers are entitled to.

By the way when I started in this industry in the 90s my salary as a programmer was the equivalent of about $38k today. I didn't feel taken advantage of or desperate then and thankfully to this day never got a big enough head to feel entitled to a significant income just because I can write some code.

I won't argue with your point re: web apps being pedestrian. I'd be the first to agree, if it isn't obvious. I have multiple comments here on HN where I scarcely hide my negative view of the pervasive fad-hopping "rockstar" macbook wielding silliness that seems to suffuse certain segments of the Valley.

My point wasn't that you won't be able to hire developers adequate to the tasks you require. It was that your target labor pool doesn't intersect with the labor pool target of companies building "database engines" or scaling up to "billions" of users, and so to compare your compensation packages to companies who are looking for engineers capable of building those things is a bit daft.

Wait a minute. I thought your point was that I was praying on the desperate and taking advantage of people who didn't know what they're worth? I'm glad you changed your tune.

By the way I know plenty of people at startups who tell me they can't find decent engineers when they're offering 30-50% more in salary than I do. And 99% of these startups are NOT building database engines or running massive social networks. Most of them actually have web apps that are on par with the web apps we build for our clients if they are even that sophisticated.

The problem as I see it is that a lot of the management at these startups are deluded about the skill set they need and they lack the intellectual honesty to admit that their startup is not Google (yet). They can't find candidates because they are so in love with the idea of talent, too picky and don't want to invest in employee development. I mean it's not the end of the world if a candidate doesn't have experience with Git or unit testing. This stuff isn't that hard to learn and if your employees have nothing to learn from you they will probably be bored very quickly.

On the flip side all these ads for 6 figure positions and talk about salaries and talent shortages has given a lot of below average, average and good but not great engineers (which make up 99% of the labor pool by the way) the mistaken impression that anybody with a few years experience who can build a crud rails app can make a couple of phone calls and land in a 120k a year job. It's nothing but a mirage. For every 1 engineer who can get one of the $$$ jobs there are 50 who could do a dozen interviews and get no offers.

I didn't change my tune. I still think that you're preying on and taking advantage of the desperate and naive, just like the startups you mention in this comment want to do, but paradoxically expect to also be "rockstars." It's a different kind of naivete the startups are after--they're after bright, gifted engineers whom they can convince to take feel-good euphemisms ("change the way X is done" or "disrupt Y" and HAVE FUN doing it) in trade for reasonable compensation relative to the value the engineers provide.

Those startups should be hiring your developers at the rates they offer, and you should be paying those rates. But because the startups you mention think they need the CS equivalent of Einstein and Feynman to run their CRUD stack, your developers are ones they pass on (and then whine about a talent shortage), and allow you to pay the below-market rates you get away with, because in your segment of the market there is, apparently, an excess of labor available. Your description, in other words, isn't a counter to my point.

It's lovely that apparently you believe anybody who can build a crud app deserves a 6 figure job but reality is based on the supply and demand, not your utopian dream world.

The bay area is expensive but I am proud that I can provide salaries substantially above the median household income in the US with decent benefits. How many people do you provide $65-95k a year jobs to? When was the last time you hired people who had been rejected by every other company they applied to because nobody was willing to look at their potential and take a chance? What percentage of community college graduates do you think make $65k a year to start? Heck what percentage of 21 year olds you even think make $50k a year? It's easy to criticize me and tell people who don't have 6 figure jobs that they're selling themselves short but hey talk is real cheap.

By the way a ton of the startups offering those 6 figure salaries don't earn enough profit to pay those salaries. Their investors are paying those salaries. What do you think is going to happen when the money runs out and there are no more sinking ships to jump to? Will you suggest that the unemployed engineers cling to their tulips?

enterprise consulting teams face a perverse incentive to be less efficient than product teams - a consultancy can actually kill itself by being too efficient

That's not always true. Most of our projects are fixed price so efficiency is very important. If the scope doesn't change and we're inefficient I lose money.

> one of our interviewers felt threatened by you because you're more knowledgeable so he veto'd you

I interviewed at a place and turned them down (located in SF) for this very reason. I could immediately tell that one of the owners did not like me. After wrapping up my entire interview process one of the owners thanked me and told me that they would reach out to me with more information. I went to thank and shake the hand of the other owner (he had wandered off).

(They brought me in on a friday and they had a very open layout, engineers wandering about, beers in hand...etc)

I opened with a thank you and, "I spoke with XYZ and he said you guys would be following up with more information, i look forward to speaking with you again!"

He looked at me and said, in a very short and harsh tone, "Oh - I guess we will then..hm"

I was extended a job offer the next day and immediately began receiving terse calls that I needed to forward more information and get it to them NOW (from the one who was quite brash with me earlier).

I thanked them and turned down the offer.

It's probably immature of me, but did you say "I have decided not to move forward at this time"?

Something to the effect of that - unfortunately when they extended the offer I was away at a conference and I had to do it over the phone in a loud hall. I was very unhappy with how the entire exchange went, but overall I am glad I did not take the job.

Modus operandi seems to be:

1) Incorporate in SF for culture reasons or to allow founders to optimize their commute.

2) Find out it's extremely hard to find people in SF as anybody who lives there pretty much has to stay employed to justify the rent.

3) Find out people from Peninsula / South Bay / East Bay are not as excited about 45-60 minute one way commute as you thought they'd be.

4) Complain about engineer crunch.

Companies often give generic responses like "we feel like there isn't a match" to cover themselves legally.

More helpful responses can accidentally open you up to discrimination suits, and given the option of (A) bulletproofing every helpful response to make sure it won't come back to bite you and (B) just giving a generic and safe response every time, you can see why they'd choose the latter.

I will add that people are also very uneven in how they receive feedback. As John Scalzi writes, "[...] there are a lot of people who, when they say, 'I’d love feedback,' actually mean 'I want a hug.'" [1]

Even those who actually want feedback are often unprepared to hear it. Thinking back, some of the biggest things I struggled with were things that were invisible to me. If I try to imagine explaining some thing to my younger self, my options are a) explain it politely but in a way that I wouldn't get, or b) being so blunt that I get upset or defensive. E.g., what I once saw as being passionate about getting at the truth is something I now see as me acting like an arrogant, argumentative, know-it-all jerk.

Plus, feedback is much harder when it isn't interactive. When I do give feedback, it's always at the interviewee's request, it's always right after the interview, and it's always in person. Then it's pretty easy to gauge their emotional state, give them the feedback that's useful to them, and refer to specific examples that are fresh in our minds. Doing that a couple weeks later in print would be a nightmare.

[1] http://whatever.scalzi.com/2007/01/23/what-to-know-before-yo...

Giving vague feedback to disqualified candidates may be necessary to cover lawsuits against the hiring company, but does nothing to make the would-be candidates grow or improve.


Is weird. I have more than +17 years on this job, and when I have apply to some oportunities (online) for the kind of things I could be good some companies expect to hire me testing for the things that are not related to the job itself!. Like testing algorithmic stuff instead of database (I'm a database/crud/backend guy).

I could understand the use of some general test, but the weird thing is that nothing at all related to the job is used.

I remember from some big internet recruitment agency that use a lot of time with me, but at the end I fail at them because they use the final testing unrelated to all the things hours and hours before we talked about.

Is like hire a mechanic, and ask only algebra stuff.

Indeed. This article says "if you’re going to recruit outside of your network (usually a mistake, but sometimes there are truly no other options)" WTF? You think you know all the good people already? Such a narrow minded view.

I highly doubt they think they know all the good people. It's just a much better idea to hire someone you or someone you know and respect have had a good work experience with. Hiring someone off the street opens you up to a lot of unknown, most specifically if they're a good culture/team fit.

So you think you know all the people who are "a good culture/team fit", and they aren't even particularly good. And then you complain about how hard it is to hire people? Of course its hard to hire people if you limit yourself to the thirty you know.

Hiring people you don't know opens you up to opportunities to expand your horizons and go in new directions. If a good culture fit means people you already know then you are incredibly narrow minded about culture.

I find it ironic you're accusing either me or the author of narrow-mindedness but your responses clearly indicate you haven't comprehended either of our points.

I do agree that you or your (extended) network don't know all the people worth knowing as there are always gems in random pool of people, but I think the odds are a bit better, at least from my own experience, finding them through the people in your network. How it usually pans out is that you ask your network "we look someone to do X, does anyone know anyone" and they ask their network and the loop continues until a name or a lead to a name comes up.

I'm sure they have hundreds of facebook friends...

"I'm honestly starting to believe that it isn't hard to hire"

If this were true, then engineer salaries would not be rising so much. The demand for good engineers vastly outstrips supply.

Also, any explanation that requires you to posit mass irrationality is usually a bad one.

That's true but a sloppy way to say it. A more precise way to characterize his argument is that extraordinary claims require extraordinary evidence.

Then: is it an extraordinary claim to suggest that the hiring processes used by most tech companies are doing a bad job of selecting candidates? Are engineers hired through these processes but then fired within the first 6-9 months a rarity? Is turnover generally low? Is hiring so risky that companies working in the middle of a "talent crunch" are demanding that candidates take temporary contracting roles so they can evaluate performance? Is the typical startup engineering team staffed by engineers uniformly capable of production? Are tech company hiring practices carefully designed and executed, or is it more the norm that they're delivered by whatever engineers happen to be available for candidates when they show up? If the latter is the case, isn't it instead an extraordinary claim to suggest that these processes could work at all, given that they're essentially stochastic?

> Is hiring so risky that companies working in the middle of a "talent crunch" are demanding that candidates take temporary contracting roles so they can evaluate performance

Heh. Somebody had to say this. I don't know what the difficulty is all about. In the SV I have been more to more than 1 interview where I solved all the questions(in a day long interview) and didn't get the job.

Not sure what the high bar is all about.

Do you have any data to back up the engineering salaries rising "so much"?

From where I am standing engineering salaries have stagnated for the last 5 years, possibly even 10.

My observation has been that while average compensation isn't trending upward that much, variance is increasing a lot. I've seen market research which bears this out. Especially among top candidates straight out of school, salaries have gone up a lot in the last few years.

Allowing for inflation, since the dotcom bust.

Are salaries actually rising so much ? From survey below, they've risen 2.3% last year, 2.1% the year before ... my memory of other surveys is similar ... doesn't even seem to be rising faster in SV ...


This is supposing that the all of the excess demand for good engineers is coming from companies that have gotten good at hiring and have moved passed these "we only hire the 0.1%" mentalities.

In a lot of places there might be extra, hard-to-satisfy demand because their processes for sifting through the supply of developers is poor or not working.

Mass irrationality happens all the time.

The Bay Area is a great place to be if you're an engineer. You get many job offers in your inbox every week. Your friends have long since stopped asking you if you want to work at their startups, but you know just how quickly that would change were you to signal that you wanted a new job.

I think the crunch is at least somewhat real. We've hired a couple great people we met through Hacker News -- I couldn't have imagined them working out any better. And recently I've been trying to hire more people at my startup and, frankly, it's tough to find good people.

We've worked hard to make our interview process quick, insightful, fun, and accurate. Do we do pair programming? Sure. Do we ask about data structures? Absolutely; any programmer worth anything knows something about data structures. Do we do whiteboarding? Yep. Programmers at our company, it turns out, need to be good at communicating with humans as well as with computers. Do we give people answers immediately, and tell them why we are rejecting them? Yes, we do. We are more humane and reasonable than so many other places.

(It drives me crazy how many bad interviewers there are out there. Some of my friends recently interviewed for entry-level positions and some shall-not-be-named companies in SF and were treated terribly: given the run-around by the recruiters, brought back in the office 4 separate times for interviews, and ultimately rejected by at least two companies when they decided they didn't want to sponsor H1Bs after all. Insane. In a war for talent, you'd think practices like this would cease.)

Anyway: this is all to say, I'd love to meet your friends or anyone else out there who's looking for a programming job. My colleagues and I are not awful people. We like to brew beer and write code and help make the world a better place. We have a book club and eat good food. Oh, and we pay well and sponsor visas and are generally, you know, warm and friendly folks.

"Absolutely; any programmer worth anything knows something about data structures"

Can you qualify this a little bit? I haven't used data structures since university. What are you expecting programmers to know and why?

I'm curious to know what kinds of problems you work on, then?

I find that I need to have a strong working knowledge of data structures every day. Hashes, lists, trees, and so on. Knowing how to apply data structures in production code matters a lot: the difference between a hash lookup and a linear scan, for example, can mean the difference between a reasonable response time for an application and an absolutely terrible response time.

In interviews, I have found that good understanding of these data structures (and the algorithms one uses to manipulate them) correlates strongly with ability to solve larger and more complex problems.

If you haven't used a list, array, map, set, tree, etc since university then you probably aren't writing code for a living.

Well, I guess it's possible, but I find it hard to imagine.

I wrote real-time signal processing code in C for 5 years. I used lists and arrays. Indirectly I used queues as well, but those were buried down in the mailbox code in the middleware. Also was not allowed to malloc and free during runtime or use recursive calls without a very good reason. No DFS or BFS to be had anywhere in the code. No sorting, except for a couple calls to the Standard Library qsort function. My algorithm text of choice was Skolnik[1], not CLRS.

Guess I wasn't writing software for a living. Plenty of SV companies sure got that impression.

[1] http://www.amazon.com/Radar-Handbook-Edition-Merrill-Skolnik...

You used lists and arrays... so you used data structures?

I don't consider an array much of a data structure. Its just a contiguous block of memory with a shortcut for addressing inside. List is at least a "proper" data structure. If "data structure" is defined that broadly, then its nearly impossible to write a non-trivial program without data structures. Its like trying to write without sentences.

However, when people around here refer to "data structures" they mean a whole lot more than those two. All of the data structures listed in the post I was replying to are widely considered "standard" data structures that are used all the time. I was pointing out that I worked in a significant, operational codebase of >150,000 lines total that used only the most basic of data structures, and used those sparingly.

Fair enough. I understood that, I was being kind of a dick. Sorry.

You have a point. What I meant was I haven't used theoretical knowledge of data structures. Arrays and hashes does not count :) That's just basic programming knowledge.

Whenever someone uses the term "data structures" I think about the inner workings of different types of B-tree's. And since I don't know the inner workings of the more advanced data structures, I would probably disqualify myself.

I have this theory that it all goes back to Joel On Software's article from 2000 that said it you should find any possible reason to not hire people.

http://www.joelonsoftware.com/articles/fog0000000073.html grep for "no hire"

The things in that article that are today considered vastly out-of-fashion (probably too much, the same way they were too in-fashion in 2000) are numerous, but this "

A lot of times an otherwise great engineer will be passed over due to culture fit.

I'll take those dozen friends -- http://www.hired.com/recommend :)

I have got the "We are not going to go forward with you but we are not going to give any reason for that either" more than few times now.

Happens one time, you think it was chance. Happens couple of times, you think you think there might not have been a cultural fit.

But you can't help but start questioning your skills as a developer sometimes. Times like those I could really use a reason why I am not a good fit. That includes "We don't think you are a good developer" because knowing the problem, I could try and fix it.

> Seriously, if you're really desperate for engineering talent, I can give you contact info for a dozen or so of friends who are ready to work for you RIGHT NOW (provided your startup isn't an awful place with awful people, of course) and probably another dozen or two who would work for you given enough convincing.

How can I get in touch with you? My email is in my profile page.

"one of our interviewers felt threatened by you because you're more knowledgeable so he veto'd you"

does this ever actually happen? it would never fly during any of the interview processes I've helped conduct.

How would you even know when things like that happen people don't usually come out and say it in blunt terms like that.

Someone who scores pretty well objectively and is getting subjectively tanked by one person on the loop is something to explore more deeply.

3 out of 4, there's something legitimate there. It's possible to be coached through some of the objective parts of many interview processes, ours included. That's readily true for an internal referral (and could be innocuous rather than malicious), and even someone using glassdoor to prep could maybe skate by a couple questions, but someone will usually sniff it out subjectively.

1 out of 4 it's a "personality clash" which could be code for being threatened by someone's technical superiority, rather than simply being annoyed by someone's superior PITA-ness

If the same employee is constantly on the personality clash side of things, it's easy enough to remove them from future loops (and possibly the company, if their inferiority complex is rooted in actual inferiority).

Yep went for a job recently where I had several more years experience that the person in charge of the team :-)

I'll shamelessly hijack here: I'm an engineer with microcontroller, python, C++, matlab and java experience (5 years all). PM for more info.

I agree with this strongly. What I usually say is I'll believe there's a shortage of great engineers the day that in-house recruiters begin contacting me. My accomplishments are right there on LinkedIn, if you can assume I didn't lie, for one phone call. Until that happens, I have to conclude companies that allegedly can't hire are barely trying.

How do you list yourself on LinkedIn - as looking for a job? For someone such as myself looking for a talented engineer, unless there is a strong indicator that someone is looking for a position, I've found LinkedIn has not provided too many responses.

I tried one of the more expensive LinkedIn accounts awhile back, contacted about 10 people that all had mobile experience (my company makes an iOS and Android app for higher education), and only got 1 response to my message.

I assume part of it is that my message was read by these people, but they looked at it as "spammy," even though I wrote it individually to each person and tailored the message for each person. I've gotten messages from random people on LinkedIn, and it's easy to feel messages on there to be spammy.

So having my time on LinkedIn essentially feel like a huge waste made me question LinkedIn. Is it that I used their email system, and I should have instead setup a phone call?

Perhaps I am communicating a job that is not particularly interesting? I think an iOS and Android app with web backend, using the tech we are using (native languages for the native apps, and NodeJS for web), would be fairly attractive to a variety of developers though.

My problem with LinkedIn is that I rarely get contacts about jobs I am interested in or truly qualified for.[1] I'm honored to have been contacted by all of the Big 4 via LinkedIn. I'm bummed that they always contact me about DevOps type jobs. Could be that I need to write up my experience better, but what I have down there should not be giving the impression that I am a DevOps guy.

[1] Note: I am not actively looking and do not have this indication set on my profile. All contacts I am referencing are purely passive pings.

I've been listed on linkedin as actively looking for a job for 4 months now. Granted, my profile could use some work, but the few replies I've received didn't mention anything listed on my profile other than my name.

I'd be curious to talk offline if you have a few minutes - want to send me an email? nathan@[hn username].com

GuiA wrote: I'm starting to be a bit disillusioned with this whole "we can't find great people" spiel that a lot of startups put up.


LOL...it's a scam to depress wages. Immigration always was a scam by the upper class.

"I have never seen a startup regret being generous with equity for their early employees."

Same here. I always advise startups to err on the side of generosity with equity.

The generosity strategy Sam Altman outlines is coupled to a "fire fast" (here, "before cliff") strategy that is hard to execute in practice; it takes a degree of ruthlessness to fire someone not because they're incompetent but because they're not performing at the level required for their equity grant, and it's not the same ruthlessness required to succeed in business. It seems especially risky for the kind of startup team where all the engineers are hired by being referred in by their friends.

I haven't heard of early hires being fired because their performance didn't match the amount of equity they got. All Sam's really saying is that if someone turns out to be so bad that you have to fire them, vesting means they won't have cost you any equity.

I think we read Altman two different ways. I read him as saying that engineers should be issued drastically more equity, and that firing before cliff should be used to ensure that middle-of-the-road developers don't end up eating too much of the equity.

It doesn't need to be coupled to "fire fast". It is only the first quarter (or even 6th in some vesting schemes) that vests after the cliff.

In my vastly more limited anecdotal experience than both of you guys', companies are not just stingy with equity, but they are also overly stingy with salaries.

That's especially true about the ongoing startup myth of underpaying because the equity is supposed to make up for it - and then being stingy with equity. Sheesh. 0.1% of a $50M buyout is $50k... how many years of salary loss is that worth at the risk? And that's assuming that 0.1% doesn't get diluted down to more like 0.05% by later funding rounds.

Another way I could say the same thing that sidesteps your argument is that the more generous you are with equity grants, the more ruthless you need to be about firing.

So then why take options at all? Statistically and economically there's little incentive to at that point, especially if management is going to create this toxic ruthless "fire fast" environment.

The fact that employees and company principles value startup equity very differently is another reason why some companies are stingy about granting equity.

Another way to do this is to start off with a base grant, and then give performance bonuses as equity.

To me this is crazy - it's the most obvious choice to be generous with equity, with so little downside and such immense upside. Who cares how much of the company you own if it's worth nothing? And surely there's nothing more risky to an early-stage startup than unhappiness; if the founders and early employees have disagreements, or harbour any resentment that will cascade out of control.

Generosity begets generosity; treat your team better than they expect and the rewards will come naturally.

I agree completely, but I'll add that equity feels weird to spend. You've got a fixed quantity of it, it has to last you forever, you're spending it on things with hard-to-predict values, everybody wants some, and an important aspect of the fundraising game is protecting equity from predators. At least for me, these things activated my scarcity-related cognitive biases. Suddenly the obvious choice gets a lot harder to see.

Don't think of it it as a % amount but a $ amount - this better matches the reality equity (as dollars) grows as the company grows, and thus isn't finite. Obviously i'm not saying equity is cash, but it IS a high risk investment worth a quantifiable amount of cash.

Can you put a number (or range) on what is generous for the first engineering hire? 2%? 3%? 5%?

Depends on the situation. If you're a single founder and you've only been working on the company for a couple months and the person you're hiring is as competent and dedicated as you are, 50% could be reasonable.

Play out the numbers (assumptions completely speculative):

- How much more would this person make at a big company? ($50k?)

- What's the time frame for success? (4 years vesting?)

- What's the distribution of possible exits? (5% chance of $100M, 30% chance of $10M acquihire, 0.1% chance of $1B)

Under these assumptions, you hit about 2.3% to make the expected values match assuming absolutely no investor preferences (which is itself silly).

It would be interesting to use real seed fund data to generate the distribution and proper salary comparisons.

This is a great post by Fred Wilson about this subject.


Essentially, figure out what market rate is for their salary. Since you'll likely pay a discount rate, the equity should bring them at or above market.

So if Market is 105k, and I'm going to pay 55k, I will give you 50k in equity (based on a reasonable valuation--assuming you don't have an actual valuation).

Using a flat rate percent can get tricky, and you can easily end up unnecessarily diluting yourself.

I also think it's important to think of your first 1-3 hires as Key hires, the same way a new CEO or VP of Sales would be a key hire post Series-B. You want them to get a big chunk of money if there is a positive liquidation event.

A bird in the hand is worth two in the bush.

If market rate is $105k and you're paying me $55k in cash, then I'd want $100k in equity, not $50k. This is something many startups get wrong. It isn't a one-to-one swap.

Even if you have some sort of reasonable valuation, equity is worthless until there's someone to sell it to. There needs to be an uncertainty/illiquidity multiple applied. Otherwise, I'll take the cash. That has literally always worked out to my benefit throughout my 15 year career in software development (even working for companies that got acquired for 9 digits).

I think another way to put it is you need to pay them for the risk they are taking. That's why you can't do a one-to-one swap. If they get the same total amount of money that they would in a more stable position, they have no reason to take the risk.

Fair enough. I was paraphrasing the actual formula.

That said, if you think equity is worthless, why are you considering being employee 1 at a startup?

I never said I thought equity is worthless. I said I would choose cash over equity if the equity is not weighted heavier than cash to account for the risk and illiquidity inherent in startup equity.

I am engineer #1 at a startup right now. The equity was very generous and weighted appropriately vs cash.

Sorry, I mistook your earlier statement to believe that you thought equity is worthless, when you were just saying there is no cash value for equity.

And yes, you're correct, the equity should be setup in a way that offers early hires significant upside.

Curious, did your founders use a flat %, or did they figure out some weighted amount?

> So if Market is 105k, and I'm going to pay 55k, I will give you 50k in equity

Is that 50k in equity every year? Because otherwise, this seems like a terrible deal. Why would any engineer take an offer like that?

50k is pretty low--I should have used a better number. Probably more like ~200k in equity.

From a pure wealth maximization standpoint, you should never work at an early stage start-up. The company will probably fail, and your equity won't be worth squat.

A couple reasons you would consider that deal:

1. Hopefully within 18 months you raise a sizable round and get bumped up closer to market rate.

2. In a year, thanks to your hard effort, your equity is increasing in value, in sizable amounts.

I guess that makes sense. It still seems like buying an (expensive) lotto ticket. Unless the company was doing something uniquely exciting, it doesn't seem attractive to me.

Aside from where the startup is, it is also hugely dependent on who that first engineering hire is. If it's a junior developer with a lot of potential but not much experience that they are taking a chance on because one or more of the founders are quite advanced technically themselves and are willing to mentor, train, etc, even 1% is quite generous. If the hire is either on par with the founders in terms of technical skills and experience or even the sole technical employee expected to be lead the effort and eventually build the team, even 5% can be considered quite low, depending on what the founders bring to the table.

I think the answer is all of the above. Are they pre funding? More risk = closer to 5%. Are they on their third startup with two successful exits and raised $1.5 - $3 mil in Angel already? 1 - 2%. But you're in the right range for sure. (this is the first true outside hire)

Isn't the problem more that the investors are against this rather than the startup founders?

Yup, otherwise have fun with 100% turnover in a year's time. People are jumping companies at a rate I have never ever seen before right now.

> if people are going to turn down the certainty of a huge salary at Google, they should get a reward for taking that risk.

I often see a disconnect between perceptions of expected success of founders and engineers. I've observed this is particularly pointed for non-technical founders. To generalize, a young entrepreneur with some success under his belt is starting a company. As far as he's concerned his company is all but guaranteed to succeed: he's got the experience and sophistication necessary to make this happen, the team he's hired to his point is top-notch, he's got the attention of some investors, the product is well thought out, etc. He approaches an exceptional engineer and extends an impassioned invitation and... the engineer balks.

What happened? Is he delusional about the company's prospects, thinking he's got a sure fire hit when he's actually in for a nasty surprise once his hubris collides with reality? Is the engineer a square who would rather work a boring job at a big company than live his life, and wouldn't be a good fit for the team anyway?

I propose a different resolution: our confident businessman is certain about the success of the company, not the success of the engineer as part of the company. He knows the company's success is going to rocket him into an elite circle of Startup Entrepreneurs. The engineer, on the other hand, doesn't see the correlation between the company's success and his own: even if the company takes off to the tune of eight to nine digits, his little dribble of equity is just barely breaking even over the comfortable stable position he's in now.

This post, I think, makes 2 mistakes.

First, sf and the valley simply don't pay engineers well enough. This is the second, striving to become the first, most expensive housing market in the united states. $150k sounds great here until you look at that as a fraction of your housing cost and compare to anywhere else in the country, including manhattan (because unlike here, nyc isn't run by morons so they have functioning transportation systems). I don't want to just quote myself, but all this still applies: https://news.ycombinator.com/item?id=7195118

Second, immigration is a crutch to get around paying domestic employees enough. I see net emigration from the valley amongst experienced engineers in their 30s who start having families and can find better financial lives elsewhere. If companies paid well enough that moving to the bay area wasn't horrid financially, they'd find plenty of software engineering talent already in the united states. But consider my friend above: $165 total income in the midwest is (compared solely to housing cost) equivalent to approx $450k here, when holding (housing costs / post tax income) constant.

edit: not to mention, companies still don't want flexible employment arrangements or remote work. I'm a data scientist and I'm good at my job (proof: employment history, employers haven't wanted me to leave, track record of accomplishments.) I'd rather live elsewhere. 66 data scientist posts on craigslist (obv w/ some duplication, but just a quick count) [1]; jobs that mention machine learning fill search results with > 100 answers [2]. Now check either of the above for telecommute or part time. Zero responses for remote or part time workers. So again, employers want their perfect employee -- skilled at his or her job, wants to move to the valley enough to take a big hit to net life living standards, doesn't have kids, and doesn't want them (cause daycare or a nanny or an SO who doesn't work is all very expensive.)

[1] http://sfbay.craigslist.org/search/jjj?zoomToPosting=&catAbb...

[2] http://sfbay.craigslist.org/search/jjj?zoomToPosting=&catAbb...

> "$150k sounds great here until you look at that as a fraction of your housing cost and compare to anywhere else in the country, including manhattan (because unlike here, nyc isn't run by morons so they have functioning transportation systems)"

This really is it. I think employers are between a rock and a hard place. Engineering salaries are rising rapidly, but the engineers aren't really seeing the benefits of it - every raise is just as quickly swallowed by the ludicrous housing situation in the Bay Area. Nobody's getting rich except landlords.

And anecdotally as someone who moved from SF to NYC, $150K goes way further here than it does in San Francisco. SF housing is (nearly) just as expensive, and the lack of basic infrastructure means there are tons of little things bleeding you dry at every corner. Buses don't run where you need to go? Call for a Lyft or Uber - individually not very expensive, but it adds up. Death by a thousand paper cuts.

I liked his part where he said "you can find great engineers outside of Silicon Valley."

I didn't like where he said "get them to move to Silicon Valley."

Moving is stressful and costly, even if the company is 100% covering relocation. Moving to Silicon Valley would require a quite significant raise to cover the increased housing costs, which would still leave me with a much smaller house than I enjoy in a top 20 (but not top 5) market.

Living in a high cost of living area is a FANTASTIC way to get your retirement plans going. Putting 10% of your SF income into your 401k is way better than putting 10% of your Austin, TX salary into your 401k. So while you're young and single you bank away lots of cash. Then you move and start a family elsewhere and retire comfortably. The problem is that I don't think enough people life-hack in this way.

This is true, but 401K contributions are capped at around $17K. You can do that with the Austin salary just as well, usually. In Austin you have no state income tax, and the price of everything else is much lower (in general).

The absolute cheapest home near my work with 2 bedrooms is a condo at $700K (source: realtor.com). (edit: that is an outlier, most are considerably more expensive, and these days the 'ask' is the lowball figure - people will bid several hundred thousand over the ask to buy, because they are competing against other twitter millionaires buying for cash and nonchalant about the housing bubble because they can't be really hurt if it crashes)

To get a home equal to the home I moved from in CO (which I bought for $425K) would be, I don't know, nothing is listed to compare. Over $3M I would think. My friend recently sold his house north of that, and his yard was tiny and the house was smaller. My CO house is comparable to a $4-5M Tahoe mountain home - a few acres, awesome views, wooden beam interior, huge open space interior plan, full basement, multiple decks, and so on. (edit: okay, cabinets are Home Depot, not custom built, etc, but it's still a close comp otherwise)

So, yes, if you want to live in a cramped condo, see your money evaporate to taxes, driving to work, private schools, and so on, you can 'life hack' here. Or, you can live elsewhere, own a few acres, have a big garage, a rec room, work normal hours, have half the commute, and still save plenty of money.

> So, yes, if you want to live in a cramped condo, see your money evaporate to taxes, driving to work, private schools, and so on, you can 'life hack' here. Or, you can live elsewhere, own a few acres, have a big garage, a rec room, work normal hours, have half the commute, and still save plenty of money.

While you aren't going to be living on a few acres working at a tech job in the Bay Ara (barring long commutes), you are exaggerating a bit here.

- If you live in SF, you generally don't need to drive to work. Your commute will be short (<25 minutes). You can get quite livable single-family homes (3 bedrooms, 1400 square feet) for $750k. You may want to consider private schools.

- If you live in areas where you want to get good public schools, prices may surge to $900k for homes that size.

tl;dr If you want a huge home with huge lots, yes, very difficult in the Bay Area. But if you just want a typical suburban lfiestyle, it is pretty easy to do on a tech salary.

> - If you live in SF, you generally don't need to drive to work. Your commute will be short (<25 minutes). You can get quite livable single-family homes (3 bedrooms, 1400 square feet) for $750k. You may want to consider private schools.

I live in Dallas, have a driving commute well under 25 minutes, and have a 3 bedroom, 2300 sqft house I paid $175k for with the same stipulation on the schools. Your scenario would be a major cost increase for me. In fact, I could probably max out my 401k here with just the housing cost delta. Austin is more expensive than Dallas[1], but I wouldn't expect to pay more than about $250k - $300k for my house there (for reference, my house is worth about $190k now). I could downsize to your SF-sized house here for under $100k. Since I would realistically only get about a 70% pay raise max over my Dallas salary for moving to SF, it doesn't make any sense.

[1] And my house was a good deal even for Dallas.

For savings, the only thing that matters is the delta between expenses and income. I live in rural Massachusetts and had no problem maxing 401k for 20 years. I used to live in NYC and the delta is way higher here even though the raw salary was higher in NYC.

I'll copy/pasta my response to someone else who made a similar response:

Let's say in SF you get $150k and put 10% away with a 5% match. That's $22,500 per year you're socking away into your 401k. If you live in Orlando and you're making $90k/yr and put 10% away with a 5% match that's $13,500, a net loss of $9k every year in early retirement savings. After compound growth over 40 years of maturity that's going to be a TON of cash. As long as you don't plan on RETIRING in SF, you're much better off working there.

You're talking past each other. The point is that in other places you can save a larger fraction of your income such that you're actually saving more money in dollar terms living in rural MA than living in SF. SF is hilariously expensive compared to any other major city in North America.

Why base your saving % on your salary? Again, delta is all that matters.

From my experience, that delta is higher in low expense areas. The assumption I'm making is that the typical HN'er is a top performer who can demand top percentile salary in any market, or work remotely.

The hack I recommend is getting SF salary in low-cost area.

However, I am quite certain I save considerably more than $9K each year by not living in SF, so I'd still be better off with the $90K income.

No, because in his scenario, in SF you just made $54,000 more before taxes and after 401K contributions. I have no clue what Florida tax rates are, but there is no way that after taxes that is not at least $27k more earned in SF.

It is only correct if the random SF and Florida salaries are correct.

I work in rural MA and make considerably more than the given SF salary (non-remote). The SF salary is probably better on average (the 50 percentile), but I stand by my statement that top performers can command SF salaries in any market. Even if you can't find something local, there are a ton of remote options.

That's a big if. Why would you not max out your contribution?

What you said makes sense to me on its own, but there's more to it than that. If your cost of living is much lower in Orlando, perhaps you can save 20% of your $90k income instead of 10% of the $150k income.

I really enjoy owning a house. I wouldn't be able to afford it in SF. I bought a nice 3/2 in Orlando for only $110k a couple years ago. My dog loves it too. :) So there's also that.

Alternately, you can work remotely for a company in a high-cost area while living in a low-cost area. :-)

Or, you can work in an area where you can strike a balance, where the market/salaries for your field are good/higher compared to the cost of living. While I generally agree with your sentiment, I don't regret enjoying my life as I live it.

Except it doesn't really work that way? If they pay extra in SF than in Austin to make up for the difference in living expenses, your net income pool that you draw from to contribute to your 401k is going to be roughly the same.

Let's say in SF you get $150k and put 10% away with a 5% match. That's $22,500 per year you're socking away into your 401k. If you live in Orlando and you're making $90k/yr and put 10% away with a 5% match that's $13,500, a net loss of $9k every year in early retirement savings. After compound growth over 40 years of maturity that's going to be a TON of cash. As long as you don't plan on RETIRING in SF, you're much better off working there.

But what you have available to save is not a % of your total salary, it's a % of your total net income (salary - taxes - living expenses). If those jobs in SF pay higher wages purely to keep up with the inflated living expenses, then you don't really have more money to devote to your 401k.

Rent becomes a fixed low amount over time due to rent control. Eventually rent becomes negligible. However, salaries continue to climb.

Where in the world does that apply? NYC has some of the most tenant-friendly rent control laws I know of, and most rent-controlled units are fairly close to market rate, and the legends you hear about exist but are so rare they might as well not.

Urban centers have a pretty finite supply of housing, so you're looking at what amounts to a long-running auction for rents among residents. People are generally pretty willing to "bid" 25-35% of their income on rent (or more, depending on the area and demographic), so as average salary rises, rents are going to rise too, unless you're expecting a major urban retreat sometime soon.

“The only thing you need to do is fix immigration for founders and engineers. This will likely have far more of an impact than all of the government innovation programs put together.” - this is so darn true it's not even funny.

Conversely, and I know this is pretty out there, this is what I think will be the killer app of virtual reality. If I can ship a $5K "pod" to a developer somewhere in the world which allows us to work together 90% as well as we can in person, then you're damn right I'm going to do that.

I believe VR tech will get good enough (3-5 years) before immigration issues will be sorted out (10-20).

Immigration issues are easy to sort out. H1-B's automatically convert to Green Cards after 12 months if the person is still employed at the company. Company is responsible for the expense of the security check.

It solves both the H1-B limit and the engineering shortage in one fell swoop.

However, NO company lobbies for this because they like their 5+year indentured H1-B servants.

Taxing that is going to be fun.

Why? It's no more complicated from a tax perspective that remote work is today.

Broken record: startups are also probably rejecting a lot of engineering candidates that would perform as well or better than anyone on their existing team, because tech industry hiring processes are folkloric and irrational.

I co-manage a consultancy. We operate in the valley. We're in a very specialized niche that is especially demanding of software development skills. Our skills needs also track the market, because we have to play on our clients turf. Consultancies running in steady state have an especially direct relationship between recruiting and revenue.

A few years ago, we found ourselves crunched. We turned a lot of different knobs to try to solve the problem. For a while, Hacker News was our #1 recruiting vehicle. We ran ads. We went to events at schools. We shook down our networks and those of our team (by offering larger and larger recruiting bonuses, among other things).

We have since resolved this problem. My current perspective is that we have little trouble filling slots as we add them, in any market --- we operate in Chicago (where it is trivially easy to recruit), SFBA (harder), and NYC (hardest). We've been in a comfortable place with recruiting for almost a year now (ie, about half the lifetime of a typical startup).

I attribute our success to just a few things:

* We created long-running outreach events (the Watsi-pledging crypto challenges, the joint Square MSP CTF) that are graded so that large numbers of people can engage and get value from them, but people who are especially interested in them can self-select their way to talking to us about a job. Worth mentioning: the crypto challenges, which are currently by far our most successful recruiting vehicle (followed by Stripe's CTF #2) are just a series of emails we send; they're essentially a blog post that we weaponized instead of wasting on a blog.

* We totally overhauled our interview process, with three main goals: (1) we over-communicate and sell our roles before we ever get selective with candidates, (2) we use quantifiable work-sample tests as the most important weighted component in selecting candidates, and (3) we standardize interviews so we can track what is and isn't predictive of success.

Both of these approaches have paid off, but improving interviews has been the more important of the two. Compare the first 2/3rds of Matasano's lifetime to the last 1/3rd. The typical candidate we've hired lately would never have gotten hired at early Matasano, because (a) they wouldn't have had the resume for it, and (b) we over-weighted intangibles like how convincing candidates were in face-to-face interviews. But the candidates we've hired lately compare extremely well to our earlier teams! It's actually kind of magical: we interview people whose only prior work experience is "Line of Business .NET Developer", and they end up showing us how to write exploits for elliptic curve partial nonce bias attacks that involve Fourier transforms and BKZ lattice reduction steps that take 6 hours to run.

How? By running an outreach program that attracts people who are interested in crypto, and building an interview process that doesn't care what your resume says or how slick you are in an interview.

Call it the "Moneyball" strategy.

Later: if I've hijacked the thread here, let me know; I've said all this before and am happy to delete the comment.

> we use quantifiable work-sample tests as the most important weighted component in selecting candidates

Can you speak to that a little? I'm reading it as either programming challenges in a real environment, or analysis of previous code snippets submitted. In either case, I'm happy to see more companies doing this.

I'm always looking for ways to improve my interview skills, but I want to do it honestly. Studying to the test isn't fun for me, I would rather hack on something.

Most programming puzzles aren't real work-sample tests. A work-sample test has to be representative of the actual stuff you'd do on the job.

The trick is, to work in a recruiting context, you also want those tests to be standardized and repeatable. A lot of companies fall down on this. They have candidates do "real work", often in a pair-programming context. There a bunch of problems with this:

(1) "Real work" usually isn't standardizable, so you can't compare candidates

(2) Signal quality from the test is intensely dependent on who is doing the work with the candidate

(3) Two different candidates might end up getting "tests" that are wildly different in terms of predictive power

I have a bunch of ideas for pure software development work-sample tests, but I'm not ready to share them. The idea is simple, though:

* It's a realistic exercise that approximates actual day-to-day work as much as possible

* Every candidate gets the same exercises

* The exercises have objective (preferably gradable) outcomes

So accurate. I'm a grad student who studied security deeply during my time in school.

I want to keep my hands on a keyboard and I don't like airplanes (which rules out consulting) so I've applied at a lot of companies to be a ``security engineer''.

I can't tell you how many well-respected companies ask me to write min-heaps, depth-first searches, etc. I don't understand what they are asking me this for...It isn't even close to a realistic representation of what my day-to-day responsibilities would be. It is also an immediate turn-off....

I don't understand how there can be a good hacker that does not, at least on some intuitive level, get such basic data structures or algorithms. I don't mind if someone doesn't know what depth-first search is, but I should be able to explain it quickly and they should be able to come up with at least pseudo code. The relevance of this to software engineering roles just seems too great.

Cramming these questions online does not work. I don't know what Facebook/Google et al are doing but I can spot a candidate who studied interview questions from a mile away. They may bang out a DFS by rote but that's just warmup; they should be able to talk about details, deal with changing requirements, discuss the algorithm/efficiency/design of their solution, be able to talk about underlying data structure primitives, etc.

To be fair the grandparent was talking about a specialized position in security engineering for which the generic coding interviews could be a bad match.

>I don't understand how there can be a good hacker that does not, at least on some intuitive level, get such basic data structures or algorithms.

And I don't understand why someone who spends his time up to the eyes in crypto proofs, exploit code, and research articles should have to cram for an Algorithms 1 exam for each interview.

I've seen these questions used well (had a neat discussion with a start-up CEO in Boston once about reimplementing a toy Twitter in Scala), and really brilliantly (another start-up in Boston once asked me to describe my favorite algorithm and got a short, ad-hoc tutorial in lottery scheduling), and really, really badly (BigCos asking stuff you'd see on an undergrad-level exam from years and years ago).

Strangely enough, I'm praising the two startups that didn't offer me a job (though I'd really like to reapply to that second one), and condemning the BigCos (you know who I mean) that did offer me a job.

You're right it isn't well suited for security people.... But is it well suited for software engineering types? Most code people write is not a search sort insert etc. Most of the details of using these data structures are invisible in oop and the difference is only what class was instantiated.

I'm not saying it isn't important to know, but I think there are better indicators for someone who will perform well on the job

Sure, but these tests are necessary without being sufficient. I'd expect that performance in these tests is predictive up to a certain level but that being really good at them versus just performing decently is not nearly as predictive for actual job performance.

Similar story here. Now not only these "big" companies as Facebook, Google, Microsoft focus mainly on algorithms and data structure during interview, to my surprise some of the early startups ask heavily for whiteboard coding...

It's no surprise these companies rejects many really good hackers (at least from people I know... yes, I admit the small sample size) and accepts these just optimize for algorithm preparations by doing a set of online coding problems.

The startup industry saw the same kind of interviewing voodoo in the 90s, copycatting how Microsoft conducted them.

They're asking you that because there are lots and lots of candidates who look great on paper but don't actually know anything. I have personally met several.

I wouldn't ask a candidate to implement a min-heap (mostly because it's kind of obscure and I'd have to think about it) but a depth (or breadth) first search is something I'd expect any competent candidate to rattle off in a heartbeat, just because it's such a fundamental cs principle that gets used in lots of places and, unlike things like sorts, doesn't really have a good library to fall back on in practice.

Believe me, I can and do implement them, but I always do so backhandedly. ``I am a security engineer, what does this have to do with security''.

In reality, I have not accepted an offer from any companies who ask me these questions because most of the positions are not exactly what I am looking for.

Also, I tend to disagree. Some of the best security guys out there never went to college. It's hard to expect these guys to know algorithms and datastructures even if they are really gifted exploit developers, or the like.

edit: To clarify. What this really shows is that I am not being interviewed by a security person...ie there is no special interview process for my position compared to a regular software engineer.

I really doubt that it's possible to be a top exploit developer and yet be unable to implement BFS/DFS in under fifteen minutes. Some things really are just the absolute basics. If it never goes further, then that's a problem, but there are enough people out there who can't write ten lines of code that you have to weed them out.

My cousin's employer has started using Javascript Under Pressure [1] as the first round of technical interviews - it lightens the mood, and fully half of the people applying for a front-end development position at his company can't finish the first one, which is literally to write a function that returns the argument multiplied by two.


Relaxing with a few beers at home, this was fun. "12 minutes, 19 seconds for all 5 levels. Well done!" Don't care that I'll be blasted for being a slow old man. Come on, you know you want to! Stallman, babbage, lovelace and torvalds await.

That was great fun for non webdev Javascript coder, and I was about 3 mins in and finishing 4th problem.

However, getting one of the tests wrong in 4th problem because of two chinese UTF-8 symbol having more length than "tiny" kind of irked me and reminded me why I do not do webdev.

I suppose this is actually a good kind of test, because real webdevs would actually have learned not to use s.length but use something else.

What is it though? This seems like a Javascript fail more than anything else.

I just did that and I'm pretty sure I used "s.length()" and I didn't even notice any Chinese characters.

I had to check typeof (apparently those two chinese characters are not a string) to fix this, again this is actually useful, but was not expected given the ease of first 3 problems.

Please put a warning if you link to a site that auto-plays audio.

Gah, that made me jump.

Ok, that JavaScript under Pressure is a lot of fun and it would make a great ice-breaker.

I doubt "the best security guys" end up with the same interview experience. If you are widely known in the industry as an expert or the best at something I think the process to obtaining a job is significantly different from someone applying for jobs.

Not here. I am way more scared of the "best" candidates than I am of the normal ones.

I would imagine with someone like Bruce Schneier, you'd be paying them for the name and not their output. Google did it with a bunch of legendary computer scientists. Their role is mainly to get top notch junior people to come work there.

Really, that's surprising to me. Would people of Bruce Schneier/Fyodor/et al stature go through the same interview process that everyone else goes through? I'm pretty sure they wouldn't at a big company but you guys do things differently (for the better it seems) so maybe?

Yes, they would. I am 100% sure of it.

For all I know Fyodor is a collective of cheap developers and designers from far-far-away coordinated through an outsourcing agency with a single front figure reading from a teleprompter.

That would still be a notable effort, but I'd like to know who I'm hiring and for which qualifications (cat herding or design and implementation).

Do you also feel that Bruce Schneier could be a collective of cheap developers? That seems like a pretty odd position to take give Fydor's identity is widely known. (http://insecure.org/fyodor/)

"For all I know Fyodor is a collective of cheap developers and designers from far-far-away coordinated through an outsourcing agency with a single front figure reading from a teleprompter."

And would that matter?

In general? No.

When the teleprompter reading person applies for a security job they're supposed to do alone? yes.

What kinds of questions would you expect to be asked for an interviewer to distinguish you from someone who looks good "on paper" but is a big phoney?

We apply a "peer" interview model, where candidates before being offered a job have to sit down with two of their future peers. This takes care of the phoneys as their (already successful) peers see through the posing.

Interview Process is: HR filter -> Manager interview -> Grandfather (Manager's Mgr) interview -> Peer meeting

The peer meeting isn't conducted in an interview setting. It's more informal, adapted to the needs of the applicant. It could be a lunch or a dinner and once it was even participating together at a hackathon.

We carefully select peers against "buddy bias" and encourage diversity in the workplace.

Our company is over a period of several years very successful in recruiting and have very little turnover. The biggest drawback could be that we are "too picky" and thus (at times) have problems growing fast enough.

Exactly. A false positive in the interviewing process (hiring a dud) is much more likely than a false negative (turning off a great candidate).

The secondary reason to ask these easy basic dev questions is an attitude check. Someone who gets personally offended at being asked to do something that is easy for them has a risk factor for being a poor teammate.

> A false positive in the interviewing process (hiring a dud) is much more likely than a false negative (turning off a great candidate).

I see statements like this thrown around a lot. Do you have precision/recall/F-measure numbers to back this up?

The most famous example I know of is the guy who implemented a FizzBuzz test and thereby eliminated the vast majority of programmers who otherwise appeared qualified on paper and in person. I don't have the link handy but I think it was covered in codinghorror.com.

I have been very interested in running a similar experiment myself, but alas I am not a hiring manager. As I recall from that example, there were no details of what counted as "qualified" on paper and in person.

> [...] unlike things like sorts, doesn't really have a good library to fall back on in practice.

Depends on your language. Some are better able to abstract and express this `pattern' as a library.

We actually took a few things that we wrote in the infancy of the company and turned them into work-sample tests. We use the same test for everyone so that we can grade effectively while still ensuring that it's a good sample of what they'd be working on (because it's something we actually did!).

We have a front-end and back-end test. I'm sure that at some point we'll grow large enough that solutions to our test will be posted online but I'm not going to worry about it right now.

They won't be posted online because my team will have put you out of business by then.

This approach will be difficult for firms that use contingent recruiters, because the recruiters will be incentivised to coach candidates.

Does anyone have any luck with outsourced recruiters? From where I stand, they seem like a bane of the industry.

Was going to answer this but then saw the child comment say this:

"but only because a) he was really hungry at the time b) he really went out of his way to build up a lot of contacts with a lot of top-notch talent."

And that was really the essence of what I was going to say. I think after a while anyone who is busy and being paid in the manner that a recruiter (or real estate salesman) is is going to go for the easy route and the low hanging fruit. Especially as they get busier. Because back and forth is time consuming.

It's kind of like a satisficing model. You need to keep the client happy enough to keep sending you projects and no more than that. [1]

Consequently in theory a new and hungry recruiter is really the one that will give you the best results but that assumes they have a file full of candidates and that kind of contradicts being new.

[1] There is truth to that book that stated that real estate salespeople get more when they sell their own house than your house. 3% of $10,000 is not $10,000 and it pays to move on to the next deal in your book.

I've never understood paying 3 recent to sell a house, especially in these times(Internet), and some markets sell themselfs(Bay Area). Plus, the full commissions usually go to the best salesperson, or Cheerleader. It's eight courses! Two years for a broker--who most likely got their brokers license with any four year college degree. (Yea--most of these guys partied through a bachler's degree before this year and got their broker's license. They lobbied Gov. Moonbeam to make it harder for anyone else to do what they did--The Terminator saw right through the ploy, and vetoed the bill--ironic?) Success is moving Realestate. The average homeowner only realizes they could have got more after they do their homework, but that never really happens--they go into denial after the sale. It's done.

I've never seen a industry that needs a fresh, iron clad Application, but it has to be top notch. A hungry, smart developer could revolutionize the Realeste market with the right code, and eliminate Realtors to a history wiki. Plus--I would never need to look at their stupid smiling faces everywhere. And yes, I know a house is the biggest thing you will ever own--you need hand holding? That's all your full commission will get. Smart Realtors always cover their asses legally if you buy a Lemmon. This is just my rant on Realtor's--especially full commission brokers. The above post reminded me of how arcane buying a house is.

We've had some good luck with a single one, but only because a) he was really hungry at the time b) he really went out of his way to build up a lot of contacts with a lot of top-notch talent. In a lot of ways, he was a lot more like an executive placement consultant, only placing software developers.

The large bodyshops, OTOH, seem like a colossal waste of time to me. I don't trust them, and the candidates they offer have been almost uniformly disappointing.

I've hired a number of engineers through agencies. It's a PITA because our incentives aren't aligned but I've found a few things to help. One is to be firm with recruiters and not to care about your relationship with them. In a place like NYC where there are hundreds of firms constantly trying to work with me I make it very clear what I expect of the recruiters. If they don't give it to me I move on.

Perhaps coincidentally, companies say there is an engineer shortage while at least 80% of the Rails jobs on LinkedIn & Craigslist are posted by recruiters. Recruiters may simply be ruining the employment market, probably as a gold rush.

I have exactly one that I think is good in 21 years in the field. He actually understands his candidates at a moderately deep level and I can get on the phone with him, describe what I'm looking for, answer his questions, and a week later get a handful of resumes with his notes attached after speaking with the candidates.

His "secret" is that process, which also allows him higher than average access to passive job seekers. Let's face it, many (not all, but many) of the "best" candidates already have a sweet gig and aren't pounding the pavement looking and mindlessly applying to every job posting. This recruiter calls them and they take the call, because he's not just matching asses and seats like it was a musical chairs problem.

Candidates like him (he placed me once 17 years ago) because he's not perceived to be a time-waster, and hiring managers like him because I get better candidates through him (albeit at a lower volume and I "can't afford" him for every role).

That's responsive to your first sentence; to your second sentence, I generally agree. I have the luxury of having a strong in-house recruiting team, who are willing to selectively and smartly use outside agencies when it makes sense. As a result, I get to direct the flow of nonsense from outside agencies at my in-house team. ;)

Anecdotally, I know of an experienced and competent engineer who actively sought out a recruiter, hoping to find a job in Silicon Valley (which he did). Some people just can't be bothered with the interview grind, and if you know you're good, why not have a recruiter do a bit of the grunt work for you? But I suppose this could be an edge case, where a legitimately good candidate actually works with a recruiter.

I tried that route to no success. My problem, back when I actually wanted to work in SV, was I found it to be an impenetrable bubble. There seems to be a serious delusion that any engineer worth a damn will move to SV of their own volition, so the only reason to look outside is to try to snatch the top talent from the top schools elsewhere.

I have had good enough luck that I won't dismiss a recruiter outright.

I treat recruiters like widening the funnel, and haven't found any correlation that suggests they produce better results.

I have found the best results is hitting people up through linkedin.

We've had success with this approach with outside recruiters. Generally the recruiters aren't skilled enough to coach a candidate on the tasks. But in the case that they are, one of the components of the onsite interview is a code review of the code the candidate wrote. This usually includes me challenging design decisions and then changing up requirements and asking how the code would change. So even if a candidate WERE to be coached by an recruiter, the candidate would have to really understand the code they wrote and why they wrote it.

If the recruiter can coach the candidate, you should hire the recruiter to program for you.

They don't need to be skilled. They just need to debrief the people they send you post-interview.

Who asks programming puzzles anymore?

When was the last time you applied for a software developer job?

Before Matasano, if you don't count clients interviewing us.

Who asks programming puzzles? Read interview postmortems. The answer appears to be "everyone". We are probably just talking past each other: asking someone how to sanitize an input or parse an HTML document during a face-to-face interview is a "programming puzzle".

It's hard to imagine that Facebook, Twitter, Dropbox, Google, Amazon, Apple, and all the rest of the companies that hire software developers, who have more or less the same type of interview, have gotten things wrong, yet have been so successful in hiring good people and building good products.

Perhaps the real problem is that those companies have taken all the people who perform well at whiteboard interviews, and what's left are people who struggle.

Still, I wouldn't say the system is flawed because it selects a certain type of people. Clearly those people do well.

It's not at all hard to imagine that the best known company in the industry, the one that spends the most on direct outreach to clients, whose compensation system more or less sets the standard for the industry, a company that is essentially rolling in money, is able to make a conventional recruiting process viable for itself.

Having said that, if you talk to Google people who are close to hiring, especially about the process that connects "interviewers" to "recruiters", I don't think you're going to hear consistently good things about how the system works in practice.

Googled used to do the puzzle thing and gather copious metrics on how it worked out- it turned out that it didn't.


Note the word programming. If a brainteaser puzzle has nothing to do with the job you'll be performing then of course it won't indicate real-world performance as well as one that's related to the opening at hand.

Yet, these large companies are always desperate to aqcuire, or 'acq-hire' smaller companies.

It's easy to imagine that smart people's thought processes are imprisoned by their own egos. It is an easy trap for a smart person to fall into.

Algorithmic testing has real practical implication if the role requires it, which a subset of the engineers at the aforementioned companies will use.

The other practical implication is standardization of the interview process, rooted around an academic background in computer science. It's easy to test whether someone knows a "fundamental" (whether it's actually fundamental to the job is another question) cs data structure or algorithm.

The idea is, interview for square pegs, since it is easier to measure the quality of that particular shape at scale. If there is a high-quality peg that happens not to be a square, it is a loss that the system is willing to accept, provided that a large enough % of the good candidates are squares.

Great points.

Though I believe algorithmic knowledge is a lot more practical than people give it credit for. I'm not talking about crazy graph searches, or implementing A* in ASM.

Are you going to be efficiently searching strings, or reordering arrays, full time? Probably not, but you will likely come across a time where you will need to think about the consequences of your design, even in a simple crud web-app. And that stuff is important.

> It's hard to imagine that Facebook, Twitter, Dropbox, Google, Amazon, Apple, and all the rest of the companies that hire software developers, who have more or less the same type of interview, have gotten things wrong, yet have been so successful in hiring good people and building good products.

It could be also cargo cult.

If you are a startup, how you will add a technical founder or a first technical hire? Just by his/her ability to write O(log n) searchs in a whiteboard or you will dig deeper and make sure is the perfect match?

Hopefully the startup will dig deeper.

Early in the life of your company you're hiring for very long term, and you need generalists.

Unless your company is building a product around whiteboard coding or something.

The point you are grazing is that this approach results in many false negatives, and few false positives. This is workable for companies that are consistently able to attract large numbers of candidates, such as the ones you listed. (And yes, there are false positives. I personally witnessed someone at a large company who was very adept at whiteboard coding, and a very lazy employee.)

You've said it more eloquently than I can, but I want to bring up that:

"results in many false negatives..." is not some universal truth.

Is there evidence that shows current software interviews turn down way too many great candidates?

There should exist a large enough group of developers who have been rejected a number of times[0], who have gone on to be very successful[1] in their careers. Does this data exist?

I agree that the current process isn't perfect, and it does produce some false negatives and some false positives. The amount which, has yet to deter me from beliving that the system works, as intended. Certainly there are some fringe candidates, who are turned away, but I don't think it's as onerous as people are making it out to be.

Also, most companies didn't start out with unlimited piles of cash, nor could they have their pick of employees. They had to work at it, and I don't believe the culture of their hiring has changed significantly.

For the record, I struggle with traditional coding puzzle interviews. But I also know coding on the whiteboard is a skill, which can be practiced, and with time, improved upon, such that if you are a really good developer, but struggle with passing interviews, you can deal with that problem by becoming better at interviewing.

Or you know, create something awesome, and never have to worry about interviewing again.

[0] Failing one or two interviews isn't really indicative of anything. So this group would require consistently failing multiple standard coding interviews.

[1] How to measure success? I say gone to be a major contributor to the success of a company, or built their own company that is considered "successful."

We turn down candidates all the time. No doubt that many of those go on to find success elsewhere, especially the ones that we turn down for fit (cultural or candidate expectations).

It's an open question whether a negative for fit is a false negative or not. If someone wants to be a foo and the need that I have is for a bar, it's a true negative for us, but when that persons goes and finds success as a foo somewhere else, I'm not sure where to put them your data set.

Even for the false negative, how would I possibly know what career path they took after that? I certainly hope it turned out well for all of them, but I have no practical way, not to mention no incentive, to find out.

To flip things around: would you hire someone who was a really good fit, but was weak technically?

I'd add to this that either way, whether interviews work or not, the problem is more complex than that: is the potential hire at the right point in his or her life to work for you? Are current open positions a good fit? Will the team get along? This may speak more about less mature candidates, or for smaller companies with more specific skill requirements, but my ultimate point is that rejection shouldn't be forever but few companies take that route...

Your post seems to employ circular logic. You're asking for evidence of one of your assumptions:

> Failing one or two interviews isn't really indicative of anything.

Apologies for the logic fail.

I'm asking for evidence that shows candidates who have routinely fail traditional software interviews, have gone on to be above_average -> exceptional in their careers.

My hypothesis is that if traditional software interviews have systemic and endemic flaws--that is interviews produce there are a lot of false negatives, there would exist a large group of people who have failed continuously, but have yet gone on to be good-to-great elsewhere.

Getting a no hire from one or two companies, would not classify a person as a "false negative", it could be (as others have mentioned) an issue with fit.

Well add 1 to the "rejected but went on to be awesome" Brian Acton.

I've had to do a bit of sanitizing input and parsing HTML documents "for real" at my job. It's not a primary duty, of course, but it comes up now and then. It seems like a reasonable test for "can they actually write some code to a well-defined spec," although probably not a great test for "are they good at working on a team and architecting bigger projects."

This is also a practice that is extremely easy to teach and fix.

But can be very costly to your business.

SQL Injection--not html parsing ;)

I was about to simply repost this sentence as its the HEAVY substantial bit of the post.

What does it mean? Throw engineering problems your CURRENT team has solved in the past at new candidates. I have seen only ONE startup ( even among the nastiest of hard problem seekers ) GET how substantial this is. So many of these companies are too busy to think about smart sourcing, at their own peril.

Test new engineers off past solved problems. End of story.

I like this guy's stuff: http://codingforinterviews.com/

I wonder if some companies are accidentally scaring away potential candidates even earlier in the process. I've personally shied away from many job postings that are asking for "rockstars" or "only the best", since they don't generally seem to be interested in "intelligent problem-solvers who don't know every intimate detail of the latest JavaScript framework or nosql database, but could learn quickly if needed".

  we interview people whose only prior work experience is
  "Line of Business .NET Developer", and they end up
  showing us how to write exploits
I am surprised you sound surprised. Do you label people by the kind of technologies or jobs they held? I mean, you argue against it, which I think is a positive argument, but somehow it seems that the labels people place on technologies and business domains are somehow rubbing off on the people who were using them. Feels myopic to me.

Zero prior cryptography experience. Zero work history in software security. Hired through a resume-blind work-sample process. Goes on to successfully implement a crypto attack that fewer than 10 people in the world have probably ever implemented before, one that requires debugging a lattice reduction step that takes 6 hours to run before you get to the part where you use a Fourier transform to postprocess the result.

Or: Zero prior software security experience. Zero prior Rails experience. Zero prior Ruby experience. Hired through a resume-blind work-sample process. Looks at Rails for the first time, 30 minutes later reports a vulnerability that results in a CVE and a Rails patch. Repeats. Now runs Rails internal review board.

I have other examples. Worth knowing: we aren't Rails neophytes (for instance, we're one of the firms that reported the YAML code execution bug) or for that matter crypto neophytes.

It's not about what technologies you use; I don't so much care whether someone writes .NET code. It's the "absolutely no prior work experience doing this and no flashy resume to get them in the door" that stick out to me.

Some of the best software engineers are .NET and Java software developers. These are the guys running massive systems, but no one ever hears about because its boring government/corporate work. But that work is infact the most challenging. Imagine the amount of transactions a bank has to handle every day, without fail!

It's just that Hacker News biased to a certain section of society.

And they tend to be complex systems with a lot of edge cases and you start getting a feel where all the edge cases actually lurk.

Did this guy have a math background? Was he coming up with the solution to the problems on his own from scratch?

Amen on the Moneyball approach.

At my last company, we did a traditional interview plus a pair programming interview. Eventually, we moved the pairing interview up in sequence, because it gave us far more information than the traditional stuff. It let us see what they could really do, and told us a lot about how they worked as part of a team. Mere questions don't get at that.

We also paired most of the time in the course of our work, which gave us a lot more room to take hiring risks. If somebody was bad, the amount of damage they could do was limited. If somebody was just uneven in skill profile, pairing let us take advantage of their strong points while mentoring them in their weak points.

I'd love to hear what else people using a Moneyball approach are doing to reduce risk and increase yield after hiring.

> startups are also probably rejecting a lot of engineering candidates that would perform as well or better than anyone on their existing team, because tech industry hiring processes are folkloric and irrational.

That sounds right to me, but I'm wondering if there's any evidence to support the claim.

To me, the smoking gun is the fact that there is near-universal agreement that we're in a talent crunch, but at the same time successful startups are demanding that candidates accept temp contracting roles to mitigate the risks of bad decisions.

Couldn't that be because startups have to "lower their standard" for engineering interviews, since there's a shortage of people who will perform up to their standard in an interview? In other words, if there is a shortage of experienced candidates who can nail the interview, startups might be willing to go for people with less experience who they believe will be able to learn quickly and end up being valuable team members.

Of course, this assumes that a trial (say, 30 days) can give a lot more information about the long-term potential of the candidate than a day-long interview, which feels like a reasonable assumption to me.

For some companies the standards are not entirely meaningful. Must have 3.9 GPA from an Ivy League school, know [obscure library] in detail, have experience in Scala and Lua and OCaml and Julia, as well as a deep passion for cricket. Then, once this person is found, they put them to work building a Rails CRUD app... There is some hyperbole here, but not too much.

I think I lost one job because I used emacs and they used vi.

I'm not wholly disappointed, because 1) I finally got around to using vi, spending a solid week using it and only it, as my homework[1] for the company, and 2) you don't want to work someone that only hires clones of themselves.

[1] They didn't assign it to me, but I'm always looking for something interesting to do, and since I was serious about wanting to work for them I did it to ease my eventual on-boarding.

A company-specified text editor is a indicator of an unbearable degree of micromanagement.

Be happy you don't work there.

They did a lot of pair-coding, so I'd see a common development environment as acceptable.

Sounds like one of those 'boutique' consulting agencies that likes to build 100% mandatory pairing into their costs when billing clients for their sake.

Are you sure you didn't get the job because you used emacs? I can't see why that's a reason for not hiring you. As markrages says, if this is true, it's some inconceivable degree of micromanagement.

This comment is the vulgar truth.

The industry wants hordes of people who color by number with the newest frameworks, not hackers.

The question as I read it is, is there evidence that conventional hiring practices are ineffective?

I didn't provide evidence, but did point out what I see as a smoking gun, which is the trend of temp-to-perm hiring.

Temp-to-perm is not conventional hiring; if you do it, you are not hiring the way AmaGooBookSoft hires. That you would do it at all suggests that the conventional hiring process isn't effective.

At the same time, temp-to-perm makes it harder to find people; it (almost) has to, since asking a candidate to accept a monthlong (or even weeklong) contract is onerous. People forget that candidates often interview at multiple companies; a week off work seems reasonable when you don't consider that it's a process that might repeat 2, 3, or 4 times for a given candidate.

> The question as I read it is, is there evidence that conventional hiring practices are ineffective?

There is clearly evidence that the entire hiring process leaves much to be desired. Temp-to-perm is obviously not ideal. I'm just wondering whether the problem is that companies are relying on the temp-to-perm pattern in lieu of better available alternatives, or if the temp-to-perm pattern is simply the best option because there is genuinely a short supply of experienced, easily recognizable talent.

In the last 10 years, I've never interviewed anywhere on the east coast that wasn't 3-month contract-to-hire. Then again, that was all through recruiters. I don't work as an employee anymore, and I don't deal with recruiters, so I'm not sure what it's like now. However, there doesn't seem to have been any sea-changes in the market around here, so I suspect everyone is still doing it.

Really? I'm in the Boston market, and we don't use contract to hire as a strategy, and to my knowledge, none of our primary direct competitors for engineering talent do either.

(We will occasionally hire an ex-contractor, but that's the exception and they were genuinely a contactor first. No one comes through the front do applying for a full-time position and gets offered a contract-to-hire.)

Well, to be fair, I hadn't ever applied for anything in Boston. Also, I acknowledge that not all places may do this, just that I've never encountered one that didn't. Which could say more about the quality of the recruiters I was using than anything else.

Basically, in a 300 mile radius around Washington D.C. there is apparently a shit ton of little, bullshit consulting agencies. There are at least two in even the small towns. Bullshit consulting agencies are the type I'd expect to do contract-for-hire.

It's also, for no reason I understand, the only types of places that would ever look at my resume. Perhaps that is because the alternatives to the consultoware places are health insurance companies (which I patently refused to apply to) and financial services companies (also not terribly appealing). Those sorts of places always looked like they were exactly the same sort of poorly managed shit-show as the consultoware places, just that the client was in-house. Not much consumer-facing software being made out here, I guess.

Mitigating risk by contract-to-hire might be reasonable in some European countries where firing is rather complicated. But, what's the problem in US? I thought it was extremely easy to fire people there.

Most European countries allow a probation period, in which you can terminate the employment contract very easily. It's not even reasonable in Europe.

You are qualifying this with the word "successful", but is it really the case that high-quality candidates are putting up with temp contracting roles in lieu of an immediate "permanent" position? That seems like prima facie evidence that there is not, in fact, a shortage of high-quality candidates.

The later says nothing about the former, IMHO. Even if there's a crunch, a bad hire is a bad hire.

The point isn't that bad hires have become less tolerable; it's that conventional interview practices are so unreliable that startups have taken to doing things that actually make it harder to attract candidates in order to mitigate their risks.

Good point.

"if I've hijacked the thread here, let me know"

Excellent information. You gave some thought to the process and stopped going for the legacy solution to the problem.

Would like to point out to anyone that you can actually do a version of this even when the company isn't doing the last 1/3 and being the one that is creative. That is you find a way to separate yourself from the crowd in a way that removes the resume, interview and credentials from the evaluation process.

My example of this is to go for the job that isn't being advertised or that the company isn't even hiring for so you aren't competing with the other person with a better resume.

I did this when after I sold my first company I landed a sales job at a tech company never having sold that type of product and really having very little experience (in that) at all. They weren't hiring so I wasn't being compared to anyone else just to whether I could do what I proposed to them. For that matter anytime I sold a product (for something for two different new companies I founded) at the start by cold calling I was doing a version of the same thing. They just evaluated whether they needed the product/service not whether I had something better than the other people who visited.

I guess the bottom line is whether you are looking or "looking for" you need to do outreach which is really just selling in a creative fashion.

From my brush with Matasano recruiting, I have one main thought.

When I got the first phone screen, I mentioned that your hiring page said to expect about a month-long hiring process. The response was that that was for someone with experience in the field. OK.

Since I had no relevant knowledge/experience, you (I'll use "you" to refer to Matasano) sent me WAHH, and said to read it, and contact you when I thought I was ready. I wrote back, asking how I'd know when I was ready (remember: no knowledge or experience). No response, ever.

I hope the prerequisite to interviewing at "entry level" in Matasano isn't full mastery of everything covered in WAHH. The last of my textbooks that I've looked at and thought "I know everything in here" was my middle-school algebra text (this one: http://www.amazon.com/Algebra-Structure-Method-Book-1/dp/039... ). And there could easily be something mentioned in there that I don't know; I made the determination by looking through the table of contents. Every one of my later textbooks mentions something I don't know in the table of contents.

I don't think I've just failed to accomplish anything at all since taking middle school algebra, and even restricting discussion to school math classes I have some accomplishments beyond that point. So the impression I got was of a ridiculously unachievable standard for interviewing, that maybe I'd be ready to interview after several years of work in the field. Or maybe not.

1. you didn't tell them you were ready. instead, you asked irrelevant questions. how are they supposed to tell you when to feel ready?

2. you sat around and waited for them to contact you. they have other, better shit to be doing, i assure you of this.

3. being aggressive and having initiative and believing in yourself is a big part of getting hired. if you don't have those things, you probably won't get hired in a competitive environment.

>> Tell us when you're ready.

> What does "ready" mean?

That's hardly an irrelevant question; it's impossible to know that you're ready without knowing what being ready entails. Are you trying to select for people who are confident they can already do anything no matter what it is?

"ready" means "ready to move forward in the interview process". What else could it possibly mean in this context?

Well, the definition of "ready" you offer seems to be something like "desirous of concluding the interview process quickly". I want to know about the useful sense of "ready", "likely to conclude the interview process successfully". Quickly getting a rejection is of very little benefit. Obviously, when I first contacted them I wasn't hoping to prolong the interviews as long as possible; they told me that I wasn't ready to continue at that time. But they also told me that I should be the judge, based on no criteria, of when I was "ready" to continue.

I'm not sure why you think what I said means "desirous of concluding the interview process quickly", because I didn't use most of those words and you appear to have pulled them from thin air; frankly, that's weird.

They gave you plenty of criteria; they gave you a book, and the understanding that they wanted you to be able to talk intelligently about the material that the book covers. If you're so incapable of self-introspection that you can't accurately judge how well you understand material without external validation, then you should probably work on developing some self-awareness before getting upset that a company doesn't respond to arbitrary requests for meaningless information.

> I'm not sure why you think what I said means "desirous of concluding the interview process quickly", because I didn't use most of those words and you appear to have pulled them from thin air; frankly, that's weird.

I rephrased you because, if I just quote you, there's no indication that I understand what you mean by the words. You seem to indicate that I in fact didn't. I'm going to call that a success for rephrasing. If I get you wrong, I hope that you'll tell me what you actually meant, which you didn't do here.

Let me try saying things another way. If I ask, "what does 'ready' mean?" and you reply "it means 'ready to move forward in the process'" (my emphasis), you've defined "ready" by reference to itself, which is obviously incapable of being helpful. So I did my best to determine what you might have meant. The entirety of my complaint is that, lacking domain knowledge, and faced with a job ad saying "no knowledge is necessary to apply", I was told "you're not ready to apply, come back when that's no longer the case" and then, upon asking, was not given any guidance as to how to determine whether I was or wasn't ready. So, in answering the question "am I ready to move forward in the process?", all I can do is devolve it into the question "do I want this process to go forward regardless of the outcome (which I can't predict), or would I rather remain paused?". That's purely a question of, in the words I used before, how quickly I want to conclude the process. I can't refer to any other variables or goals, because I can't evaluate those.

> If you're so incapable of self-introspection that you can't accurately judge how well you understand material without external validation [...]

Nobody can do that. Try evaluating yourself without external validation sometime. If you score e.g. a "good", ask yourself "good in terms of what?" External validation is the only thing giving any meaning at all to evaluations.

I didn't define "ready" in terms of itself (unless you're unclear on the literal definition of the word "ready", in which case you'd be better served looking in a dictionary than applying for jobs); I gave an expanded context for the term.

This is not a hard concept here; I would rate it as slightly more complicated than walking and talking at the same time, and slightly less complicated than walking and texting at the same time. So, uh, you probably shouldn't walk and text because you'll hit a tree or fall into a pit. Just some free advice there.

If you're capable of forming memories, you're capable of self-evaluation without external validation, you goofball. "Good in terms of what"? Most people choose "how good [I was] before [I] started studying" and it seems to work pretty okay for them.

he's trolling you.

The tendency of people to troll by acting like a complete moron baffles me. I can't help but think "Congratulations, you've successfully managed to be a moron".

It's kind of like the Turing Test -- relatively easy for a simple program to simulate insane or stupid humans.

"the crypto challenges, which are currently by far our most successful recruiting vehicle (followed by Stripe's CTF #2) are just a series of emails we send; they're essentially a blog post that we weaponized instead of wasting on a blog."

I kind of hoped you are at least looking on our answers or something :)

What surprises me is that plenty of engineers have remarked how a basic knowledge of algorithms and data structures has been the key to getting hired, rather than the ability to write good code or solve problems that are similar to the ones a candidate would actually have to solve. Those are not tested in interviews.

Given that background, given that people are trying to improve the recruiting of engineers, given the penalty applied to people who recruit for the standard package, given the rewards for those who recruit accurately to their needs, .... why does the "irrationality" persist?

I don't know if Matasano is a nice place to work at (well, friends there have been happy, so I guess I do have some information), but it sounds like a wonderful place to interview for. Enjoyable instead of actively painful and stress-inducing.

If someone doesn't make the cut, what does Matasano say? Do you say what didn't work out, or is it the industry standard and horribly antiseptic "we have decided not to move forward at this time"? I'd understand the latter, but if there's a place breaking that mold, I think it might be you guys.

That sounds fantastic. The few times I didn't get an offer from an interview (early in my career), the "we can't tell you more in case you sue us" answers to why I didn't get the job were as crushing as the actual rejection. I always felt terrible having to give that answer when I worked for a big company, particularly for the marginal candidates. The terrible candidates aren't going to be able to improve enough to game the system, so there's no real risk to giving them the information as well.

we interview people whose only prior work experience is "Line of Business .NET Developer"

I'm assuming you are not interviewing every or even most.NET developers and trying your luck to find the one who can write that great exploit. So, from all the candidates with resumes that would be considered subpar before the process overhaul, how do you determine which ones have potential to write that great exploit?

That's what a work-sample test is. Candidates here do a series of challenges that are quantifiable (scored), and calibrated to match the day-to-day of working here. We don't ever wonder whether a .NET developer is capable of reverse-engineering a protocol and finding security bugs in it, because we invented a series of protocols and a series of security bugs, and we make candidates try to do that.

Ah, I thought the test was given during the in-person interview.

We recently started putting sales candidates on the phone to cold call. The most critical thing we measure is how many minutes they spend on the phone. It's been a pretty strong signal of how they would perform if we were to hire them.

Sales is a different beast.

If you need 2 sales guys, hire 3, give them a month and fire the worst one.

That is horrifying to me as a developer, but apparently this is fairly standard for sales.

First place gets a Cadillac, second place gets steak knives, the rest get fired? (a quote from Glengarry Glen Ross)

That's a BIT of an overstatement depending upon the particulars. Outside sales for complex products can require a quarter or two ramp-up so you want to be somewhat selective. If you're hiring someone for that sort of position though they probably have some sort of track record.

For an inside sales position, you're not all that far off though.

As I've seen it put in another discussion, "sales managers don't have any trouble firing people."

That is a classic work-sample test.

This might be obvious to those with more sales experience, but can you explain what exactly you're looking for in regards to "how many minutes they spend on the phone"?

In other words, is the success of the sales people about spending more time on the phone in total? Or is it about spending more or less time per call?

Thanks in advance!

This might be obvious to those with more sales experience, but can you explain what exactly you're looking for in regards to "how many minutes they spend on the phone"?

Our sales process is based on our reps cold calling businesses. We learned after a couple of mishirings that the most difficult part of the job is being able to manage emotion and taking rejection. For example, as a rep it is completely normal to be rejected in some manner 50 times a day. So if you get discouraged or upset after your third rejection, it is unlikely that you would have the motivation or drive to make more calls and therefore, you're likely not the right fit. All of this is usually summed up in the metric time spent talking across all calls.

While ultimately the time on the phone translates into revenue, we like to emphasize factors that is in our control. We can't control whether someone ultimately signs up or not but we do control how much break we take in between calls.

If applying for Matasano is as fun as microcorruption I might as well apply there. Do you consider H1B candidates?

Through the Matasano challenges, for one.

Our public challenges are part of outreach, not qualification. We are very worried about drawing conclusions from them in our hiring process, because those challenges are public and people often work together on them.

Don't stop, thanks to the two public programs you've run so far I've:

* Got into Ruby and Go (trying to get a feel for what language felt most comfortable for bit manip.)

* Got into assembly (for fun so far)

* Got a good appreciation for bit-level operations

* A bazillion more little facts and insights that help in daily work life

I bet if you polled how it's helped other people there'd be all kinds of great examples. For work, I'd say the best impact has been a personal drive to pentest our own product, resulting in a lot of bugs found and fixed. That included managing to root our servers via a product flaw, which was scary and amazingly fun.

So yeah, thumbs up, don't stop now (please).

As for the above catering to newcomers, sure but it ramps up incredibly and pushes some boundaries if you've never touched that stuff before.

The public challenges seem to embrace newcomers. Assuming someone does well on their own - should that person expect to do well in the hiring process? Or is there a significant difference in skill set / level between the public an private tests?

I am in Greater Chicago, I have seen your outreach before..glad to know its working...

> we over-communicate and sell our roles before we ever get selective with candidates

Sorry, I'm a bit confused about this sentence. The roles your selling are the roles you're hiring for? I guess even if that's true I don't understand what you mean by selling roles before getting selective. Would love some clarification!

The typical candidate at Matasano spends ~45 minutes talking to me or Jeremiah (the two of us are very senior and currently co-manage recruiting) before they ever get teched out. In that phone call, we try to answer every question the candidate might have about the role, and do our best on the phone 1:1 to sell our firm to the candidate.

What kind of experience does the average applicant have? As a 27 year old dev the process you've described sounds as terrifying as it does exciting.

For instance on the challenges I liked that you put (largely paraphrased here) 'If you breeze through these we might want to talk to you.'. Having ploughed/struggledto set 5 now it's almost daunting to think people DO breeze through that. Granted, the stats you've published so far indicate those people are far and few between. It kind of puts you in your place, but the exciting part comes from knowing there's so damn much to learn still.

What is the very specialized niche that is especially demanding of software development skills?

Software security. We take products that 4-8 person dev teams spend 9-18 months building, and, in 2-3 weeks with 2-3 people, essentially compete with those teams to find clever vulnerabilities they left in their code. Particularly on non-web projects, this often involves reverse-engineering from binary and quickly tooling up for bizarro undocumented proprietary protocols and APIs. If you're a startup, you hire for Rails, or low-level C database stuff, or iOS, or distributed systems. For us, switch those or's to and's.

Security audits and the like. tptacek is the founder of http://www.matasano.com/

I know the company and I know about tptacek from HN, even a friend worked there a few years ago. I just wanted to understand if they were in some new specialized niche.

Sure. I'm just explaining how someone could conclude that hiring for a software security team is actually harder than hiring for a typical startup; the skills requirements are close to a superset.

Could it be that the specialization you are working with ends up actually be a benefit with regards to finding new hires?

From my perspective, I'm probably not going to go out of my way to apply to a typical startup unless there is some reason to believe the renumeration is remarkable. However, I might be interested in applying to a company like yours as a challenge to myself.

That happens. For example, to be a low level 3d engine programmer is a quite specific skill, yet because of the nature of the games industry, such people don't get paid as much as your average full stack web developer.

Yes, I used to work in the security field and almost every project was an adventure, a challenge where you also need to learn at the speed of light.

Regarding work sample test, what about candidates who don't have several hours to waste doing homework for each interview?

They should apply elsewhere. Seriously.

If a candidate doesn't have "several hours" to engage in a process intended to lead to both sides investing thousands of hours over the coming several years, they're welcome to apply elsewhere.

For every time I've interviewed, I've done several hours of homework on the company, understanding their competitive position, reading their financials (if a public company), founder bios (if a startup), bios of the people I'll be meeting with, etc.

I'm not doing this out of desperation; I'm doing it because I'm picking the company just as much as the company is picking me. Conversely, I'm willing to "jump through hoops" provided I believe that the company believes that hoop is helpful in selecting strong employees, because ultimately, I want to work at a company with strong colleagues and the hoop is a signal that the company wants the same thing.

Fair disclaimer: I haven't applied anywhere in the last <long time> and in my 20s, I enjoyed the take-home programming challenges. To this day, I recall enjoying Acclaim (game company)'s take home test that was rudimentary AI for a turn-based very simple game. I crushed it, flew out to interview, and got an absolutely laughably low offer (par for the industry), but I still think fondly of "doing that homework".

I've also been asked head-scratchers before. I had a recruiter ask my GPA and SAT scores for a role in my late 20s. Wait, WTF did you just ask me?! I answered, and that firm (D. E. Shaw & Co.) was the most-talent dense firm over 5 employees that I've ever experienced. If I'd have indignantly replied that my SAT scores were irrelevant to the position and none of their damn business (both are arguably true), I'd have missed out on one of the best work experiences of my life (and two handfuls of those colleagues are still working with me today, 3 firms and 17 years later).

Anyway, sorry for the long response.

Shorter version: You're picking the company. Do your homework.

They're picking you. Do their (reasonable) homework if you believe they're assigning it for the purpose of giving you great future colleagues.

All reasonable points that I agree with. It presumes, though, that the companies you are interested in turn out to be as respectful of candidates as you are of selecting them and complying with their hoops. This thread is full of anecdotes about (predominantly SV) companies who disrespect candidates by misrepresenting their hiring process, setting up meaningless hoops, rejecting candidates after hours or days of work for nebulous "culture fit" reasons, or simply going silent in the middle of the process. If you are a candidate who has invested multiple hours multiple times for disrespectful companies like these, you would probably develop the attitude fsk posted about. Its a bad place to get into, and unfair to both the candidate and the companies who do respect their candidates. Unfortunately, aside from the rumor mill I don't know how to tell which companies are respectful and which aren't until after investing multiple hours into the process.

Ah yes. All fair points as well. This is probably another reason why network hiring is so effective. I'd never pull someone from my network into a crappy experience.

Unfortunately, I don't have any useful contacts, so I'm blindly sending out resumes. There's no point carefully researching the company first, because 90% of them never respond, and many companies don't mention their name in the ad. (Some are posted by headhunters, some anonymously by a company.) Even when I research companies and apply directly on their website, it goes nowhere. Even if I did research them, it's hard to evaluate someone until you meet them in person or talk with them over the phone.

I'm currently employed, so I'm only spending 1-3 hours per week on my search.

I have enough experience, education, and honors in school that you shouldn't waste my time with pointless homework. I've never seen a job programming test that was a more accurate measure of ability than the homework and tests I took in school.

Look at it from the candidate's view. I send out a bunch of resumes. About 5-8 of them want me to take a technical test before they call me or before I meet them. 1-2 of them are willing to proceed directly to an interview without insulting me and wasting my time first. So, I focus my energy on the people who take me seriously and treat me like a professional.

It's physically impossible for me to do a technical test for everyone who demands it. I don't have the time.

If Google or Yahoo asked me for a several hour pre-interview screening test, I'd probably do it. If your no-name startup is wasting my time before an interview, I'll just look elsewhere.

Also, in my experience, a pre-interview screening test is anti-correlated with good work environments. Of course, they'll say I'm "not a team player" for refusing the test.

After I did a bunch of pre-interview screening tests, and only rarely progressed to the interview stage after doing the test, now I don't bother. I know my solution is correct, but still not even an interview after I do the test. For the handful that did interview me, I wasn't impressed by them. Why am I wasting my time with people who don't respect me? Why should I waste a couple of hours for the privilege of maybe getting a chance to talk with the hiring manager, who's already pre-qualified himself as a twit by making me take his stupid test?

I'm even reluctant for post-interview programming tests. Once, someone asked me to do an assignment after the interview, and implied I'd get an offer if I passed. I did it, I know it was a good solution, but no offer. There's even people who try to put free consulting in the test, like the guy who asked me to write a program that connected to Interactive Brokers and executed VWAP trades.

I'm even reluctant for on-site tests now. Just a couple weeks ago, someone asked me to do a test, said I could use whatever language I wanted, I picked C/C++, and then they laughed at me for using pointers. Why bother?

If you know your stuff, you should be able to evaluate someone by talking with them for 15-30 minutes. If you aren't willing to spend 15-30 minutes evaluating me, based on my experience and education, then I'm not wasting a couple hours on your stupid pre-interview test.

Yes, I may be missing out on good jobs, but they are missing out on a good candidate.

> I had a recruiter ask my GPA and SAT scores for a role in my late 20s.

I think the question is: could they be used against you?

I don't see how they couldn't, and you wouldn't know.

If they're asking for your GPA and SAT, then presumably they're rejecting you if the number is lower than a certain cutoff.

> if I've hijacked the thread here, let me know; I've said all this before and am happy to delete the comment.

You were voted up because it's a detailed and insightful comment. Thanks for sharing.

Skip the present business model, make a product out of your hiring model. To reach that predictability is worth a lot to most any company.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact