Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Finding tech talent is getting harder. It's not a Bay Area problem only
62 points by hichamin 19 days ago | hide | past | web | favorite | 103 comments
If you're a CTO for a growing startup, this might be a familiar challenge for you.

On top of building the product, finding product engineers is becoming one of the hardest things for a CTO to do in 2019, especially in tech hubs like NY and London due to higher demand and competition.

This problem is no longer exclusive to the Bay Area. Hiring is time-consuming and expensive, and many startups feel that they can’t compete with some of the top salaries and perks offered by deep-pocketed alternatives.

It makes sense to rely on your network to hire the initial few developers, but this approach is not sustainable in the long run.

Job boards are getting crowded. Recruiters are generally worse.

I've read a lot of stories about using recruitment platforms. Few are great, but many are unpleasant. The flaw with many recruitment companies is they don't reliably deliver enough good candidates to build trust.

Asking for profile A and getting profile B is a common frustration. For startups, this tends to be a deal-breaker because hiring the wrong candidate has a significant cost and impact on backlog and team.

Is it that most recruiters or on-demand marketplaces aren't highly technical? Is it that they also suffer from talent shortage?

Remote work has been getting a lot of love in recent years to bypass the talent war. Although it has come a long way, it's still hard to pull off, especially for companies that are trying to do both local and remote but are not remote-first (think infrastructure and payroll primarily).

With that being said. How do startups in hubs currently find great engineers quicker? What's an approach that you have been investing in recently to hire product hackers?

As a developer who has recently been through the hiring process, I think the problem is not a shortage of talent, but rather that companies are awful at hiring. Here are a few of the main issues:

1. Don't limit your potential talent pool to the miserable and the unemployed. In theory, any developer who is currently employed might be interested in leaving their job to work for you. Perhaps you will offer them more money, or perhaps a better quality of (work) life. However, most developers won't bother to talk to you if they already have a job. Why is that? Simple, if they do talk to you, you're going to offer them a homework assignment. You're going to tell them that it shouldn't take more than an hour, but it will actually take two full days to do right. Giving someone a homework assignment isn't a way to woo them away from their current job. So you are left with a candidate pool that consists mostly of people who are desperate enough that they have to agree to jump through your hoops (i.e. unemployed, miserable in their current job, etc.)

2. Don't discard capable people. The average interview begins with a remote code challenge whereby the candidate, who is probably nervous, has to pair program a completely contrived problem with a complete stranger watching them over a webcam. There are tons of developers who are good at coding solutions to real world problems in real world situations but simply don't perform well in this type of situation. This type of scenario is not really assessing a candidate's skills. It's assessing their familiarity with specific contrived interview problems and their ability to perform under duress.

Of course, the points you raised are fair as well. Recruiters are not technical people, they are sales people. You will have to find a good recruiter. They are out there, you just have to find the right ones. But my point is, once you find the good recruiter(s) don't waste the human capital they can being to you by having a terrible interview process. Here is my advice. Once your recruiter has a handful of resumes you like, carve out half a days worth of 30-minute sessions to meet with them at the recruiter's office. Ask them about projects they've worked on. You'll find out much more about what they know and what they're like to work with than you would with the typical remote code challenge. One you narrow the pool down a bit bring them in for on-sites.

Best of luck!

I'd estimate (without bothering to sit down and crunch the numbers) I've had a 30% success rate interviewing for programming jobs. I usually get about 2 rejections before I get an acceptance (and, of course, when I get accepted, I stop interviewing). Based on that, I'd be led to conclude that I was a _dismal_ programmer, probably not fit for the industry at all. If there was as tight a tech shortage as they keep insisting there is, I'd expect it would be pretty near impossible to be rejected for a programming job. Yet I find it happens to me with alarming regularity and based on what I read here, I'm not alone. It's almost as if the "talent shortage" is imaginary...

The talent shortage is absolutely imaginary. The hiring process is run by incompetent internal recruiters and competitive developers with Aspergers whose goal is to reject as many people as possible in order to prove that no one is as smart as they are.

> It's almost as if the "talent shortage" is imaginary...

Talent shortage means that employers can't find workers with the skills the claim they need at the price they want to pay.

> (and, of course, when I get accepted, I stop interviewing)

