Why do you assume that the person is lying? Why do you start your relationship with your new co-worker on distrust?
There is a way to weed out the liars - you hire them and then when it does not work out you fire them. You would be astonished how little people lie on their CV.
They may exaggerate claims - yes, that is why you gave them a call in the first place. But then again you exaggerated your claims in the job posting of which skills are required for the job.
The one thing that I noticed is that only the US companies have this awkward parallel reality 'technical-interview' hiring process. In other countries like Germany or France the interview process is mostly focused on the person and the desire to work for the company and the willingness to learn the skills needed for the job. Just because you fail to answer immediately to a random question it does not mean you are unqualified for the job.
When I conduct an interview I try to only ask open questions like:
* What is your favorite IDE? - Whatever the person answers, tells a lot about how he works, what tools he uses, and if he is aware of the common tools
* What feature of the new Version of <Programming Language> do you like the most? - A) you may learn about some weird feature, b) you can discuss how that feature will improve code
* Do you prefer JavaScript or TypeScript (dynamic vs typed language)?
There is no right answer. It is all about how the candidate argues his answer. You learn more about the person and if you can deal with him on a day to day basis (and if he has the brains to think about things).
> There is a way to weed out the liars - you hire them and then when it does not work out you fire them.
In my experience, firing someone takes multiple months. Months in which they are mutating the codebase (with review, but it's a time sink that shouldn't exist for a decent senior), influencing other engineers, etc.
Passing on a good candidate is cheaper in the long run than hiring a bad candidate. Or said another way, false negatives are preferred over false positives.
> You would be astonished how little people lie on their CV.
This has not been my experience. From something as white-lieish as "I designed and implemented" vs. "I was a peer on the team that did it" to flat out fabrications. You learn alot by simply asking "what was your role on the project" and asking follow-ups to dig into their contributions.
There was a blog post "Adventure in the Low Status of Software Engineers" by Michael Church (apparently taken down now), basically if you're interviewing for "low status" positions you're assumed to be a fraud but for "high status" positions (VP-level) you're assumed to be a great candidate even if your resumes are almost identical in both cases.
I think you're ignoring that hiring someone onto your team takes a long time and significant effort. Say you're allowed to add one person to your team. You interview 50 people and decide on the best candidate. Then you spend the next 6-months waiting on lawyers, processing visas, moving their them and their family to the US, paying for their initial housing, etc. Might not be an issue for a small company in France that hires locals but it sure is for big companies in the US.
> You would be astonished how little people lie on their CV.
That is no doubt your experience, but I assure you it is not universal. I have heard, and in some cases personally seen, some truly shocking things!
> In other countries like Germany or France...
Perhaps the gold digging nature of Silicon Valley entices far more scammers to cook up a SWE resume and roll the dice, but I think it's a very different hiring world here.
They may exaggerate claims - yes, that is why you gave them a call in the first place. But then again you exaggerated your claims in the job posting of which skills are required for the job.
The one thing that I noticed is that only the US companies have this awkward parallel reality 'technical-interview' hiring process. In other countries like Germany or France the interview process is mostly focused on the person and the desire to work for the company and the willingness to learn the skills needed for the job. Just because you fail to answer immediately to a random question it does not mean you are unqualified for the job.
When I conduct an interview I try to only ask open questions like: * What is your favorite IDE? - Whatever the person answers, tells a lot about how he works, what tools he uses, and if he is aware of the common tools * What feature of the new Version of <Programming Language> do you like the most? - A) you may learn about some weird feature, b) you can discuss how that feature will improve code * Do you prefer JavaScript or TypeScript (dynamic vs typed language)?
There is no right answer. It is all about how the candidate argues his answer. You learn more about the person and if you can deal with him on a day to day basis (and if he has the brains to think about things).