Ask HN: What makes a software engineer unhireable?
Engineers on my team were briefly talking about what makes a software engineer "unhireable". Not things like felonies or legal things, but more in terms of what experience they have / don't have and what they were doing before.
Is there anything in your mind that would stop you from hiring a software engineer? What are red flags to you? Again, about the skillset or experience(s), not any legal issues.
50 comments
[ 5.0 ms ] story [ 89.5 ms ] threadIf someone thinks: I have learned enough, and I don't need to learn more, I would never hire that person.
I'm probably guilty of both O:-)
--every large tech company
You can be a gold standard human who invented a distributed database. But at a large company, you're not going to be hired if you can't solve some string subsequence problem.
Red flags you're likely to encounter if you conduct interviews in the dozens are:
1. Don't know how to say they don't know. Have had candidates call up two screens and google the answers for questions they don't know, all while they're interviewing. (The eyes would give them away). The correct answer was "I don't know", not "let me google that for you".
2. Simple incompetence. They may be able to recite, rote, everything in the Android SDK documentation, but be unable to properly write a for loop. Almost makes you want to hire these people because the former is so rare to find, but, no.
3. Unrealistic expectations as to start date. Have had some great interviews where everything was perfect, but they wanted a year to travel before they would start (nothing against people from Europe, but, sigh..). I doubt that company even survived the full year.
4. Bait and switch. Apparently some devs contract out their end of the hiring process, paying "experts" a couple hundred bucks to interview under their name, get them the job, then on day 1, the interviewers and rank-and-file developers none the wiser, show up as a different person with the same name, without the requisite possibility to pass the interview or succeed in the workplace. They nod, smile, take on assignments, join the team at lunch, try maybe, but fail to deliver, and can glom on to the high-paying job for months before corporate axes them, never realizing the scam they were taken for.
Having been on both sides of the interview process far more than most, I firmly believe that the majority of the dysfunction in hiring software engineers is on the company side. Corporate monopsony breeds systemic incompetence in hiring.
They don't interview with people who will see them on the first day and realize it's a different person, like their manager or teammates?
It was quite funny to see when we complained to the recruiting agency how they had to call him back to "sign some more papers before he can get paid". Apparently he did not realize that we are a small enough shop that people who interviewed him might remember that and start feeling suspicious when the guy who showed up looked nothing like any of the ones we did talk to before; it helped that one of the admins took a screenshot of his Skype image, too.
But the scariest thing is that he didn't even feel bad about it -- he told the agency "what? I need a job". That he did not know a database from a hole in the ground wasn't going to stop him.
Our industry needs to professionalize with some kind of standard certification that proves holders are at least minimally qualified. Like the bar exam for lawyers.
Oh, western culture. Please, it’s okay to admit you don’t know something!
There’s no fucking way this is real. There is NO possible way that a human could actually think this could work in their favor and be OKin any way.
I've worked with arrogant devs before (and anecdotally they've written some of the worst code I've ever seen - usually because they complicate the hell out of things because they think they are smarter than they are) and I loathed it.
Be confident in your abilities but don't be a dick about it and always accept the strong possibility that the other person may be right.
I saw a phrase I liked on here a while ago, "strong opinions weakly held" that summed it up nicely.
I had one job offer where I was told by the CEO that he really wanted to hire someone out of college but if I was willing to work for $29,000 a year he would give me the job.
FYI other countries exist on this planet outside of the United States. In Australia a fresh-from-uni undergrad could expect to make 30k on their first posting.
Being a senior engineer in years only, but not in skills. You become a laggard in learning new skills, and adopting good programming practices. This is the classic "1 years of experience for X years" problem. The harsh reality is that many good companies avoid these types of people. They assume that you are not proactive with your career. So it's easy to get trapped in a feedback loop where your sub-par experience can only land you offers with companies that provide more sub-par programmer experiences.
Sorry but could not understand this. Can you please explain?
Also can you please guide improving your skills - It means learning new languages etc or improving deep understanding.
As far as disqualifying seniors for junior jobs, depends on the companies they're moving from and to. A mid-level or senior-level job at a small company with only 3 developers doesn't necessarily qualify me to be a mid-level or senior-level job at a large established software company. So I'm fine with being downleveled in position when changing to those companies. And because of my salary situation, I'm 100% sure it will result in a pay raise regardless of the title. It's happened with some colleagues before, when they left the place I worked at. One left a 55k/year job with a technical lead role to a 70k/year job as a mid-level role.
In the big enterprise, you will code on the locked windows7 machine and deploy to RedHat 5 box with the assistance of Ops team. You will use antiquated technology and all important architecture decision will be made by a clueless architect in the mothership.
My rule of thumb:
Most people never reach senior but they feel entitled by having years of experience.Skills and knowledge can be developed.
2. Having a strong belief that most non-programmers are dumb, including marketing/sales/customer service. This shows up when you interact with those folks. All the guys I've fired in my company are for this reason and never for their failure to not being able to implement an LSM based k/v store.
3. Asking for vacation with reason ("there is nothing to do at the moment"), then after returning from vacation telling us that the service got hacked because "I did not have enough time to fix that particular issue"
4. Failing to understand how the company makes money and our expectations. Some devs love their craft and take home big salaries but in office, they are busy painting us as a con show. Some part of your income comes from the effort of that sales guy/gal, how is your work purer than her? Why paint him as a shady gal in the office?
5. I doubled compensation of some developers, they came back with a request to switch them from fulltime to parttime.
This is based on early experience as a founder.
We are paid to follow orders. We are paid to not act out of turn. We are paid to shut up, mind our own business, and not form opinions, while delivering predictable results, in a reliable fashion, without garrish creativity.
The inirtia of an organization involving the efforts of tens or hundreds of people, will, in many cases stultify the best intentions of any well-meaning, self-sacrificing individual.
In some cases it is absolute death to jump the line, and cut to the chase, simply because of observed inefficiency. Sometimes, you just have to see a thing, know it's a problem, and wait for the responsible person to act on it, no matter how ferociously it burns.
That's because modern civilization as we know it, is just absolutely beyond fucking absurd. And lately especially so. I get that listening to people bitch and moan is a chore, but this isn't about "what the company does" and is instead about having the taste to not be snarky within an inappropriate context. It in the same family of behavioral qualities as not being a douche nozzle, and using harsh language in front of small children.See also: We are not paid to think. We are paid to shut up and mind our own business.
This feels like incomplete information. Did you give them more [double] money for the same work, and then they instead asked you if they could keep their original [single] money, but work half as much? I sense a ratio that isn't entirely irrational in this situation.Windows on a non-gaming, non-CAD box.
PHP.
Gentoo.
MCSE.
Being a hubristic jerk (common with sysadmin types)
People who homebrew crypto.
“Just install linux on a cheap PC and...” types. These people also usually vastly undervalue their time or overestimate the number of hours in the day available to do 90s sysadmin bullshit.
People who don’t realize that more running software is usually a liability.
People who treat other people as idiots for being yet ignorant of something - there is an xkcd about this one.
Joke ones that I wish were true:
emacs
javascript
android
It was dumb then, but I was 20. It’s still dumb now, 15 years later. Those people had no business hiring me then but they were even dumber about technology than I was at 20.
- Treating anyone (be it the interviewer, the janitor, the intern, or people from a different background whom you've never met) as below you
- Treating the interview as a power struggle
- Failing to solve a fizzbuzz within half an hour despite claiming 15 years of software development experience ("well, I've mostly been managing people lately")
- From a developer with 18 months experience applying to a mid-level position: "I expect to have at least three people reporting to me within 12 months" [Even more ridiculous when you take into account that we're a tiny, slow-growing team that's unlikely to add 3 people total within 12 months.]
- More than 3 years out of school, never held a job for >9 months.
- "And then I told them we should put development on hold until we rewrite all seven services in $new_shiny"
- Shows up to the interview drunk or high
Negative people that are always saying "it can't be done", "refusal to experiment and try new things", "blaming", "refusing ownership", "whiners", "people that seem to be happy when a failure happens", "folks that reject collaboration and wish to be left alone, you know, the lone superstar programmer"