Then you only ever have a sequence of rejections ending with a job offer. Of course you will feel terrible if this is your strategy.

Do a few more interviews and you'll find that sometimes you get two or three offers in a row.

it is

I got it!

We will hire anyone who sounds good, and fire them within a month if it turns out they're not up to our standards. Then, we will ensure we never get anyone who isn't already employed and anyone just looking for a paycheck or three.

If you heard that even 20% of people were fired within the first month, how likely would you be to take that job?

Note: It's usually called contract to hire. And it just takes the interview stress and pushes it out to 1-6 months.

I don't have sufficient sample data from my personal experience, however, I conduct job interviews the same way I got interviewed and hired for my last job and my last three hires were and are really good teammates.

I don't ask for coding problems and don't have a strict interview structure. Instead, I try to make a conversation about the candidate and tailor interview around their experience. I also try find similar problems they face that we have and talk about solutions that we apply which helps me see how flexible they are or do they outright reject different viewpoints.

Ultimately, the main goal is finding the people that I would like working with because it trumps pure technical skills in importance. It might not work well where some highly specific and rare skills are required, however it works in average enterprise environment.

The interviewer should be a pretty good conversationalist, though.

So what? If you are used to freelancing, it's the same thing.

I would prefer that 80% of people are fired in the first month.

Sure, but, most employees would not prefer that...its a Market for labor. You are buying, Labor is selling. If what you are buying is an employment contract with a penalty-free terminate-for-convenience clause, expect that you are buying that piece of insurance from the employee at a high cost.

To be fair, we already have a penalty-free terminate for convenience in the US in most states, it is really social convention that prevents it.

I'd like to talk more about (1). We do a homework assignment that in fact does takes a few hours, but only for candidates who don't have experience developing in our core stack. If you can code in the languages and frameworks we use, it's a step we bypass. It tells us if they can solve a problem well using the tools and setup of their choice. If we clearly see they did well at this, the on-site can then focus on the more non-coding aspect.

Our on-site interviews are highly contextual and rooted in the real-world where candidates work directly in our codebase. They are reasonable in the things we ask candidates to do (re-factor something, review PRs, implement a small enhancement).

If someone can't code in one of our core languages, it's a tougher assessment since we would have to resort to hypothetical/whiteboard crap (which we hate). How do you assess someone then? We recently had a candidate do a take-home where they didn't do well, and it did save 5-6h of everyone's time and their effort of coming in and being subject to the pressure of the interview.

I'd love to hear counter-opinions on this.

That's nice. If your recruiter called me I would pass unless I happened to be unemployed. And even if I were unemployed, I'd tell your recruiter that I'm interested but I'd prioritize all of the other companies I'm talking to that don't have a homework assignment. If I failed their code challenges, only then would I do your homework assignment. Most developers I know would do the same exact thing. You have to realize that you are NOT the only company the candidate is talking to. In fact, the candidate doesn't even know if they want to work for you. Their recruiter pitched a bunch of companies to them. Your company was one of those. They were like "okay, sure send me over there." Seriously, unless you're a famous company like Google, the candidate never even heard of you. You are one of many places they agreed to let a recruiter send your resume to. Your job is to sell them on why they want to work there, not give them a fucking homework assignment.

I like your response. I think the reason for it is because it's a false indicator of capability and its demeaning. I think some technical discussion is good but this paranoia that somehow you're scamming them with a long con is so stupid and results in terribly non diverse hires.

So in the above reply I completely ignored the fact that he said the homework is only given to people who haven't worked with their tech stack. I also swore and went on a rant. Sorry! It's still something that needs to be said though. Just not to that guy...

Haha thank you for not directing that at me.

Hiring and having a welcoming but selective process is rough :)

Indeed it is my friend. One more thing I'd like to share... A lot of companies start their process by having someone in HR reach out to the candidate. Often these calls provide little of no value to the candidate. They are simply another hurdle. Here are some things I wish the HR folks would take into account:

1. Please be prepared to actually sell your position. Most recruiters simply explain what the business is and then tell you that their engineering team is really tech focused. It's totally generic. It's nothing the candidate hasn't already heard from their recruiter or read on the web site.

What's special about your product or company? What kind of benefits do you offer? What makes your tech team so great? Have you built some amazing open source library? Is the CTO an ex-Google guy?

