back

by jasonpeacock·2y ago·view on hn ↗
The author falls into the trap of every "technical interviews such, just talk to them about their experience!" argument - it's easy to sound like you know what you're talking about but not be able to actually write code.

I've had so many interviews that started strong, great conversation, amazing resume, and then they couldn't write a basic function to implement a straightforward algorithm.

Like, they literally could not write a nested for-loop that worked (in a language of their choice!).

IMO, the solution is apprenticeships/probationary offers. "Try before you buy" goes both ways - it gives the candidate and opportunity to try out the company (how many companies like about their culture, tools, quality, and work/life balance?!).

Alas, it requires the industry to shift to support that model, it's very difficult for companies and candidates to support that model on their own without most other companies doing the same.

8 comments
I obviously can't speak toward your experiences, but on the flip side I've never been surprised to find out someone can't code their way out of a paper bag after having a technical conversation with them.

I have of course met candidates who don't know even the most basic constructs in a language they're supposedly expert in. But none of them were able to "talk the talk", especially when probed directly about problems they've run into and how they've solved them.

I want to be clear I'm not discounting your experiences and I'm also not trying to say you suck at interviewing or anything like that. What I am trying to say is that my own experience tells me there must exist questions that reliably expose this kind of candidate.

Do you happen to score as "intuitive" on Myers-Briggs?

I'm idly wondering whether that's why I believe I'm pretty good at interviewing people just by talking with them.

Maybe, many of the people who are capable programmers or software engineers, but who insist that they can't tell anything about a person's ability to code without, say, a Leetcode hazing, are just wired a little differently, and not picking up on all the signals the same way?

Studies has shown that unstructured conversations has 0 correlation with on the job skills, if you just ask questions and go with the flow of the conversation it is extremely unlikely that you actually learned something important.

More likely is that you got biased from that conversation and that bias colors your later evaluations of them. A lot of people are biased like that, studies shows that, maybe you are one of the very few that would be the exception of these studies, but it is unlikely, much more likely you are among the large majority who overestimate how well they can read people in free form conversations.

And interview is generally the opposite of unstructured conversation.
The person talked about unstructured interviews though, those used to be very common until they studied it and realized unstructured interviews just finds people you like and not good people.

If you haven't prepared a set of questions and focus on those questions instead of letting the conversation flow then the interview is just a "do I like this guy" test.

I guess we read that completely differently. I don't see anything about an unstructured interview in his comment. He points out that he's good at interviewing by just talking to them. I read that as opposed to making them jump through hoops doing leetcode or exercises.
Maybe it's me, but I'm not sure someone who interprets coding interview as "hazing" can make an authoritative judgment on other people's skills and motivations.
Anecdotally, I was in a fraternity many years ago and we were warned that forcing new recruits to perform tasks that aren’t the responsibilities of being a full-member could be viewed as “subtle” hazing.

Not that I necessarily agree but I could see how someone might argue that a coding interview that doesn’t test the actual duties of the position might also be “subtle” hazing.

well, then don't do a coding interview for someone who won't be coding. am i missing something? if the job is java, then any coding test on java should be ok. if they are going to be learning a new language, then testing in an already known language should also be ok.
Au contraire, I think those that recognize the farce for what it is are better suited to evaluating objectively, rather than cargo culting the process cribbed from more bullshit artists from faang and others.
no, i think people can be very good at talking and technical depth without being able to code very well at all

perhaps you just overestimate your interviewing skill

Myers-Briggs is pseudoscience. I would not base anything substantial off of it, you might as well use TeenVogue personality quizzes since they're just as effective (shorter too).

I will say learning to interview is a skill like any other, I have no doubt the person you replied to was not born into the world understanding the nuances of technical questions and what heuristics to use to determine validity. Just like yourself.

> Myers-Briggs is pseudoscience.

The inventors' theories were unscientific. But MBTI traits correlate moderately to strongly with Big 5 traits. And reliability is comparable to Big 5 when the traits are treated as scales like nearly all MBTI tests. Claims reliability is low come from treating the traits as dichotomies and any variation as failure. The same methodology would make Big 5 look unreliable.

But I agree interviewing skill is learned.

The problem is supporting the 'try before you buy' model would basically require most companies to be happy with someone taking a month off to go try working somewhere else for a bit and then come back if nothing happens. I don't see any particular motivation for them to encourage that at all. Otherwise, the probationary period is basically just a quicker escape from a match that's bad enough that you're rather be unemployed (or at least take the risk of such). Either way it's enough of an investment that both sides are gonna want to spend a least a little effort on figuring out if it will work beforehand, like with interviews.
> The problem is supporting the 'try before you buy' model would basically require most companies to be happy with someone taking a month off to go try working somewhere else for a bit and then come back if nothing happens.

