Completely agree here - like a fool I recently went through an entire day's worth interviews for a role (hello Stripe recruiters!!) that required both me and my wife taking PTO, with her looking after the kids while I talked to one junior dev after another about data modelling and "culture fit".
When I worked for a technology analyst company, we would ask for writing samples--which most potential hires would already have. But, if someone didn't, they'd have to create one. It was very reasonably a non-negotiable requirement given that's what they'd be doing day to day.
> When I worked for a technology analyst company, we would ask for writing samples--which most potential hires would already have. But, if someone didn't, they'd have to create one. It was very reasonably a non-negotiable requirement given that's what they'd be doing day to day.
The equivalent in tech is asking for a portfolio, which I have an ample amount of on github. I'm more than happy to hand this over to potential employers for them to gauge my work. But, the idea that I could complete a 4hour assignment within a week is ridiculous. My portfolio comes through constant, marginal improvements that make up a working system in sum. I've collectively spent more than 4 hours on most projects on GitHub, but they're done at my leisure, in my miniscule amounts of spare time, just spread over many years. But again, the idea of spending a solid four hours on any of them is just laughable. I have no time to do that.
Also, when you get to full day interviews, it's typically a sign the company wants you. Having been in both the hiring manager position and the candidate position, I've only once seen a full day interview end in a "No" and it was for particular circumstance.
> It's much more a two-way benefit, versus an assignment where only one party (the company) gets any information from the other (me).
> The equivalent in tech is asking for a portfolio, which I have an ample amount of on github. I'm more than happy to hand this over to potential employers for them to gauge my work. But, the idea that I could complete a 4hour assignment within a week is ridiculous.
These two statements made me think of something. Usually, (and from comments I've seen many times on HN) I'll hand in my resumé and it has my Github etc, and the hiring team don't really look at it. Perhaps if I'm given a coding test or assignment, I should pick one of my projects and ask them to complete an open issue, so that I can gauge their coding ability and how they use Git, respond in issues etc?
Fair's fair, and it would tell me a lot more than I get to know right now.
I don't have a very large open source portfolio, but I it's probably bigger than 95% of the people I work with, I don't think my open source work is particularly representative of my abilities.
Companies want to have a somewhat standardized hiring process so that they can evaluate candidates fairly, and most professional developers people don't do much open source work.
Someone having an impressive open source portfolio, might be a good signal that they are a great hire, but I don't think it's a good general strategy for hiring.
As a counter counterpoint, that only makes sense if the candidate is applying to a single place.
If the candidate has lined up 4 interviews, they're not going to get 16 hours in the week to complete them. The fifth place that has no 4 hour interviews will get the candidate.
I did a take home project for Netflix that didn't have a time box IIRC - but something like "no more than a few hours". The task was to code a few movie poster carousels w/o using a web framework. Basically to create your own mini-higher level framework paradigm from vanilla JS or a low-level framework like JQuery.
I spent 7 hours on it and was fairly proud of it. I got dinged for not creating a virtual DOM and instead using the actual DOM as a source of truth. I even put in my notes (which I don't think were read) that in the real world you'd probably use a virtual DOM for this, but that would be a whole project in itself. Apparently I was supposed to spend the whole weekend creating React from scratch.
It also let me weed out the weirdly numerous companies who threw 8 hour assignments over the wall but apparently lacked the time to spend 10 minutes looking at my open source projects.
I took the first one that met my compensation/technology/commute requirements. Back then, one Enterprise CRUD job looked like any other.
They still do.
If you have kids, your partner may have to take time off too, it's just not workable.
I say no to these, and to tests these days.
Loyalty becomes the main criterion.
I have mixed feelings about this, but I can see why employers might want this.
If a company demands you run an arbitrarily long and unpleasant obstacle course without any goal or criteria just because they asked you, what they are looking for is subservience.
I was trying to be charitable. :)
On a relative scale that might be true. In absolute terms you've already lost a high proportion of good senior people who might otherwise have been interested either way. Most good developers I know would just walk on seeing a 4-hour assignment that was actually a 4-hour assignment. Some would accept a full day of interviews if the employer had a reputation for being a good place to work and offered exceptional compensation but plenty wouldn't and I doubt any would for an employer that wasn't very top tier. Risk/reward and all that.
I have a github/gitlab full of code. You want to check it? Go for it. Happy to provide a portfolio on demand.
Make me write an api client..? No, get lost.
If I ever pivoted back to pure software development and wanted to get a comparably compensated position at a large tech company would a jump through the DS&A grind - yes. But to work for a startup that offered meh compensation and meaningless “equity” - no.
Of course, portfolios are a perfectly reasonable expectation in a lot of professions including the trades.
A take home assignment only shows me that they like unpaid work.
_The_ alternative is not a day of interviews. There are in fact, an innumerable number of alternatives. One alternative is to simply drop the assignment entirely from the interview process (without replacement) and judging by what's left.
Don't forget to multiply that by however many companies they're interviewing at.
This is not true at all. I know for a fact that some FANGs do hour-long phone screens followed by hour-long coding assignments followed by a 4-hour multi-interview round. I know for a fact that a couple of major Fintech companies do hour-long phone screens followed by a hour-long live coding sessions.
Personally, the max I endured was a 7-round hiring process comprised of a mix of one-hour interviews that culminated in a 4-hour interview round, and that was only because midway through I was bumped from a developer position track to a research engineer position.
No, it's really bad. It's half-day of useless, unpaid work which takes time other things you need/have to do.
Never in my career I had to endure a day of interviews. Even FANGS don't do days of interviews, even the ones notorious for their awful working conditions. At most, there is the final 4-hour interview/test round, and even that is too much.
I'd say that these hoop-jumping obstacle courses are major red flags. If a company is really interested in getting you to join their team, why do they show so little consideration for you with all these arbitrary, capricious demands?
Hard pass.
An assignment is no replacement for a face to face interview.
whats the alternative though. why do you consider that foolish?
That doesn't solve the majority of the "senior position" problem.
Like you point out, your schedule does not have a "spare" 4 hour block in it, and paying you $1000 to find one is not going to make you jump at the opportunity if the alternative is a different role that is not asking for a 4 hour block of your family time.
Anybody recruiting for "senior roles" needs to understand the 30-40 year olds, who are the only people who have the professional experience you're seeking, cannot be recruited like fresh college grads who can blast through pointless coding tests between 11pm and 3am, and do that 3 or 4 times a week and at least some off whom will genuinely enjoy doing so.
My first production code shipped for MacOS 7.5 and Windows 3.1. I am still shipping production code (although only rarely since these days I'm mostly managing a team rather than coding daily). I am _not_ going to do your take home 4hr assignment no matter who you are or what you're offering. Asking me to do it shows a fundamental misunderstanding of who I am, and I am not going to take a job with someone who knows that little about me. (And I have way better things to do with my free time than your pointless test)
Looking at the original post they have a 4 hour at home coding assignment that’s followed up by a group presentation. I’m guessing that one is an hour or so. Figure another hour or two to prepare for that.
It doesn’t seem like it is much off from a typical 5-6 hour on site interview. Plus I think you can get more of a signal about how they can explain a problem that they spent some time thinking about vs trying them trying to get excited about a leet code problem.
I would never subject myself to a 4 hour interview either. What information can a company get in 4 hours they can't get in 1 hour? Seems like a massive waste of time done by a hiring process created by people that don't know any better.
If you want seniors to even consider you, you need to ditch all that garbage and save it for people fresh in the field.
Now if you are willing to pay double market rates you'll get more seniors willing to go through that, but if you are paying "market" rates and "good" benefits, you're not going to get the interest.
I've hired seniors - you'd be much better off replacing the 4+1 hour assignment with a 1 hour AMA or discussion about a project or ticket with the team they'd be working with and getting their feedback. Would they be able to work together?
Also, just post the salary!!! Seniors naturally will have made a wider range of life choices and will have a larger range of minimum salary they need to fund their lifestyle. Not posting it appears as if you're hiding something, which isn't a great starting point.
I’m also a parent of small kids with a busy schedule. Despite the packed schedule and demands of raising kids, it would be a huge exaggeration to suggest that I couldn’t find 4 hours of time to do a take-home if given a week of time (as is common).
The parent commenter might have been operating under the assumption that take home challenges must be done same-day, which kind of defeats the purpose of a take-home. If you’re demanding 4 hours of same day time, might as well bring them in for a 4-hour on site interview.
Strangely, few people complain about a half-day on-site but it’s literally the same time commitment. If you really have no other options and you literally cannot find a spare hour of time in any way, take a half day of PTO and complete the interview just as you would for a normal on-site.
Its not a one 4 hour take home project. Its the fifth one.
0) time doing the project is tracked, sometimes via the expectation that you commit to the git repository from start to finish. dinging you for "points" for going over the time allotment
and that the other candidates are:
1) doing way extra things that took way more than 6 hours
2) are not doing those extra things from scratch because they've been playing this game for a while
and that
3) the company still has inaccurate ideas of what a candidate should be expected to present in the 6 hours
4) is judging you on completely random things that they did not mention. "you didn't use this design pattern" "we don't like MVVP anymore, we're back on MVP. here's this other acronym."
waste of time
E.g. say they want me to commit to a Github project they provide or I am supposed to set up and commit to. I will use whatever time I am allotted and at the end, when I'm done and expected to hand it in, I will make one git commit that shows I committed everything exactly 1 second after I was supposed to start, then push that to the provided repo. Yes, start, not finish. Meaning "time travel". Maybe even commit as "Linus Torvalds" or something like that.
If they ask about this it's a great conversation starter either way. My experience is that if the talk does come to this either they have no idea how this could even happen and I can explain or judge them based on their reactions or we both have a laugh about their companies policies around this. They see I know my git and I know they're like most companies: actually pretty OK teams and hiring managers with generally crappy HR practices.
Just rewrite your git history and fudge the commit timestamps. It's not even dishonest, it's just demonstrating your experience with Git.
Of course, that doesn't work if they expect you to push to Github/lab as you go.
What do you do for normal on-site interviews or phone interviews that have similar time demands?
I’m also a parent of small children with a packed schedule, but I’d much rather take a 4-hour take home and handle it on the weekend or when I’m flexible. Giving up half or whole days of PTO to interview in real-time is actually worse for my overall schedule, not better, because I need that PTO more than ever as a parent of young kids.
The flexibility of take-homes is great as a parent.
Do you make a surgeon do four hour surgery?
It’s absolutely asinine that we accept this behavior in our industry. You’d be laughed at by every possible candidate in other industries.
> Do you make a surgeon do four hour surgery?
These are both poor examples. These are both credentialed examples. Both have already demonstrated their skill based on the credentials they hold.
Software development is not a credentialed field. Titles vary wildly - especially at startups where titles inflate.
As someone who used to do hiring for a small company, I can state that a lot of people who have degrees have no clue how to code.
Until our field gets the equivalent of a bar exam or NBME, each employer has to evaluate candidates on their own.
I don't understand how this is possible. I know CS != coding, but every CS degree syllabus I've looked at does involve plenty of programming classes, practical programming projects, etc. How is it possible to graduate from that without being reasonably comfortable writing non-trivial stuff in a couple of major languages?
Step 1. The academics are themselves not that good at coding or teaching, and/or aren't interested in them. This might sound contradictory for a CS course, but at my university (as an example) the CS dept was run by a guy whose actual background was in mathematics. He loved hiring graph theory researchers and didn't like hiring people who knew programming.
Step 2. They try to teach programming to a class of newbies, but fail miserably because teaching programming is hard.
Step 3. They find ways to cover up the fact that nobody is learning to code properly. This can take many forms. At my university (a supposedly 'elite' British uni) they had evolved at least six or seven different tricks for this.
Step 4. Because nobody seems to be accountable for anything and the whole academic hierarchy is in on the scam, nothing gets fixed. Students who complain that they aren't being taught properly are simply punished with low grades. Because grades aren't connected to anything real or objective, there is no recourse.
A few of the tricks they used to cover up the lack of learning:
• Programming assignments that had almost all points allocated to the associated English-language "report", not code. As a consequence marks were arbitrary and depended mostly on whether the profs liked you or not.
• Unrealistic deadlines/workloads were set. Students who didn't submit work on time/whose programs crashed immediately on startup were then given extra time. Students who submitted work that started up were graded as-is on the deadline. This evened out the grades between self-taught programmers and those who were struggling.
• Group projects in which the group composition was fixed by the staff. They administered a programming test at the start of the course to identify those who had already taught themselves coding and then ensured every group had one such person. That person then did all the work, and the others in the group either slacked off or wrote the associated "report".
• Assessments in which the professors/TAs simply looked at the running program on the student's screen to judge if it worked. Students were informed of this practice up front, thus you could pass a programming exercise by simply making mockups in which the buttons didn't actually do anything, or updated the UI in hard coded ways.
And so on. I put report in quotes because the contents of these reports was primarily make-work.
The golden rule - at no point in the entire course did any of the teachers actually do a code review of any kind. Code was written but not read. Needless to say, cheating was rampant. None of the above can be fixed because academics are marking their own homework.
Aha, so the secret summary is that:
Both students and teachers want the students to succeed,
so they cheat together, to make that (seem to) happen
> A few of the tricks they used
Thanks for writing about that, really interesting to read (!)
> cheating was rampant
(You don't happen to know about some websites being used for that? I recently found out about studypool dot com.)
By cheating I didn't mean getting solutions from websites although there's obviously a lot of that going on if you browse through e.g. Upwork. A staggering number of 'jobs' are obviously student coding assignments being farmed out.
The sort of cheating I meant was more stuff like students copy/pasting stuff off Wikipedia (it's all on the written reports remember) or copying answers off each other. Or they'd deliberately submit work they knew didn't function properly, aware of the fact that it wouldn't matter.
In theory, if there was demand for it the private sector could fix this by issuing certifications. In practice certifications aren't especially useful or well recognized, as the sort of people with the best skills don't see any need to take them. It's much easier and lower effort to demonstrate your skills in an interview. See this thread - people don't have the time/will to do take-home assignments that are meant to consume a few hours, tops (and I totally get that, I wouldn't want to either). They certainly wouldn't be happy if you suddenly told them they all had to cram for and take some government designed exam that checked their knowledge of e.g. Java 1.4 otherwise they'd all lose their jobs!
And a surgeon needs accreditation from the state.
There are simply too many companies hiring that don’t require this that it’s easy to just pass.
Take-home challenges aren't unpaid work. They're just a take-home replacement for the on-site interview.
If anyone tries to get you to do unpaid work (as in, actual work that the company needs to be done rather than an arbitrary challenge given to candidates for review) then you should absolutely walk.
If I have 4 jobs in my pipeline that assign me 4 hours of homework each, that's 16 hours of bullshit I have to slog through in addition to my study time, prep work, and a solid week or two of whiteboarding. This doesn't include the recruiter's technical trivia screen and the codeshare screen. No thanks.
However, one company was just really weird, so I learned that at the on-site. even though they wanted me... I said no. So in terms of preventing mistakes, on-sites are great. But, I'm not doing a 4 hour interview before any offer is made, or a clear indication of interest.
I also had an 1-hour where i couldn't build the provided code and had to go through maven repos and older versions of the major test component to make it work after a couple hours and then lost any motivation to write the simple exercise.
I also had an honest one once, where the instructions were clear, you will need a full weekend to do it. I liked the job and i completed it, only to be rejected because they didn't like my scala syntax.
Sorry, but i won't take home test again and have to gamble whether it's an actual 1h test or a full weekend one, or some random guy will spend 1 minute only to reject me.
That being said, even if it takes an hour, I still have to allocate 4 hours for it.
It's reasonable to expect someone have various languages on their personal boxen, and maybe git, but not repositories, specialized third party tools, etc. I don't run Puppet at home, for example.
Is not necessary malicious from those companies, they just underestimate the time their test take.
Thats 3-8 hours of your life back.
I did a data science take-home that asked you to scrape some documents from the web, group them by topic, extract some information the clusters, and visualize it. This could be a few hours of work, or an entire research career.
IMO, a good take-home needs to be aggressively scoped. Ideally, I think you'd explicitly ask for --and expect--a "bare minimum" solution and a list of potential improvements. That list would be great fodder for in-person interviews too.
Assuming this is legal at all according to current employment contracts, it's a huge pain for the new employer's payroll and more stuff to keep track for the employee's income tax.
Obviously meals and so forth as well. (And, assuming the law hasn't changed, US government employees have to pay for even a modest meal at a company's executive briefing center.)
OTOH, I've had 1099s for even very modest side-consulting revenue.
$600
Is it actually? I run a small business, and have trialled people a few times. I normally just transfer them the $x and report it as a business expense, same as you'd do with a contractor.
Maybe it's not technically 100% compliant, but I'd be incredibly surprised if the tax office kicked up a stink about something so petty.
(Then again, maybe it's just a "she'll be right mate" attitude that permeates even government departments here in Australia)
Depending on the potential employee's contracts and business rules, doing a side project for someone may or may not be 100% kosher.
If they don't have an ABN, they'll need to give you "Statement by a Supplier" [1], otherwise you're required to withhold tax at the top marginal rate.
[1] https://www.ato.gov.au/forms/statement-by-a-supplier-not-quo...
They're the ones giving take-home assignments.
Is 4 hours the amount of time the candidate is being given to complete it, or roughly how long the employer expects it will take? In the past I've generally come up with tests I know can be done in an hour or so (2 tops), but allowed 24 hours, exactly because not everyone is going to be in a position they can dedicate those 2 hours to it right there and then. Sure, those that did take the full 24 hours to complete I tended to apply higher expectations towards when judging, but at the end of the day it didn't make much difference - the tests were only to weed out those that had clearly made a poor career decision (and there were surprisingly many of those, to the point we switched to testing before interviewing).
> Is 4 hours the amount of time the candidate is being given to complete it, or roughly how long the employer expects it will take? In the past I've generally come up with tests I know can be done in an hour or so (2 tops),
Have you actually given these assignments to some of your colleagues and asked them to complete and how long it took (including setting up the development environment ...)? People are notoriously bad at estimating time it takes someone else to do something that oneself is intimately familiar with. So I would not be surprised that the assignments took more like 2-4 h, if you add the additional time for context switching, organising to free your schedule etc..
> but allowed 24 hours, exactly because not everyone is going to be in a position they can dedicate those 2 hours to it right there and then.
I don't think the GP was implying that the assignment was to be done right there and then, where and when would you do those 2 h in their schedule?
> Sure, those that did take the full 24 hours to complete I tended to apply higher expectations towards when judging,
So for someone with kids etc., who couldn't do the assignment straight away you actually expected more than 2h worth of work? To me that's already a red flag that you don't respect peoples life-work balance.
> but at the end of the day it didn't make much difference - the tests were only to weed out those that had clearly made a poor career decision (and there were surprisingly many of those, to the point we switched to testing before interviewing).
Unless you offer exceptionally high salary or are a highly desirable place to work at, you are likely not getting the best applicants.
Dude, if your wife is getting up multiple times a night, you really ought to consider stepping in and helping out. True males can't do the feeding, but if there is anyway you can help out with this, I guarantee your wife will be grateful. If your kids sleep then ignore this, but sleep deprivation is hell (to most people). My wife and I both worked and we slept in 4 hour shifts, then when they slept more, we went to night on then night off. Saved our marriage.
This arrangement works for our marriage. We made a conscious decision early on to not both work.
P.S. My wife is now back on track with her career while being very happy about having spent all those early years with our kids.
A four hour assessment is just absurd. When I’m job searching (I’ve been fortunate to only have to do this a few times in my lifetime, and am in a position to be very selective in the opportunities I pursue), I’d more or less be open to a quick 1hr take home assessment, but nothing more.
In my experience companies typically take one of two paths when engagement with a potential candidate: a 1ish hour take-home assessment or a 1ish hour interview with a recruiter where they typically ask a number of basic job-relevant basic questions - IMO both methods just serve as a way to weed out the people who liter their resumes with buzzwords one line and actually are not qualified for the position at all.
Interviews where you're discussing your history or even coding challenges are different. I don't know what it is about having another person there to bounce things off of and explain the process, but it doesn't feel as exhausting.
The project was both new to them and myself so a combination of experience (as per my CV) and gut feeling on both sides lead to a signing.
Sorry, but if I had started my job search even a few weeks later, I would not have gotten my current thing. The economy has been in a free fall lately and I caught the last hiring wave before both my previous company and my new one announced hiring freezes.
So if I had quit and delayed a bit, I could have ended up unemployed, instead of with a raise. Quitting puts you in the position of disadvantage, so never do that.
Being unemployed as a SWE is not an issue at all.
That's just a different way of saying "a good way to weed out seniors", which is what the original concern was - not enough seniors.
Looks like it works, though.
1. want to work from home to take their new bearded dragon to the vet.
2. have their moms contact me about work load.
3. pre-emptively book a sick day for Monday because they "plan to get really messed up this weekend".
People with kids are the worst employees!
* These have all happened to me in the past year.
at any rate evidently 89.615% of people become parents https://www.quora.com/What-percentage-of-people-become-paren...
so, probably not a good thing to weed out.
I used to do these assignment. Now I simply don't sorry.
My schedule is
6:30 AM wake up with youngest daughter, to let wife sleep in (she takes care of her all night)
9:00 AM hand off youngest daughter to wife, who takes both girls the rest of the day. I go to my home office
12:00 PM lunch with family / kids
1:00 PM back to work
5:00 PM off work... Cook dinner / watch kids while wife cooks dinner. Set up table. Eat with family.
6:30 PM Play with kids for an hour
7:30 PM Bathtime + off to bed
9:30 - 10:30 PM Infant child actually goes to sleep
10:30 - 11:00 PM Wife and I chat about our day and spend 30 minutes of time actually being together
11:00 PM sleep until 6:30 the next day
Exactly where in that schedule am I supposed to fit a FOUR HOUR coding assignment. That's ridiculous. Unless you're providing child care, this is simply too much.
A one hour interview... I can handle.
Perhaps you'd get better leads by allowing for a choice. For my last job search. I had several different companies all in the upcoming AI accelerator space. Two of them had assignments. I said no thanks. The others did interviews. I got a good raise (base + stock options)anyway. I don't think I lost anything saying no to the ones with assignments.
Alternatively, perhaps pay people to complete the assignments.