2. Please be prepared to answer some basic questions that an engineer will have. For example, what is your tech stack. "We use JavaScript on the front end" is not an acceptable answer (unfortunately, It's one I've received several times). Tell me what frameworks you use. I know you're not an engineer, but you could ask one to write it down for you.

3. Please know what the technical assessment process is. "We have a technical assessment" is not an answer. Is it a take home assignment? A hacker rank test? A remote code pairing? If it's a take home assignment, how long does it take? Again, you are likely not the only company the candidate is interviewing with. The candidate needs to know how long the process will take and how much time he has to invest.

> only for candidates who don't have experience developing in our core stack

If you're looking for top talent it wouldn't be measured against any singular tech stack. I tend to take positions on stacks where I'm unfamiliar, and no I wouldn't complete homework. Employers are competing for the good candidates and should have a process of identifying them without hoops.

I'd love to hear your thoughts on the right process. We want to make it easy for the candidate too. Care to share your feedback/opinions?

When I'm interviewing senior candidates or being interviewed, my preferred first interview is a conversation about interests, past work, and areas of future work. Depending on the ability to communicate effectively and deeply about topics of shared knowledge and interests that will decide the next steps. It also gives a good idea of the candidate and the company in the process. The best use of time all around. I have yet to be 'duped' by an imposter by this process. Some may be slightly underwhelming but I've yet to regret a hire or being hired.

I do that as well and that still doesn't tell you much. It's a good first screen filter but isn't always sufficient. For senior candidates though, I agree that a homework assignment is not the best qualification process.

People willing to spend a few hours of their day doing a "homework assignment" will tilt towards the spectrum of people who have a lot of free time which might not intersect that well with the set of people you want to hire.

> If you can code in the languages and frameworks we use, it's a step we bypass.

Curious; can you say more about how you judge this? Isn't that sort of the point of the homework in the first place?

Judge if they can code in our core stack? Well, if they're working with it in their current job, or in side projects. Assessing if they are good, we can do it in the on-site. Like I said, our on-site is based on knowing our stack, so we have to make sure they can work with it before we bring them in.

What is this 'core stack' you speak of, is it special in some way?

I once did an all day on-site pairing interview with Pivotal. The morning was Swift/iOS and afternoon was Java back-end. I didn't have experience in either except some Java desktop GUI from a while back. It was all fine, they wanted to see how I think, what code paths I think of, what tests I choose for coverage. The actual syntax of what's being written wasn't the main point. That translates quickly on the job from experience doing similar tasks in other environments. If on the other hand, you've never written a test, or discussed code with a colleague those are not as easy to pick up from somewhere else.

This seems to align with my experience, particularly your first point.

For context, I’m working as an Associate Product Manager (so not quite a Product Engineer) but I had applied for a job at a Start-up company that I found extremely interesting. Had an initial interview but didn’t hear back from the company for about a month. I had also sent follow up e-mails about this.

When I eventually did hear back from them, they apologised for their delay but then spun me with a homework assignment that would have taken at least 2 days. Safe to say, I kindly declined.

So yeah, really focus on how you’re recruiting for talent.

In the US most of the recruiters I've been getting are more at least technically aware but still struggle because they are external. The only true people I have felt like I have had a useful conversation with are companies who have an in-house talent lead as they can generally describe what is going on and can fit you across teams. In my current role I was cross matched successfully and probably would not have pulled the trigger without the company based talent person involved in the process.

The outside recruiting firms I have tried to work with have just been misery by comparison. They either don't know enough about what's going on or clearly don't even understand the position they are offering and it takes like 3 or 4 back and forths to get the real job description and it doesn't even make sense. From the other side once my current role started resourcing from an outside firm the matches were worse and worse and I wonder if it just was because the rep on the other side couldn't talk about our actual company in any meaningful way.

> There are tons of developers who are good at coding solutions to real world problems in real world situations but simply don't perform well in this type of situation.

What do you propose instead to see whether one can do real world problems in real world situations?

I think he's saying that normally a person isn't coding while someone is watching you. I have no problem implementing a data structure on my own but if you ask me to do it in 15 minutes while you're watching every typo I'll probably freeze up.

Has anyone ever flipped the script in an interview, asking the interviewer if they can watch them write code at their workstation for an hour so they can get a sense of what it is like to work at the company?

