Spent 50 hours on a take-home assignment only to be ghosted
reddit.com
reddit.com
I responded for some clarification: Where could I improve? What would make me a more attractive candidate? Nothing. We're a pretty close-knit tech community (Boulder) so it felt like a real slap in the face.
I manage dev hiring at my company, and when I give take-home assignments, I make sure to give them a timeline of no more than 2 hours. If you get to that point, it's okay to tell me what you would have done, as I should be able to tell by that point if you know what you're doing and could accomplish it.
"Busy" is not an excuse. If you've got the time to interview someone, you make the time to treat them respectfully and provide quality feedback.
I always hear warnings about how this opens you up to very scary legal liability, but I'm wondering how true it is. Has anyone ever gotten into trouble providing feedback?
I guess things like "you had no social acumen and your hygiene left too much to be desired to be hireable" wouldn't go over well.
... and, yes, I know of a few cases where honesty was not the best policy. The circumstances were quite possibly valid where others would not have felt comfortable with the individual, and potentially cost the business money, but being honest at that stage was not doing anybody any favors.
In technology, if you believe someone lacks x, y or z, to round out their skill set and you can articulate it without making it personal, I think the recipient will appreciate it - maybe not the same day as they were rejected, but it's always nice to get a perspective from an outside party. If you can't articulate the short comings then maybe focus on the good aspects and then use the generic not today, maybe in the near future kind of response... but you shouldn't ghost them.
First, I will never accept home assignment. There is lots of problems with this even if intentions are good.
I assume this kind of request tells me something about the organization and the manager making the request.
I will ask if it is company policy or local initiative. Sometimes managers just don't know any better.
I would politely explain why I won't comply. I will propose alternative solution which is session over Skype that lets me show how I work while I gather requirements, design, implement and verify the solution
Lastly, I will observe the manager dealing with the unexpected request and grade based on how she deals with it. Remember, they want to got to know you to get better deal, you should do the same.
If I am on the market I want to find and chase some number of potential offers. Ideally, I will get all those offers at the same time to pick and choose the best of the pack. This all happens while I have other engagements with my current employer, while I am closing projects, etc. I don't have infinite amount of time. A request like that would drain all my available resources and prevent me from taking part in other processes.
If you don't have lots of experience you don't want to work for crappy company. If you are experienced you already probably saw a lot of dysfunction and you are more likely to figure out how to work in less than ideal environment.
On the other hand, you don't have experience, you want to learn and it is most likely you are going to learn bad habits working at bad company or for bad manager.
Just stay away. There is enough companies to work for that you don't have to choose from the ones that have warning signs all over them.
But in my own reality, My tangible options were: 1. Pay upfront and study endless hours for a whiteboard interview + hours with phone screening + day spent onsite. 2. On-demand take home challenges (vary from 1-2 days, depending on the company) 3. 1-week payed project with presentation at the end 4. Some cocktail mix of the above
Unless you know the founder, senior managers, or have built rapport with most of the engs of a company, I never been able to push back, not even in markets where the demand was extremely high.
Only if you don't really care what you work on. A lot of people really want to work at specific companies (like Apple or Google) or in a specific field (like finance or games development). In these cases those companies can place a lot higher demands on their applicants and make them jump through a lot more hoops.
If these hoops actually lead to better quality candidates is of course a different question.
Why would you turn away a candidate that is able to explain why your process is flawed, stand for what he believes and propose a solution that gives both parties what they want. Do you have such surplus of candidates that you can throw away the ones that have spine with impunity? In your case you want to learn if the candidate is able to code and what best way if he shows how he does it while he does it with you sitting beside. Also explaining the process and showing way more like asking for clarification and verifying results with you?
The insecure parse this as a threat to them, if we're being frank.
It also costs them more money, and having you shoulder as much of the burden as possible is part of the short-term-thinkers' goal.
Just to expand a little on why a take-home test could be warranted, I can imagine a few scenarios:
1. You're a Facebook/Amazon/Netflix/Google/Microsoft and you have candidates lined up around the block trying to apply.
2. You're bootstrapped or full on headcount and can afford to take your time and absorb lots of false negatives.
3. You're in a very niche space and know that the few people in the domain are going to be willing to put a ton of work into each and every application. If there were somehow a job that let me play video games and read science fiction while fixing electronics gear on the Moon, of course I'd do a paid take-home assignment for a chance.
I can assure you there is no shortage of candidates willing to work for any of them that would take the assignment in a heartbeat.
I can assume the reason they are not giving assignments is what I stated, the hiring process is extremely expensive and it makes absolutely no sense to do stuff that does not give any useful information but may prevent you from ever reaching top candidates that will not let themselves be subjected to this.
The coding assignment has a purpose and the purpose is not to tell if you are world class developer but assure you meeting minimum requirement to be considered for the position. If you give it as home assignment there will be tons of people willing to cheat like getting somebody to do it for you and then explain the solution so that you might pass cursory inspection. Or people who will take inordinate amount of time and spend 50 hours instead of expected 30 minutes you said should be enough.
There is no excuse, the time you spend explaining the assignment and reviewing the results would be better spent setting up a coderpad session (https://coderpad.io/) where you can actually see the person work on the solution and not only the solution itself. Where you can ask questions and have understanding of whether the person is able to solve the problem analytically or writes stuff at random until he finds solution by trial and error.
But yeah, as another commenter said, they gave two weeks and it seems like a multiparter.
Got the job. 57% increase in compensation. 550k/year combined.
Totally worth it.
Only negative is it's months later and my right shoulder still hurts a bit. Getting old sucks.
But I don't interview at companies unless I really need to get in. If it were some lousy startup and I'm interviewing there it's because I am hard up and need the job or it's tactically where I need to be next to get where I am going.
Basically if I am spending the time interviewing I am probably willing to do whatever it takes to get the job.
Yes, that's a common technique. Another, depending on how they found and contacted this startup, is that the test isn't really from the company it claims, the contact person is actually a candidate who is tricking people into completing the take home assignment on his own interview somewhere else. A third technique, when the questions seem like homework questions, is that it can be a student somewhere impersonating a company and posting fake job ads in order to get other people to do his school assignments.
Generally one should verify the company exists and that their contact works at the company before proceeding with these. Also if the assignment appears to be exactly something that would be of great benefit to the company and also takes a good amount of work, it is best to decline as some companies use sham job interviews to get free contract work done.
A few lines of code by some random person are not going to help your company, unless there is 'deep insight' i.e. maybe some high end AI thing, etc..
Code needs to be owned, maintained, up to spec, documented, integrated.
There's nary some random person can do remotely with little guidance that's going to help.
The 'coding' part isn't that hard, it's all the details etc. that matter.
You'd waste far more time and energy trying to get the right person, the right bit of code, changing it to suit the common architecture etc..
Obviously there are ethical questions, but they're moot if it's a stupid exercise to begin with.
> decided to put everything else on hold
> That in turn is making my life miserable ... anxiety attacks
> Why get someone's hopes high just to fuck them right in the face
> because there were a bunch of typos in it.
Overall if OP manages to process it the right way it'll be a very good life lesson. Never put yourself in such a weak position if you can't accept defeat. Also, if it took him 50 hours, either the task was way to big or he wasn't a fit.
- Spending a lot of time on something doesn't equal success
- Don't get miserable over things that are not in your control [0]
- Don't trust companies, they're money printing machines, not charities.
- Most people don't care about you / your time, unless it's in their direct personal interest
- Always have a backup plan
For me personally, I cannot live a skeptical nor cynical life and I usually deal with people not companies. When I start the interview, I get the sense of their people, and if I find them to be decent I move on with the process. Most of the time my expectations are met fortunately. So, I can’t really blame the victim here.
I am not sure how you are supposed to make a choice between doing it quickly and being called "sloppy", taking a realistic time and being called "slow", or any of the points inbetween.
I did it in 6 because I enjoy that sort of work and considered myself fast. I sent it to them along with an email saying there was no way someone could do it in 3, let alone 2, and I wasn’t interested in moving forward.
One of the cofounders called and tried to get me to interview, but I explained that between this and the call I’d had with the other cofounder (“What is the lowest possible salary you’d be willing to accept?”) I wasn’t interested.
Oh man, the 'Jerk' tax then automatically sets the salary up 15%. For just that comment alone.
I have no problem being rejected but make sure you are actually doing so, a form email is fine. Ghosting me is not, and I don't need a phone call telling me you're not hiring me.
Jeff's boss is very confused, and explains that while they had been talking about hiring someone they hadn't made any actual decisions to do so and even if they had been wanting to hire someone now, Jeff was no way in a position to make job offers to anyone.
My reasoning is that a potential employer can find out what they want abut me and my skills by looking at my employment history and by speaking to my referees. To invest several hours in a test that carries no guarantee of at least an interview is not an investment I want to make when I could be spending that time with my family, or working on other applications.
Another way of looking at it how I explained it to a recruiter who was annoyed that I wouldn't do his clients weekend coding test. I asked him if he would expect his client (off the shelf software house) to spend 5+ hours doing a coding exercises to prove their worth to a single potential customer - with no guarantee the potential customer would acknowledge their effort? After some hmmming and haaaaing he said no, he wouldn't. So I asked, why should I?
(General statements with lots of holes based on personal experience and general subjectivity ahead)
White-boarding is for recruiters, hiring managers, and the devs who volunteer to step into interviews, so that they don't have to properly vet a candidate. It's lazy, and very often unrealistic.
Take-home assignments display a general lack of respect for the candidate's time, are often nothing like the work actually being done at the company. And are a lazy, passive means to gatekeep the hiring process.
Interviews that cover/ask about basic algorithms without acknowledging modern development practices and critical thinking (e.g. where and how to find the answer) aren't indicative of creativity or flexibility of the the teams you'll eventually land in, nor the company on the whole.
---
The best advice I give newer, less experienced developers is: Build a public body of work in one way, shape, or form. Build relationships with people who can be good references. And lean on both as points of confidence when looking for work or being recruited. Look for companies with which the first person you speak with has a technical background, and actually understands what the role is for.
This can be pretty difficult. Most places you work for will not have your work as open source. And if its backend work then there is not a lot to show the public in terms of end results. The sort of thing I am good at are building relatively large scale projects, it's not the sort of thing that I can do in my spare time without spending months.
On top of that, I have offered people examples of code that I have in bitbucket and they still insist that you do their pointless c"oding challenge". Evey company thinks that they are special.
Years back now this is what we did when we were hiring, and then used it to jump start the conversation in the interview. Tried to keep it to an hour or so of work, but if someones interviewing at multiple places that can add up quickly.
I think your recruiter is probably right, unless you have some sort of outstanding place where people are lining up to work. Personally I refuse to do anything like it for interviews now, and I know a lot of others on the more experienced end that do the same. There's way too many places that'll hire without it to bother, unless it was somewhere like google where its sort of expected.
> ...can you build an endpoint that...
Wait, you're expecting someone to whip up an endpoint that pulls in arbitrary parallel and serial data sources, handles errors, has logging and also has tests IN ABOUT AN HOUR?That's kinda optimistic!
That's more than just "flow" that they're expecting to see.
Nothing about that sounds tricky or time-intensive to me in any language I've used very often. An hour sounds perfectly reasonable to me.
I'm curious where you're coming from here. What part of this would you expect to spend so much more than an hour on?
It would then be an exercise with toy data that measures how smoothly the candidate conforms to the expectations of whatever framework they're using to solve hello-world-level problems.
"An hour" is a really short time!
Am I misunderstanding you, or are you really saying that you expect someone to take a week to write a program that spawns a couple of threads and makes a couple of HTTP requests?
Regarding whether my company would like, or needs another me, you'd have to ask them. I believe they'd say they would like several more of me. And there's nothing wrong with that. I provide a good amount of value.
data fetch, serial: REPNE SCASB
I also can use a webclient of some sort, which is handy for looking up instruction timings.
the GP is probably coming from some workplace that doesn't do exactly that same thing all day, every day, and doesn't know a framework for this from the inside out.
How to do a custom HTTP request on any language will probably take some good 15 minutes reading the documentation (if one is perfectly comfortable with its networking documentation), how to parse JSON will take at a minimum some good 30 minutes reading the docs even on Javascript (unless you are ok with eval). Discovering how to serve that endpoint is a multi-hour learning task by itself.
If you want to see how/if a candidate handles errors, logging, adding tests, etc. you should explicitly ask the candidate to handle errors, and add appropriate logging and tests.
Otherwise, you're mainly testing whether a candidate can read your mind.
The problem is, the appropriate level of error handling, etc. depends on context and if part of that context is in your head only, your test is sampling a lot of random noise.
Ask for what you want. What's the worst that could happen? The candidate gives you want you asked for? Not a bad sign for a prospective employee.
50 hours is not reasonable or valid.
The take home went well and took an hour or two, but it was a well contained problem and fun to write. I didn't do well on the docs share screen which is largely a separate skill you have to prepare for and I find more stressful.
Early on the 'I'm watching you solve a math puzzle' is brutal especially if you didn't go to MIT/Stanford where you're pretty well prepared for how to succeed in the technical interviews. My school (RPI) was more harmful than helpful - they had no idea how the process worked so you mostly learn through failure. This plus a dash of imposter syndrome makes succeeding in these out of school pretty tough. Once you've validated your skills by succeeding and working somewhere it's easier - I'd guess because you're more confident in your ability.
I wonder how much engineer mobility is limited by the stress of these interviews. If you don't find them stressful you have a pretty easy way to massively increase your income in a couple years. There's a lot of value in just getting good at passing technical screens. I don't have a better solution to this, but it is frustrating. Lambda school's approach to preparing explicitly for it is probably a good one.
Also, an hour is ridiculously optimistic for this.
It's a bit like having a home builder job interview: "Have you had experience framing a house? No? Then I'm a little unsure you'd be fit for this job." It's not wrong for me to say, "no, you've never done this sort of thing before, you consider it too hard to do in an hour? You might not be the best fit"
I feel like such large take homes should only be done if you really think the candidate is a good fit after some interviewing.
For me to consider them a good fit they’d request money to complete the assignment. Fixed would be A+, hourly would be C, free would be F.
An interview is one thing, like a free consultation. Take-homes and even all-day/3+ round processes are pushing it.
I hope you're compensating them for the time. Junior, or otherwise, that's disrespectful of the candidate's time.
> be ready to jump through some serious hoops
Eesh. This is just an abject example on just how bad the hiring process has become.
Typically, we provide a small compensation for the candidates time, although it probably doesn't amount to a lot per hour.
>Eesh. This is just an abject example on just how bad the hiring process has become.
To be fair they can jump through hoops on their own and build up a body of work through personal projects etc and we will make a hiring decision based on that or we will provide them beautifully designed test assets and ask them to make something functional to the best of their ability. When they are done, hopefully its something that they can be proud of and build upon, whether we hire them or not. We put ourselves at their full disposal to help them wherever they are at as they complete the test project.
That's fair IMHO, however not the complaint here. It's that after so much effort, the candidate got ghosted.
Why would they assume otherwise? You have made no payment and have no ownership of this as far as I am concerned.
Edit: I see in a subsequent post that you do offer a small payment.
Now I specifically ask how many other candidates for the same spot are in the stage of the take-home exercise. If it's more than half a dozen, forget it.
It depends on a number of further factors: Anything up to 48 hours I might do for free. For anything more, I would push pretty hard on them paying for my time to make sure they have skin in the game. A number of reputable companies do this now.
I wouldn't even suggest this. Anything over 1 hour is biting into my own valuable time. Your take-home challenge should not take longer than a coding challenge I'd do for another company (and those are around 30 minutes).
If they don't care to spend phone or on-site time interviewing me after this, then they were never worth applying to in the first place.
Some companies do impose a limit like that, to reign in people who would break the rules and put massive numbers of hours in to get an edge over people unwilling to do that. ...this limit is something I agree with as good practice.
Also, as a bit of context: I tend to work remotely. When interviewing for a remote job, I don't think I would prefer it if they were to fly me in. That would most definitely be even more time wasted, plus the time I spend on a plane is doing nobody any good, neither them nor me.
Then they said the initial part of the interview was to write a project for them, which essentially amounted to "rewrite memcached in go".
I must assume they were looking for free labor under the guise of an interview. I strongly suspect there was no job. I offered to do the work for $200/hr, never heard back.
Actually, I did hear back over six months later when the same recruiter contacted me again with the same story. I reminded him that we already talked about this long before.
Never do work for free under the excuse of an interview.
Framing them as either good or bad (or would vs would not take) misses the point though. What we're discussing isn't a binary thing, it's an elasticity curve from something like (effort required / lucrativeness of job) to the willingness of the candidate to complete the assignment.
On that basis, I'd say there definitely are cases in which I would spend 50 hours on a take home assignment with even a 1% chance of success. There are also cases where I wouldn't spend five minutes on a take home assignment with a 100% chance of success.
If you're going to give take home assignments, the effort required should be in line with how amazing a job you're offering. If you're offering people $1mm/yr to work on <that thing you love>, putting a huge filter out in front is probably in your best interest. If you're trying to get someone to move to SF for $70k a year...
As a side note: if you're going to have a take home test, have the decency to make the scenario interesting and the answer illuminating.
As a hiring manager, the takehome is very tempting. Candidates put their Github profile on their application. You go and look and there's nothing there except some make-react-app template. Their work experience on their resume is bullet points like "enabled solutions for the business through synergy", which they've been doing for five years. But they write you a cover letter about how much they like your company, so you want to give them a chance. You read on HN about how whiteboard interviews are unfair. So with no data, you reach for the takehome. If they can do some assigned work, then they'll probably do well in the role that they've applied for, and that's a good hiring decision. And they said right there in the cover letter that they'll do anything to get this job. It just seems natural.
For that reason, it's something I keep in my back pocket. (So far I've used it 0 times, though.) You can definitely have a Github repository that is more valuable than any takehome would be. You could actually talk in detail about the sort of engineering problems you've solved on your resume, and the takehome wouldn't show me anything new. But the reality is that the vast majority of candidates do neither. They work all day, so the last thing they want to do when they go home is write some open-source software. I get that. They have no idea what a resume should look like, since they've never been in that resume screening or interviewing role, so they write whatever some professor in college told them to do. ("It must fit one one page," is what I was told. I have learned that the opposite is true, if you want a job anyway.) So having some way to determine "can this person program at all" is valuable. But it's very time-consuming for the candidate, so is not ideal. A smart candidate will say "nope". A naive candidate will spend 50 hours on a 2 hour task and be mad. So it's probably not ideal.
(As an aside, what is the deal with these boot camps? Every single applicant has the same exact react app in their Github, and an entry for building it on their resume as though it was work experience. I sifted through 100 such resumes recently and almost have a script to determine which bootcamp they went to based on which files are in their Github. Is anyone getting jobs this way!? I am beginning to think that it is some social experiment involving bots.)
Or they are not allowed. A lot of companies like Apple don't let devs contribute to open-source.
(Still not an excuse for a take-home, as you note.)
Story 1: test project for about 10 hours, done according to industry standards. HR asked to refactor it so the code base would be read-accessible via webserver. I've declined it as a bad practice, learned enough about the company.
Story 2: put 10+ hours into inventing interesting take-home case and writing spec, gave it to 5 candidates, gave every one of them a half-hour code review session, accepted the best one.
I am having fun while writing code and prefer to work with similar people. It's okay if you don't want to build a take-home project for me, there are lots of software engineers who will and it will be more fun to have them around.
And, by the way, you may chat with cook for hours about food, ingredients, sauces and hygiene, or you may ask him/her to just grill a steak right here and taste it.
We used to send out open-ended programming assessments as part of our hiring process. It's really hard to keep track of everything without an ATS and good internal processes and even with those it's hard to predict how many candidates will drop out at this stage so there's a strong incentive to invite too many and risk getting swamped than vice versa.
Not proud of it but I've definitely kept candidates waiting for several weeks due to being unable to keep up with the rate of submissions.
I think there's a non zero chance this guy is assuming too much malicious intent and could get a positive response still
Don't. Because it's a self-inflicted problem. The "tech leaders" (aside: this is a gag-worthy phrase) do it to themselves through inflated requirements and no real holistic understanding of what they either want or need in a role.
Hiring well is not difficult. Hiring well with stupid expectations is, and that is firmly and inescapably the fault of ye olde "tech leader", and sympathy is undeserved.
A two week lapse is egregious. I would assume incompetence before malicious intent.
Have your interviewee come up with a potential design and ask them to highlight some specific concepts or programming methods. Then cover an individual component in person, pair-programming style.
Don't know why more companies don't do this.
It is amazing how many people have a resume that looks good, and seem solid but they cant code in any reasonable way.
We do phone screen, bring in applicants that have a good resume and presented ok on the phone part. If we like them, we give them a take home assignment that is based on our technology stack, everyone gets the same one for each posistion.
They committ it to our github, we spend some time looking through it. We bring back the best performers for a second interview where they can present their work and talk about the experience.
If we like that we hire them :)
The quality of our hires have gone up once we started doing it.
I understand it is not for everyone.
If they find it so easy to ask someone to work on something in their free time when they don't have any leverage, imagine what'll happen when you work for them.
But it's easy to use a ton of home-time as a low cost filter bubble. You pay, the company doesn't.
And they're not required in telling you why they said no or ghosted you.
A site that takes requests for opensource code packages or modules (or refactors or contributions) and lets applicants work on one of those.
The hiring company could select what skills they want to test the applicant on and the applicant could pick among any number of matching requests for open source work.
I do get the issue. I've been in jobs where having a writing sample or even giving a presentation on some topic were pretty much non-negotiable and, if a candidate didn't have those ready to go, they'd have had to prepare them. But, at least in those cases, it was a topic of the candidate's choosing so they didn't necessarily need to create something custom.
This is the key point. If you're truly desperate you have to try anything, including 50 hours on a take-home assignment.
Yes, those 50 hours could be spent applying for other jobs, but if you're desperate that's what you should be doing with hours 51+.
The process successfully selects for good candidates.
[1] https://en.wikipedia.org/wiki/Consideration_under_American_l...
The company said "do some work for us for free" and the applicant accepted. A compensation claim would go nowhere.
This is more in the state Department of Labor's jurisdiction but they won't do anything about it either.
Sending a bill would be more of a symbolic FU than anything.