I give live coding tests generally based on the level they claim to be at in the language. It doesn’t have to be perfect as I’m more concerned with why they’re doing a thing. I usually pick something fairly basic with some edge cases just to see if they mention it.
As opposed to homework, it also proves that you can at least basically work in the language in question (I’ve had a couple of people who got to my round but seemed to know almost nothing about a language they claimed a lot of experience in (like declaring variables and struct members wrong… seriously). We also caught someone that didn’t seem to have done the homework themselves.
If the candidate makes mistakes or gives an imperfect solution, I try to gently guide them to where we need to be. I ask them to explain why they made decisions they did, any edge cases, and how to improve performance or scale it. I expect them to ask questions when something is vague (and usually something in my problem can be interpreted one or two ways for this reason) because these are things they will encounter working with stakeholders and other engineers. If they can’t do that live and on-the-fly, they’re probably not for us. I fully expect nerves to be a factor and account for that; we’re all nervous in interviews.
People have different levels of “nerves” as others, and it kind of sounds like you may filtering out applicants on an arbitrary metric (how nervous a person may be in an interview). Don’t have enough information about your process to say for sure (obviously), but it may be something to think about. Interviews can be very high-stakes for some people (such as “I may become homeless”), and not for others (“my parents are rich”). After hired, it’s not necessarily as high-staked, and toy problems aren’t what SEs work on day-to-day.
I’m mostly making sure they didn’t completely lie about being able to work in the language and can explain what and they would do, why, and how they respond to feedback. I expect people to be varying levels of nervous and that’s fine. I work with people to get them focused and take the edge off as much as possible.
What I ask for usually is related to what we need to implement, but a more basic chunk of it to, for example, show that the candidate understands concurrency and can use basics in the language to do something with that (which we do frequently).
For many positions, we do not have homework and this is the only coding we get (kinda depends on role and project).
As a newer company and still technically a start-up, the boss paying the bills can decide we need to chase something else and he isn’t being talked out of it. This can lead to very fast collaborative design and coding of PoCs which can be more intense than the interview. I don’t like it but it is what it is. Not everything we do is nice, stable, and long-term.
I can relate to needing that job; I’ve been homeless, so I definitely kno the hat that pressure feels like and why nerves alone are never a deciding factor for me.
I give live coding tests generally based on the level they claim to be at in the language. It doesn’t have to be perfect as I’m more concerned with why they’re doing a thing. I usually pick something fairly basic with some edge cases just to see if they mention it.
As opposed to homework, it also proves that you can at least basically work in the language in question (I’ve had a couple of people who got to my round but seemed to know almost nothing about a language they claimed a lot of experience in (like declaring variables and struct members wrong… seriously). We also caught someone that didn’t seem to have done the homework themselves.
If the candidate makes mistakes or gives an imperfect solution, I try to gently guide them to where we need to be. I ask them to explain why they made decisions they did, any edge cases, and how to improve performance or scale it. I expect them to ask questions when something is vague (and usually something in my problem can be interpreted one or two ways for this reason) because these are things they will encounter working with stakeholders and other engineers. If they can’t do that live and on-the-fly, they’re probably not for us. I fully expect nerves to be a factor and account for that; we’re all nervous in interviews.
People have different levels of “nerves” as others, and it kind of sounds like you may filtering out applicants on an arbitrary metric (how nervous a person may be in an interview). Don’t have enough information about your process to say for sure (obviously), but it may be something to think about. Interviews can be very high-stakes for some people (such as “I may become homeless”), and not for others (“my parents are rich”). After hired, it’s not necessarily as high-staked, and toy problems aren’t what SEs work on day-to-day.
I’m mostly making sure they didn’t completely lie about being able to work in the language and can explain what and they would do, why, and how they respond to feedback. I expect people to be varying levels of nervous and that’s fine. I work with people to get them focused and take the edge off as much as possible.
What I ask for usually is related to what we need to implement, but a more basic chunk of it to, for example, show that the candidate understands concurrency and can use basics in the language to do something with that (which we do frequently).
For many positions, we do not have homework and this is the only coding we get (kinda depends on role and project).
As a newer company and still technically a start-up, the boss paying the bills can decide we need to chase something else and he isn’t being talked out of it. This can lead to very fast collaborative design and coding of PoCs which can be more intense than the interview. I don’t like it but it is what it is. Not everything we do is nice, stable, and long-term.
I can relate to needing that job; I’ve been homeless, so I definitely kno the hat that pressure feels like and why nerves alone are never a deciding factor for me.