You can learn a lot about what a developer knows and is capable of by talking to them about the projects they worked on. Ask them detailed questions about the particular problems they dealt with on projects and how they were solved. Ask them to explain core concepts that are intrinsic to the technologies they've worked with. You can also get a feel for their personality this way.

Remember, we're talking about a screening process. Once they come onsite for the real deal you can throw all sorts of stuff at them.

If (1) coding homework sucks, and (2) coding live sucks, how do you propose assessing a candidate's coding ability? Take their word for it?

Absent a large open-source repository or other public corpus of work, you generally have to rely on one or the other.

This problem is no longer exclusive to the Bay Area. Hiring is time-consuming and expensive, and many startups feel that they can’t compete with some of the top salaries and perks offered by deep-pocketed alternatives.

Offer to teach the developer something.

"Java developers - want to learn Node and React?"

"Rails developers - want to learn Elixir?"

Get one senior person on staff who really knows the stack well and require that they pair program every day with a different member of the team.

Good developers are grateful for the opportunity to level up their skills, contribute, and still make a living.

Andres Camacho in SF has been VP of Engineering and CTO at several startups and is king of this strategy.

> "Java developers - want to learn Node and React?"

Could be a great incentive, but not to me personally. I'm very invested in the JVM, and I'd rather have that investment used. Something like the following would make me jump ship instantly:

"Java developers - want to use Flink/Spark, some Scala/Clojure? How about 'very fast decision trees' learned online out of a Kafka bus?"

If good developers want to level up their skills, how do you keep the senior developer who you've turned into a tutor happy?

Mentorship and teaching are also valuable skills. Many good senior engineers would love to focus on them if their employer recognized it as valuable.

Yea, um, nothing wrong with mentoring and teaching but when management wants me to turn things out on a dime at the same time. Not happening. That junior is getting MINIMAL possible attention for me to work on what ultimately keeps my job not theirs.

Is that really true? Maybe some, but I don’t know about “many”. I’d imagine when most people start on their dev career, they don’t imagine their dream job to be “teaching,” they imagine it to be coding. I think you’d have a tough time getting responses for a “senior engineer” job ad that says you’ll actually be a full time mentor.

I'm just an anecdote, but if I could earn the same salary teaching and mentoring as I do as a tech lead I'd do it with very little hesitation.

This route exists, it's called training and you can earn even more doing that. Absolutely doable, but it's a long road to get there (salary- and lifestyle wise).

Even then, pair programming with a different person every day sounds awful.

Fair question.

At least in the above scenario, it was Andres doing the work of initially getting someone up to speed and then pairing the coworkers on an appropriate level feature/bug. He'd stop by and check in to see where they were stuck and would genuinely try and solve the problem.

So, it has to be someone who is a great coder for that stack and enjoys teaching.

If it's done right, other members of the team become good teachers as well, so the initial burden of teaching is lightened.

> how do you keep the senior developer who you've turned into a tutor happy?

Pay them well, and give them a regular chunk of (paid) time to work on something that furthers their growth / is intellectually stimulating / whatever.

Pay them a lot.

A certain pay level is necessary, but not sufficient, to keep talented staff.

Well, they probably chose the tech stack so they can either help with the hiring process or the training process.

If your business is essentially burning VC money for a decade to buy a ticket in the Unicorn lottery, then the easy answer is to spend a lot more money. You can do this by poaching expensive people, by offering more, or by hiring lots more people than you need and keeping the ones you actually want. The result will be more manpower faster, at significant expense.

You can also, as many companies default to, ration yourself by imposing very grueling hiring requirements (months of fly-in interviews and hours-long take-home assignments) and "competitive" (as determined by some non-market mechanism like an industry survey) pay. The result of the latter will be long hiring times for good-enough talent that is willing to work for whatever you've pre-determined to be fair.

It's really no different from looking for a car: you can have a known high-quality thing right now (buy new from a dealer/pay $$$ for top talent), or you can buy a lot of potential lemons for cheaper until one happens to last (grabbing random by-owner cars from Craigslist/hire-fast-fire-fast), or you can just wait things out until you find the perfect deal (trawl Craigslist a couple times a week until something jumps out as an incredible deal/pay "market" rates and have a long hiring process).

