Given that interviews are an imperfect process both ways, it makes sense to keep a period of time where both parties can shake hands and leave if it's not working out. If the new employee doesn't like some aspect of the company that he or she didn't know about after working, they should have an option to leave. Same with the employer. I've had several experiences with candidates who've gotten in using fabricated credentials and other dishonest means and sometimes plainly in bad faith. Given the small size of my company and my limited resources to conduct interviews, these kinds of false positives are things I have to live with.
Now, I have two options. Keep this person (who's not going to leave and not going to accept feedback on things they need to improve on) thereby hampering the functioning of the team as a whole or let them go. I want the second option open and I'm upfront about it. I tell them openly that there will be a probation period after which we'll make the job permanent and during this period, I try to conduct regular one on ones and communicate with the new hires to see if anything is wrong on my end.
It's not a perfect system and I'd love to improve on it but it works for me, for my company, employees, and clients and there it is. And while it sounds "cruel" in theory, in practice, it has reduced false positives quite a bit. I've had to do this just once in the past few years (and that too in an area that I'm not very familiar with - marketing). Usually, being upfront about this gives candidates the message and people who are acting in bad faith make excuses and leave.
Consider: 3 days of all hands interviews and super stressful with a 5% chance of being fired.
Vs
One two hour, non adversarial interview with an 8% chance of being fired.
I made up the numbers but it’s an example of where the approach would make sense. Just as an example.
Basically, everyone wins. You get a good signal and you don't impose something unreasonable on the candidate
I for one would gladly take that deal. I interview horribly but I’ve been extremely valued anywhere I ended up working.
The only "algo" I have people do is a simple Fibonacci algo. Other then that, we chat about development. It's fairly easy to determine if someone knows how to develop software, and I'm just trying to find people with the right attitude that I know I can work with. Then I give them a few months, if they don't cut it, then we part ways. That's happened once.
2. Interviewing. FAANG can waste 30+ engineering hours on each candidate because of how much money they can burn. Don't do leetcode interviews. Find someone who you think is good, hire them, if they're not good let them go. Don't make a soul crushing interview process.
3. Open office / an office. It's a complete waste for most startups (unless you're a hardware company and can't send the hardware units to each dev). It's a sunk cost and "back in my day"-ism in FAANG.