I wouldn't think that this is how you would hire a known performer. I can still see the problem, but I can also see how it wouldn't be a problem if it were a more common and more standardized process. And if the applicant were being paid contractor's wages (higher) during the tryout period, not salary-level wages.

The whole issue is to identify a "known performer" in the first place.

Otherwise, that practice being more common means people can leave their job for weeks here and there no questions asked ("I'm going to work for our main competitor for 3 weeks" won't fly if it needs approval), and come back without impact or penalties on their performance.

That would be ideal, but we're so so far from that. Even getting people to properly take their parental leave is still a fight.

I’m sure some people would accept being paid to try out without the company having any commitment to hiring, but those are probably not the people you’d actually want to hire. If a company can’t commit to hiring then why would a confident professional bother with the company? A probationary period seems like a reasonable compromise where the company commits to the expense of onboarding while still having an escape if it goes poorly.
those are probably not the people you’d actually want to hire

why not?

That'd probably spawn a class of workers that are happy making a living off of trying out at places. Aside from that, why would someone that has a job quit their job for a company that won't commit to hiring them. The worker can already quit the new job if they don't like it early on. This only benefits companies.
Here's the thing:

There is a massive asymmetry between what a company that can afford to do 1000's of trials at a time to get what they want, and an individual who really can't afford to be culled and lose 2-4 months looking for another position.

Also if you've ever dealt with temp->perm situations, people can change when they go perm. It is a real issue.

---

As an employee: I usually can tell if a company is bad, I don't need to work there 2-3 months to learn that.

So for me there's little to no benefit, and massive downsides in that I don't have ANY real safety net to jump to the next "internship".

Maybe in Europe where they have stronger employee protection, and also better healthcare I'd consider it. But in the US, I'll take every protection you give me.

The norm in Sweden is that every position is "probationary" for the first six months, which then automatically converts to a permanent position. What it means is that the employer can terminate the employment without cause during the probationary period.

It's kind of a necessity in places with strong employee protection, otherwise companies would have an even harder time hiring. Now, companies can take a chance on someone without risking very much, so I think it's a good thing. Obviously, the companies have to pay new employees the same as the permanent ones and give them the same benefits, sick pay, PTO, etc.

The flipside is that some unscrupulous companies churn employees every six months to avoid having too many permanent full-time employees. Not common in the IT industry though.

I understand a similar system is in place in other places in Western Europe.

I have no issue with it. But in a situation where my healthcare, etc is all riding on my job, the stakes are a bit higher.

That's the issue in the US, IMHO. I suspect there would be more businesses started if the risk was lower. Yeah, YOLOing is hard, but it is harder when you know your healthcare, and everything else is on the line.

I absolutely love the idea of both sides being able to "try before you buy". Some jobs just suck for the employee and they wont know until they're a month or so in and it's a waste of effort for both parties to continue cordially expecting it to magically get better.
I think about half of the dev jobs I've had started with a 3 month probationary period, during which either myself or the employer can decide "never mind" without serious consequences.

As the new hire, I strongly prefer it for the exact reason you state: it's pretty hard to know if I'm a good fit in a company prior to actually working there. I've used the probationary period twice to get out of such mistakes.

As the hiring company, it's also a great thing for exactly the same reason but from the other side of the equation.

Lots of companies do this. I think more companies should join the bandwagon.

What kind of consequences would a dev have for quitting early? I think you can do that at any job.

The consequences are always about your next job and whether you can explain leaving a position quickly

The idea is that you haven't really quit early, you've opted not to take the position. It's really more of an expectations thing than anything else. Nobody's going to be mad that you decided not to stay.

For the two times that I've opted not to stay, I just don't list those companies in my work history at all. I've never been asked about them in an interview and have never had to explain.

If I were to be asked, though, I'd just say something like "I decided that I wasn't a great fit and left during the trial period so that the company had the best chance of finding a more suitable candidate in a timely way."

that sounds great and i wish i could've done something like that in the past.

however i'm used to not quitting one job until i have the next one lined up (especially now that the interview process can take months to go from application to start date).

> i'm used to not quitting one job until i have the next one lined up

Well, that certainly affects your flexibility with this sort of thing. Many years ago, I learned that this stance is too limiting for me and sometimes encouraged me to take jobs that I shouldn't have taken.

Everyone is different, of course, but what works for me is to keep enough of a bankroll on hand that I can go at least 6 months without an income (Although these days I keep 1-2 years worth). That gives me the breathing room to be pickier about where I work.

if this is how your company hires, you're basically giving up on hiring most senior eng
How does “try before you buy” really help the candidate though? Many (most?) things that suck about a company can be (or are naturally) hidden in a two-week trial period.
I would love a view of the code and architecture and backlog I'd actually be working on to see if it's a huge ball of mud.

I have been fooled by companies selling other perks of the company, but the actual day-to-day was terrible because of terrible code.

I've also been sold on intentions to improve the code, but which never panned out after 6 months because shipping features was still the foreseeable priority. You can sometimes find honesty up front like "we know it sucks but we're going to improve it" but that goes back to selling intentions with no real solid date for that effort. It might work out, but it's a gamble for a candidate.

Plus you also get to see incidents, how they write tickets, and sprint volatility and how much stuff gets pulled in/pushed out because priorities change rapidly (there's probably a proper PM term but I can't be arsed).

It would stop a lot of people joining, realizing it sucks, then doing their year and getting something else. Then they might actually have to improve their shit instead of burying the facts.

Same, I've joined a number of orgs that seem to fit well with what I was looking for, but even the answers to my (rather pointed) questions during the interview and offer negotiation turned out to be outright lies that caused both of us to suffer a ton of wasted time and effort. TBYB would save a bunch of time, but so would people dropping the bullshit acts.
But you can join and then quit. What does an “official” period get you that you don’t already have?
The "standard" probation period is 90 days. Outside of the modern silicon valley bubble, lots of companies hire with a probation period. Inside the bubble, the equivalent is contract-to-hire. But I really wish companies would just go back to the old days of probation.

My current job was contract-to-hire. Officially an 18 month period, but they converted me to employee after 3 months.

How it helps the candidate is exactly the same as how it helps the company: The interview process was a half hour phone screen, a 1-2 hour onsite with two people from the team, and a half hour followup call with the hiring manager who hadn't been able to join the onsite.

You know those week-long all-day interview processes many of us hate? Not necessary at all if the company is willing to give people a try and just move on if it doesn't work out.

You know how companies complain that they can't find good hires because their ridiculous interview process filters out the good ones and keeps the great ones from even applying? Having a sane short interview with probationary hire costs way less productive time and gets people onboard fast. And if someone doesn't work out, you can have another candidate take their place next week. It doesn't need to take months.

The candidate is still “buying” when they resign their current role to take the new one.

This is “try before you buy” for the employer but much, much less so for the employee.

> Having a sane short interview with probationary hire costs way less productive time and gets people onboard fast.

That sounds like a ridiculous interview process which would filter me out from even applying. I'm not going to give up the job I already have and go through all the hassle that comes with a job change for the possibility of a new position.

Because you are afraid of being dropped out there into a months-long grind to find anything. I'm saying that if tech companies hired like normal, sane companies, that would not be a fear. Sure, they might not keep you through probation (and YOU have a lot of influence over that). But if not, you go start at another company. That's the benefit I'm talking about with not having stupid long, arduous interview processes: Not having stupid long, arduous interview processes.
Or just fire fast in general.
> it's easy to sound like you know what you're talking about but not be able to actually write code.

Indeed. I'm gonna vent about my anecdote: we hired someone who talked a good game. Turns out they have worse ADHD than I do, will take a few weeks to do what I expect a couple days, and can't follow a deep technical discussion for more than 10 minutes.

They're trying, I'll grant them that. But their growth curve has been... low logarithmic.

I wish we had been more aggressive with the interview coding tests.

edit
yeah, it's almost like the hiring process is a gamble with no solid heuristic :(
> IMO, the solution is apprenticeships/probationary offers

Most companies would love this, especially startups. The problem is that desirable candidates do not love this arrangement - there's an opportunity cost and risk for the candidate here and if you're in demand you can get a solid offer from a company who isn't trying to hedge.

> IMO, the solution is apprenticeships/probationary offers. "Try before you buy" goes both ways - it gives the candidate and opportunity to try out the company (how many companies like about their culture, tools, quality, and work/life balance?!).

I had an ideal experience with the job that did this with me. It wasn't a probationary offer, they just offered me a seat as a contractor for a month as a tryout. At the end of the first week I found a buggy, unoptimized query that was slowing down a critical part of their site and frustrating them for a while, fixed it, and they made me an offer at the end of the day. Everybody was happy.

I don't know why this isn't done more often.

There's a risk with that in more sensitive areas, sometimes its months before you're allowed to see something serious because they don't want their secrets exposed.
> IMO, the solution is apprenticeships/probationary offers.

"Contract to hire" is a popular way of doing that.