There are tradeoffs to be made, and you have to make them according to what you actually need and the resources you have. There's no physical law that says you're entitled to unlimited world-class talent at bargain rates to build your adtech startup.

The usual HN refrain here is 'pay more'.

And as a developer in NYC, I'd say this is accurate, but simplifies the problem a bit too much.

Companies like their salary bands. Companies like to hire people at around the same compensation as current employees in the same role with around the same experience.

The problem is that demand has recently gone up and pay should go up with it, but companies are refusing to adjust their bands and greatly increase pay for their current employees across the board.

So, instead of addressing the pay issue head on, we're seeing a few really really bad practices:

- Lose candidates at the offer stage

  - Try to get comp expectations out of the way earlier.

    - Losing candidates to Big Co. for big pay discrepancies is likely tolerable
    - Losing candidates over $20k salary band issues is absolutely unacceptable
  - DO NOT let HR takeover the closing process. 
    - Don't try to give an exploding offer
    - Don't say an offer is 'best and final'
    - The CTO or VP eng should give the offer and 
      make it a priority to close the candidate
- Giving pay increases to current employees only when they have other offers or explicitly ask for it

- Giving regular title bumps to justify pay increases

  - Your 'senior' engineers will be involved with hiring. 
    It's better to give junior/mid-level engineers big raises 
    than title bumps that will make hiring talent more difficult

If these points sound obvious, they're not. As a candidate, I have not seen a single company that follows them.

And this post just addresses issues around compensation. I haven't even begun to touch on being honest around your interview process. But let me put a few questions out there as well:

- How many rounds do you have?

  - 3 is probably a maximum. Never have more than one on-site
- What is your accept rate at each round?

  - the accept rate should increase from round to round
- For testing candidates

  - be very clear about what questions you're asking and why
  - know, objectively, what is considered a pass vs a fail for every question

I'd like to add on to that: "Pay more" and "Hire remote". Don't disregard the consultant firms either. Many times I've seen a big push to hire an FTE (or series of FTEs) to do a Big Project(tm), only to have to let the FTEs go after Big Project(tm) is completed because there was no more work for them to do.

The cheapest way of finding talent is retaining it. I currently work on a project with an empty backlog and a sprint full of impediments. We are all looking for new jobs.

Hiring a good product owner would've meant retaining the team. Now you have to have to find six new developers.

I'm from Europe, so I will say why I don't want to work in London (and I get a lot of offers from there!)

The salaries that are offered are a joke in London. The expenses are so huge there! Even if the salary is a bit higher than my current one, I would spend much more.

There are a lot of joke startups, some new cryptocurrency or blockchain startups... Nope, I'm not gonna join anything like that.

Also, I'm not a huge fan of big cities and London is too crowded (for me).

Allow remote and I'm sure you are gonna find someone.

Man, there is NO shortage of tech talent, stop lying to yourself. You are just not paying enough for people to even consider interviewing for your company. Period. This is actually a very simple problem. Throw money at it and stop complaining.

It's funny because people keep saying this yet I've noticed something... The interview process for developers is about 10X harder than it used to be a decade ago. It used to be that you'd chat with a couple of people about tech, projects you'd worked on... then get a job offer. Now there are multiple rounds spread out over weeks with a massive number of team members, live coding challenges galore, non-tech screening for all manner of sketchy things (culture fit, dedication to diversity...).

I think a lot of this is based on they myth of: A bad hire causes tons more damage than not hiring a good person.

I call BS. To me this is just weak management. It's actually not that difficult to fire someone. If you're in doubt, put an explicit probation period in the contract. I think being able to effectively fire is management 101 but looks like it's becoming a lost art. I'm not sure if this is because people are afraid of confrontation or they're just cargo culting the story they've heard about bad hires.

Easy in, easy out and you'll see your dev shortage problem start to solve itself.

> A bad hire causes tons more damage than not hiring a good person.

I think it is true, but only if you don't identify it quickly and/or don't reassign or fire them as necessary. I'm a firm believer of a holistic and lightweight interview process followed by a trial period. The only way to really understand if someone will work well in the position is to let them give it a try.

> I call BS. To me this is just weak management. It's actually not that difficult to fire someone. If you're in doubt, put an explicit probation period in the contract. I think being able to effectively fire is management 101 but looks like it's becoming a lost art. I'm not sure if this is because people are afraid of confrontation or they're just cargo culting the story they've heard about bad hires.

It has little to do with confrontation, and a hell of a lot to do with potential legal issues. Maybe this fear is unfounded, but I doubt it.

If you are a small company, you might get away with it on pure luck. If you are a big company, you can average out the cost of "bad firings" with the rest, and see how expensive it is. I'm guessing it's a lot.

Shortage my ass. These companies are not paying enough, not looking for remote workers, and generally not offering enough attractive packages. There's no shortage. Start paying more. Offer remote work. Stop being a shitty workplace. Qualified developers will start pouring in. If you think a ping pong table and beer keg are going to attract quality talent over a proper salary and remote work you're delusional and shouldn't be in a position to hire.

I'm not sure I believe this.

Find a random research university near you. It is chock-a-block full of people, most of whom are very smart and many of whom can code. Since everyone other than tenured profs has a precarious, low-paying job, this should be a fairly easy pool to recruit from.

Nevertheless, I, a staff scientist in a computational field, get messages from (maybe) 3-4 recruiters a year, all of whom are from huge companies. It would be good to hear from more places and it would great to hear from places that are willing to consider my actual experience (look at my code, hear about my data analysis) instead of asking me to dredge up half-remembered tricks from my undergrad data structures class.

Of the dozen-or-so companies that I've been through at this point, there were only three where I would say they put a decent effort into trying to retain the talent they ALREADY HAD. So if finding "fresh meat" is becoming more difficult, maybe there is some good in that, if it incentivizes more to adequately value the talent they already have and put a decent effort into trying to retain them.

When I look for a job, I spend time investigating companies who align with my experience, goals, etc - regardless of whether or not they're actively hiring. Consider doing the inverse: Contact developers who may not be looking, but who align with your company well.

It's flattering to hear from someone who is genuinely interested in hiring me - if you're interested in _me_, I might consider you even if I wasn't planning on leaving where I'm at.

Admittedly, it's time-consuming. But it's also "doing things that don't scale".

This seems similar to the "hire from your network" that was mentioned in the OP. Or, to rephrase, how do you find/target these developers?

I mean outside of your network - people you wouldn't normally get referrals for. LinkedIn in a starting point, then researching an individual (Github profile, Twitter, personal website, etc) to learn more. This will obviously only work if the dev has a public life.

Do you use any open-source projects? Reach out to the contributors.

As a product manager, I have gotten to the last round of multiple interviews (3 or more, meeting full teams and different departments).

Then been turned down as they are "going with other candidates", only to see the job reposted. This has happened on multiple occasions.

Maybe I wasn't the right person for the role. One specific role has now been up for 5 months. Which likely means the company is looking for an unrealistic set of requirements that no one can meet instead of training appropriately.

In my opinion, the person that will come in and solve all your problems without training does not exist. Make a decision and be okay with letting a new employee get familiar with your company and industry.

Some companies post "non-existing jobs" for the following reasons:

1- Gather information from candidates about how other companies are doing the same job or about their strategies

2- Go deeper into discussion with candidates who work for a competitor.

3- Look to be hiring for investors/competitors..etc

True, seems like a great way to disrespect candidates (good or bad). Then you can complain about not being able to find people cause the job has been up for so long.

4- Fulfill a "we really looked for domestic candidates, honest!" checkbox before hiring on visa.

> Job boards are getting crowded. Recruiters are generally worse.

It seems that most (young) recruiters these days rely primarily on Linkedin as a sourcing tool. But that's not where the best talent is found.

The Hack to finding talent is to truly learn the recruiting process. That is to say, can you identify, assess, and ATTRACT decent people on your own?

Start by asking: Who would know know my ideal candidate?

ON this subject, Lou Adler is masterful > https://youtu.be/9KLR6rteoOU

> ATTRACT decent people

This reminds me of a recent post that rings pretty true: "When hiring senior engineers, you’re not buying, you’re selling"


I don't think the problem is a shortage of talent. I think the problem is that the expectations for the amount of work a single employee can produce are unrealistic.

Everyone wants to hire the 10xer. The problem is that they're a) expensive, b) not always easy to work with, c) usually already employed.

If companies stopped focusing on getting the "best of the best" to produce results overnight, and instead spent energy in investing in young/less experienced candidates, things would be a lot easier for everyone. Of course, this means that companies need to come up with ways to retain talent so they don't "waste they time" on developing someones career to just have them poached.

I find it funny how posts like these alternate between "why can' I find a job?" and "why can't we hire anyone?". Obviously there's a disconnect somewhere. There is absolutely no shortage of talent, it's just mismanaged expectations (on both ends).

Something to consider, if every company told every candidate that had an on-site why they were not offered a position then the pool of candidates would more easily adapt, over time, to the needs of these positions. That would be a win for everyone involved.

Pay more or be more willing to work with people who don’t have all the skills you want. (Yet.) A lot of startups want to hire senior FAANG type talent and pay them less than entry level at those companies. Good luck. You have to be scrappy as a startup and that includes how you find talent.

> This problem is no longer exclusive to the Bay Area.

When people question why so many companies start or stay in the Bay Area, "density of talent" inevitably comes up as one of the reasons. I can't reconcile that assertion with this one here.

I agree, Silicon Valley is the mecca of engineering talent. However, the demand for that talent greatly outranks the supply. With that being said, how can a seed or even a Series A startup stand out and be able to attract engineers when Facebook & Google are next door? Even better, how can a startup retain its engineer that's probably getting x10 inboxes a day from other companies with better packages?

I'm not challenging you here, but it's common questions I hear that can complement your perspective...

You have to pay competitively. If you can't afford to pay FB level salaries then you either didn't raise enough money or you have to be willing to part with serious equity. I think the days of founders retaining as much stock as they traditionally have are over. You'll need to start compensating your developers like you would execs. If you think about it, it actually makes sense. Execs add value by scaling up an organization of people. Devs add value by scaling up an organization of code and machines. In fact if you think about it like that, devs should probably be getting paid more than non-technical executives.

We're in a similar boat. Attracting good engineers as a seed stage company is challenging. What has worked for you?

Many here are commenting that you should pay more and that is true. But how about not wasting the talent you already have?

I’ve had several jobs from startups to big companies and I have never been utilized at anything close to 100% of my potential.

Try getting rid of pointless meetings, distracting open offices, insane IT policies, and needlessly overcomplicated architectures. You may not even need to hire any more enigineers if the ones you have are more productive.

>Asking for profile A and getting profile B is a common frustration. For startups, this tends to be a deal-breaker because hiring the wrong candidate has a significant cost and impact on backlog and team.

This sticks out: the hiring process is really bad at making this judgement effectively. We face this problem at my company, most of our best and worst team members have been surprises.

That is very relatable, and results primarily from failing to identify false positives and false negatives in the hiring process.

An interview can result in a bad engineer being hired and later fired (a false positive). And an interview can disqualify someone who could have done that job well (a false negatives).

In order to keep the false positive rate low in the face of this noise, companies have to bias decision ever farther toward rejection. The result is a process that misses good engineers, still often preferences credentials over real skill, and often feels capricious and frustrating to the people involved. If everyone at your company had to re-interview for their current jobs, what percentage would pass? This is a scary question. The answer is almost certainly well under 100%. Candidates are harmed when they are rejected by companies they could have done great work for, and companies are harmed when they can't find the talent they need.

And by the way of the 30 or so engineers I have hired in the last 10 years, exactly 1 would have been correctly filtered by a homework assignment and 7 or 8 would have been incorrectly filtered. Technical hiring in my opinion is so poorly done by most people because they think developers are commodities that can be standardized and quantified.

There is no such thing as a labour shortage. There is only an unwillingness to pay. If you can't afford to attract talent at market rates then your business model as it is exists isn't viable.

A big aspect to this is that the equity lottery of startups is largely gone because companies going public is increasingly rare, companies stay private longer (which presents real problems for the liquidity of employee options) and there are just so many ways an employee can get screwed out of their equity value that as the time a startup is private increases the value of the equity inevitably approaches zero. Down rounds, liquidity preferences, that sort of thing.

Equity is a pretty terrible deal for employees. Great for VCs. Great for founders (mostly). Horrible for employees.

> There is only an unwillingness to pay

I'm still waiting for somebody to try offering humane working conditions (like, not in an open airplane hangar where you can hear everybody else's conversations echoing throughout the room) as a perk. Been waiting for a long time.

Pretty much.

I live near London and get calls from recruiters on a regular basis telling me my CV is literally amazing and they have these awesome opportunities paying half of what I'm currently on.

Went for a coffee with a couple of them and they're telling me they have positions open for a year because neither the clients nor the staff will budge.

This is the contract market, and this includes both companies looking for experts with experience and just bums on seats in a team although, this is usually working for non-experts team leads.

I'm not whining, like I said, I have work. It's just interesting that the client side market hardcore trying to halt at £800 per day.

> If you can't afford to attract talent at market rates then your business model as it is exists isn't viable.

That sounds kind of extreme, but I think you are on to something. Facebook can generate more incremental revenue per unit developer than company X. It's not that company X is just being cheap offering less and the solution isn't as simple as "raise salaries".

This two-tier system of compensation isn't just a matter of non-FAANG companies being too stingy. Its a matter of economics and business models.

> There is only an unwillingness to pay.

Or train!

It amazes me when places want PhD-level employees, but also insist on them having very specific experience. The one thing that a PhD indicates is the ability to quickly get oneself up to speed in an area.

Yes there is such a thing as a labor shortage. When unemployment is below 3% (as in the czech republic) there literally aren't any workers available. No I'm not going to pay someone $30/hour to paint my house, and i'm not going to pay $250/hour to some fresh graduate to hack some node.js.

I don't want to pay what I pay for housing, either, but I prefer having a roof over my head. Complaining about it is totally fair, but at some point you have to adjust to the facts on the ground if you want the thing.

Then it's quite possible that your house will stay unpainted and your node.js will stay unhacked. Due to the labor shortage the people who can do those things will be getting paid to do them though, so they won't have any problems with this situation.

> There is no such thing as a labour shortage.

bullshit. we are looking for talent as hard as we can and we pay premium rates compared to market.

90% of the people that enters the door can't code a for loop. a lot of the candidates, especially those on the younger side, have terrible work ethics, like they find hard to work in a team or under direction and to follow instructions; they won't listen to anything and they'reso set into their own way of doing things they will dismantle working software even after being directed precisely to where and how to implement/fix stuff. and it doesn't stop in the work are either, we got one that tried watching cartoons off a pirate streaming site.

there's a huge shortage of people with brain, agency and will that can fill a 10x position, leaving company that don't do the umpteen iteration of the average vertical tiered enterprisey app short and longing for employees.

I'm curious in what city is this?

It's possible to find no developers in small cities and rural areas, where there are usually no developers and no companies. Having issues with work ethics is something else entirely though.

  we are looking for talent as hard as we can 
... and yet you neither mention details nor have any contact info here or in your profile.

...yes? people can talk about their situation without being living advertisement.

Pay 10x $ for a 10x programmer.

wages aren't linear and we're paying 50% to 100% more than market depending on experience; we don't lack candidates per se either, we lack good ones.

It seems to me that there is more talent going to software than ever and the Junior dev starting salary has been steadily declining over the past decade.

I can't imagine it's really that difficult.

I work remote, and love my job. But if something ever happened to change that, I'd be glad to work for another company.

The other company just has to allow remote workers. Given that, I think there's probably a big pool of talent to draw from.

Curious what your definition of an A versus B profile is?

Not OP, but during a recent hiring process we asked for backend engineers (e.g. java/golang/databases etc). Half of the CVs we received were for Angular/React developers.

I'm unsure how this could happen with any sane vetting process.

Wow, is that even true?

I do believe the "technical" layer in a recruiter is the most important thing. Amarraja, how do you go about vetting your recruiter? Have you had any set of criteria to identify a solid talent acquisition partner?

I don't have a particular example in mind, but a lot of recruiters or even companies are still biased by credentials and resume buzzwords and don't have a proper vetting process to filter through the noise.

Pay more.

To add on to this: offer remote, and if you have an office, don't have an open office setup.

Tech salaries have gone up faster than founders/VCs expected and it's becoming more expensive to run a startup. Perhaps startups should wait a little longer to raise money. It seems more important than ever to find product-market fit before hiring.

Hey y'all,

there's a huge tech talent shortage in Prague, which has approximately 1000x higher quality of life than the bay area. You can make a high salary here and live extremely well. Bonus: no human feces on your front doorstep!

Applications are open for YC Summer 2019

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