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.
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.
Just wanted to back this up a little bit. This is exactly what happened to me on my last job search. I'm currently in between jobs, starting the new gig after the 4th of July holiday. The company that I went with: I had a 30 minute call with an engineering VP and the hiring manager that was followed by an hour long panel with a few members of the team that I'm joining. I also learned after I had accepted the offer that the person who referred me internally spent about 45 minutes chatting with the same engineering VP about me specifically before they reached out. This was for a staff/lead position and I've got over 15 years in the industry.
I specifically sought out referrals from former colleagues and friends where the interview process put a lot of emphasis and weight on the internal referral and it worked out really well for me. I really hope that this is a sign of things to come, not just for myself and my future employment but for others, at least at the ("actual") senior level.
edit/ Added some more context...
I would never do a “take home test”. Even my current job at $BigTech - working in the cloud consulting department doing exactly the type of work the original poster is looking for - involved a 5 hour behavioral loop and definitely not a “take home test”. They offered cash and real stock. Not equity that statistically will be worthless.
In 2000, the same person that hired me at company 1 had joined to a startup in CA. I got hired by him again. I did a basic tech screen via phone, got an offer, the company paid for my move to CA. I was there from 2000-2007 through that company splitting in two and the half I stayed with eventually getting acquired by a Fortune 500, company 3. No interview as part of the acquisition. I also moved in 2004 back to the east coast, again paid for by company 2. I started working mostly from home for company 2 about a year later, which persisted with company 3.
In 2009, some of the folks I worked with at company 2/3 founded a startup in CA. Got hired again, this is now company 4, with another pro-forma interview. I worked from home for company 4 from 2009-2013. That company then got acquired by my current employer, company 5. No interview as part of the acquisition. Continued to work from home. My current employer has changed hands twice now, but still calls itself the same as when I was acquired.
When I'm ready to go, I have a network of people I've worked with at a variety of tech companies. Company 5 is dysfunctional and filled with mediocre talent, but everyone is so cordial, pay and benefits are good, so I haven't really had reason to leave other than the frustration of dealing with some bureaucracy and creaky legacy systems. I've mostly been insulated from that because I've been responsible for a fairly self-contained system.
Now I'm inheriting other people's crap as folks move on, but you know, last week I deleted over 10,000 lines of unused or unneeded code and that was actually pretty satisfying.
It seems beyond unreasonable that I couldn’t make use of that information in choosing who I will work with professionally.
To me, it’s a clear-cut freedom of association (and/or a freedom of speech) right.
It's not about discrimination, it's because the single best way to know if someone can pull their weight and mesh with the team is if an existing, trusted member of the team can vouch for them. On the flip side, the single best way to know if a job is worth pursuing is to have it recommended by a trusted colleague.
Why would you not use those signals? And why in the world would any government make networking illegal? The economic impact on every sector would be insane!
I’m also much older and darker than your stereotypical “tech bro” and they actually put me in front of customers. Imagine that!
Referrals are good source of attracting people, they can be used for additional data points.
I'd love to see what the break down of demographics of people hired using this practice.
No-one good is going to do a takehome just so the hiring team can rub their beards and feel superior while they pick over the code. That approach worked a few years ago, in today's recruitment bear market you don't pick the candidates, the candidates will pick you.
We are having precisely the same trouble as you by the way - junior-heavy, but experienced folk are extremely thin on the ground, and we go from CV to offer within a week. One chap joined (for a few days) and left because he had started somewhere else at the same time - they won out. We're moving to 1-stage interviews, offer on the same day. Higher risk but we have no choice.
Companies keep their traditional pipelines with average time to hire time of 2+ months and think they will find and hire loyal people in this rapid market where people accept offers on top of others or with just a couple days or weeks in their new position. And they keep filtering others because "no culture fit", "not sure about this line of code in the take home assignment" and other nonsense.
Anecdotally, I've seen people actually been put off by this. Perhaps make it 2 interviews just to not seem desperate. It's not my own reaction, but I could see why people might think "They're really desperate, there must be something wrong there"
One of the reasons I went independent consultant/freelancer is because I no longer face hiring bullshit like multiple interview rounds. I don’t charge to discuss the problems, sign an NDA if need be, and I get to talk frankly with both technical and business people to work out if I’m a good fit, zero pressure. I’ve turned down work and recommended other people I know would be better.
I fit the “senior” role here and honestly I’d be ok with the 4hr take home on one condition… pay me.
One tactic I know people are trying is to “flip” a freelance contractor by gradually offering work and then pitching the full time gig, convincing them to jump onboard when everyone already knows it’s a good fit and no one has d as any risks.
Make the contract with 1 months notice both ways and it's pretty much for all intent and purpose a hiree
Depends, if I had this, I'd think, why is the CEO spending time in an interview instead of running the company? Sure, it's part of their job but after a certain scale of company size, it makes me think they must truly be desperate if the company is bringing out C-level executives to interview.
My last search lasted 9 days from when I put out the signal to having interviewed (for 3 companies) and negotiated an offer and submitted my resignation and 2 weeks notice.
i think you did disservice to yourself by optimizing for minimizing downtime between jobs. You should've played the field longer and gone for the highest bidder. I am 100% sure you are not getting paid your worth because no FAANG type company finishes the process in 1 week.
Wait what???
I think FAANG has something to do with this too. They're often known to be slow in coming up with the offer, often seeming like they're not going to proceed. A friend started working at a startup, then got a top Google offer, dumped the startup for the better job that came in later.
That basically meant that I had to come in the front door to places I was interested in.
I was a bit "picky," because I wanted to do stuff that interested me. I didn't really care about making a lot of money, or beanbag chairs, or whatnot. I wanted to do work that engaged me.
I'm a very experienced Apple native developer, and I'm good at writing stuff that talks to other stuff (like client/server systems, device control, realtime video, etc.). I'm good at writing APIs and SDKs. Making devices sit up and beg is something I've always enjoyed.
So places that did stuff like that, interested me.
In my experience, I was treated like absolute crap. After a few rounds of "interviews" (which seemed to be opportunities for relatively young engineers and managers to patronize and condescend me), I just said "bugger this for a lark," and decided that I was retired. I set up a small company, so I could buy toys, and started following my own muse. I found some folks doing non-profit stuff, that couldn't afford people of my caliber, and started working with them, for free.
It was the best decision I've ever made. In the last five years, I've probably done more work than I did in two decades previously, I've learned more, every day, than I have, since my twenties.
[UPDATED TO ADD] If you want "senior" people, they are likely to come with a rather fetching shade of grey to their well-coiffed pompadours, and I'd suggest that it would be rather self-destructive to treat them badly. There seems to be considerable resentment towards us older folks. I'm not one to judge whether or not it is merited (in my case, it is definitely not), but it may interfere with efforts to recruit more experienced folks.
Was wondering if you could elaborate on this a bit:
> I set up a small company, so I could buy toys, and started following my own muse.
This is the first time I've heard of using a personal retirement account to pay business expenses without tax penalties, and I'm not finding any relevant hits on Google.
Kind of a pain in the butt, and not many accountants know of it. There's a lot of fairly strict rules. You can't paint outside the lines.
There's a company that specializes in this kind of thing. I don't really want to go into detail, here, but feel free to get in touch (my HN ID has contact info).
For those following along at home, the accounting term seems to be [[ Rollovers as Business Startups (ROBS) ]]. The IRS website has some unusually direct guidance[1][2] on tax compliance risks associated with ROBS.
[1] https://www.irs.gov/retirement-plans/rollovers-as-business-s...
More info: https://en.wikipedia.org/wiki/Real_estate_investment_trust#U...
I interviewed senior engineers (for a marquee corporation), for 25 years. I have some actual experience, here.
I never made any technical mistakes. Everyone I hired was technically, up to snuff.
The mistakes tended to be in how they worked in the team.
> it would be discrimination if someone else was subjected to a different interview process than yours.
And I really have to take exception to this. Every interview I ever did, was tailored to the applicant. There's absolutely no legal basis for this stance. There's a few "obvious" discriminatory things ("All our girls start in the typing pool," etc.), but people aren't cookies, and "cookie cutter" interview processes are for "cookie" positions. Our HR was very clear on what did, and did not, count as legally discriminatory behavior. HR was run by the Corporate General Counsel, and we managers were required to understand the legal ramifications of our duties.
The OP was talking about senior staff. These are folks that will have Responsibility for significant projects, will need to act as leaders and mentors, and will be the ones to take "point" on the corporate brand and public profile.
Treating them as "cookies" is, in my opinion, less than wise.
If you pit me against some kid, right out of college, that has been spending three hours (of their current employer's time), every day, for the last month, practicing leetcode, you'll get someone that is very good at doing quick, meaningless tests. It won't tell you much about how they'll perform in the breach, or when asked to architect a large-scale, heterogenous system (which is what I'm fairly good at). Not sure how un-discriminatory the process is, there...
In any case, it's all water under the bridge, now. A few companies didn't get me. I doubt that anyone is crying in their beer over it, and things turned out well, for me. All's well, that ends well, eh?
This itself would be a huge red flag in any interview process. If you think you never made any technical directions.
It's a false dichotomy to believe either tailor make the interview process or treat everyone like a college hire. Senior staff / staff positions also have a particular process, including writing exercises, explaining complex decisions, writing code, talking about system design and the various trade-offs.
> Every interview I ever did, was tailored to the applicant.
How do you make sure that your / someone else's biases don't creep into the interview if it's being tailor made.
What kind of diversity did you have at your previous job where the interviews were tailor made?
I did well enough, so some very tough people kept me in my position for a long time.
When they finally rolled up my department, the person with the least tenure had a decade.
These were all senior-level C++ algorithm engineers. We did image processing pipelines for one of the most famous imaging companies on earth.
But feel free to judge me. You won't be alone.
You seem to be accusing companies and younger people of ageism, but I'm yet to hear a concrete example. From reading what you wrote, I can say it seems you seem to be exhibiting an adverse reaction to young people doing well.
> If you pit me against some kid, right out of college, that has been spending three hours (of their current employer's time), every day, for the last month, practicing leetcode, you'll get someone that is very good at doing quick, meaningless tests.
Not sure how you got to the conclusion that younger engineers are stealing time from their employers to leetcode.
I wish you the best, and hope you get a chance to analyze your biases.
It's not really device control, but it does involve a fairly robust iOS app, talking to multiple servers, and synthesizing relationships.
I won't go into a whole bunch of detail in public. Like I said, it serves a fairly narrow demographic, and won't really make a huge splash.
I've been writing software for this demographic for decades.
I can always chat about it offline.
Then there's senior in most of the rest of the industry. We don't do long, annoying interviews. If your process drags on we've already accepted one of our other offers. We don't make FAANG money (mostly) but we also don't put up with horseshit. You want me, or not? If not, 100 other companies do, so bye and have a nice day.
Recently went through this. Got an email at 2pm saying "please run through this exercise". Looked at the doc, then decided to hit it. I submitted everything back before 6pm. It was around 2.5 hours, and I took a short break in the middle. I screen-captured my whole session (not sent in) but to have a little souvenir of the exercise. There's really not much way I could have 'cheated' on the time because there was only 4 hrs tops between sending the email and submitted my results.
Their estimate was 'we expect this to take 2-3 hours', and they weren't all that wrong. I could see someone less experienced taking more than 2 hours just on one of the bad queries - unless you've seen the pattern(s) before it's hard to recognize and refactor quickly.
As a current FAANG employee, I didn’t put up with that bullshit from anyone including FAANG companies.
> I'm never, ever doing a 4 hour assignment for you.
Boo hoo, you need to spend four hours of your life to take home multiples of the median American family's income. It blows my mind how conceited some people in this industry can be, and I'm glad I don't work with them. This is one reason why the take home is a great filter.
If I interview at three places, that's three days of unpaid work (or 6+ evenings after I've already worked a full day at my normal job), and if I'm already making "multiples of the median American family's income" elsewhere, then it becomes less attractive to put up with that, especially if other companies aren't asking for it.
Like I just can't find the energy to put up with Amazon's 2.5 hour span of unbroken time take-home test, no matter how desperate they make themselves sound or how often they contact me (which is almost every week at this point). When I last considered it, I was already having trouble juggling just finding holes in the day to manage about 30 interviews I ended up doing, across about 8 companies. I had no energy to study for, and then do, that exam on top of it (I did do three 45-60 minute exams, across three evenings, for three other companies, though).
By the sounds of it, that test would be the best bit of your time at Amazon.
The post is about this topic, so the responses are about the topic. You think that 4 hour take home technical assessments are a reasonable filter. Awesome, you are a person who can apply for the position op is focused on.
Hiding that you're going to spring it on people should give you numbers, by the people who ghost you the moment it appears, if you wanted to test for it.
Point is they don't need to, and companies that insist on it are hurting only themselves.
> But I have seen multiple coworkers with 10-20 years of experience as software engineers with glowing recommendations get fired because they couldn't write software
I can imagine multiple reasons for this to occur at a company and a bunch of them reflect poorly on the build and architecture at the company
Could someone articulate what's the norm now for non-FAANG pure-tech companies? I might go back to the open market next year after grad school since I don't have much of a network in Canada.
(I have decent 10y+ experience at startups and a unicorn, in both big data analytics and full stack applications and I'm good at system design, take home assignments and even live coding but really suck at physical white boarding complex algorithms with someone literally watching over me)
I have 20y+ experience in startups, unicorn, large companies, big data analytics, full stack applications, and system design.
I am not asked to interview with whiteboard coding when someone wants to hire me from a referral. They are glorified meet and greets.
This is what having a network of people who have worked with you before, and have seen your productivity does. You don't interview the same way other people do, people want you for you, because they know that it doesn't matter what the technology is, you're going to provide a crazy level of value, and they want that level of value in their situation.
Before my current job, my last three jobs (2014, 2016, and 2018) were as a bog standard “enterprise” Senior software engineer/team lead/de facto “architect” who was hired to help the company mature. I got my job by talking to the manager, director, CTO based on my network and discussing my past successes and how I would go about helping then with their real world problems.
I am 99% sure if and when I leave my current job in the cloud consulting department at BigTech and probably go back to smaller companies I won’t be asked to do a “take home test”. My network is stronger now than it was before I came.
I'm senior. Got something I haven't seen? That and some stalking on LinkedIn or emailing and asking for a resume or just to say "hi", seems to be working for some recruiters out there.
OP is hiring for a devops role and has to mention k8s in their pleading. Anybody who mentions k8s to me as something I need to know immediately wins a quizzing regarding what their assets are and what are they doing with it which is so unique that they'd need my expertise; that's usually the end of it. To be clear: I am senior enough to know that doing k8s safely would be THE job, so not making it THE job means you don't meet my quality standards. Other people need my help more than you do, and I don't care what you pay.
1) a 2 hour conversation with one of the founders, followed by a 2 week tryout (paid consulting), followed by a job offer that I accepted. This was through a HN Who Is Hiring post.
2) a round of multi-hour onsite interviews involving white boards, live coding, pairing, etc., but no take-homes. This was through Triplebyte, which organized everything.
There were a couple of other discussions involving take-homes (one of them in good faith on the company's part, the other a little more doubtful) and those two experiences convinced me to not do them any more.
I guess I could imagine a take-home project if it was (through discussion) something that interested me and that I thought would be useful and I could keep the code afterwards, to re-use for other purposes.
But if you are a medium size enterprise company that isn’t paying that type of compensation, you can’t.
I’m pretty anti-take home, because they’re usually scoped as “it should only take you 4-5 hours, here’s a project that would take an in house DS a week at minimum”, but if they were actually scoped like this one (and even mildly comped), I really wouldn’t mind much.
IMO a (very small) take-home assignment is the least-worst of a lot of generally bad options. A pairing exercise focused on teamwork and communication (vs hardcore coding) is the only other option I even consider these days.
If I don't like the take-home, I assume I'll probably hate the job too. Whereas traditional interviews tell me almost nothing about what I'm going to end up doing day to day.
I couldn't point to this more. The recruiting circus is so bad and has been for decades, I don't even bother talking to recruiters anymore. If by some chance I actually did, I'd pass on the 4h test unless I was absolutely desperate. I haven't been absolutely desperate since the dot bomb, and a recruiter hosed me over by inviting me for an interview for a job he didn't really have.
He might not be fucked, but he's probably fucked. It's not so much his doing (albeit the 4h test is a deal breaker for most seniors), it's just the landscape has been so bad for so long, and seniors already have a network, unless he knows somebody who knows somebody, he's probably SOL.
The only thing I can think of is offer and post a salary that is 20%-50% above market and hope for the best. You'll be attracting and filtering out a bunch of bad candidates though. An alternative to that is find the best junior/mid you got, make him team lead and give him some motivational speeches. If you're lucky, they'll rise up to the task.
For what it's worth, back in the day when I started, it was typically a 10m phone call, 1 hour in person interview, then yay or nay. If the candidate wasn't working out, they'd let him go.
I have over 20 years of experience, and then they wonder why I start laughing when they start asking the newbie basic questions. It get even more absurd when they start asking about stuff that no one does more than once or twice a year except in very "edge case" type jobs. I'm a sysadmin, not a full time software developer, but I still get the dweebs who want me to do a leetcode b-tree sort with whatever fancy algorithm they read about last weekend in the hot language du jour.
Wow. I have 10 years of work experience, the last few being "senior". I have a few friends and many recruiters I could reach out to, but absolutely expecting a full fledged 30-round interview like anyone else. I envy you!
Getting a recommendation may "put you to the front of the line", and may allow you to skip a basic screening call, but honestly I think most well run organizations won't skip the interview process even if it's a well-known "superstar" - they would instead just change some of the interviews to let that superstar demonstrate their in-depth expertise in their niche.
I resigned my previous role out of sheer boredom and a desire to work on something new and have been flooded with no/fit-only interview offers, not that i'm going to follow up on them.
Maybe it’s different types of work (consulting?) or companies (earlier stage startups?).
I don’t think I’m particularly good or bad at networking but fully expect to have to do coding interviews and/or take homes. Or maybe I really do need to get a stronger network!
Just wanted to back this up a little bit. This is exactly what happened to me on my last job search.
I was interviewing with 5-6 companies. It didn’t make sense for me to spend a whole weekend for a chance at an offer from a single company. Instead I spent that time brushing up on design. In hindsight that was the right call.
Maybe interviewers are cynical after interviewing so many really bad candidates and the only enjoyment they get from the process is the ability to look down on them.
I have done a few of these take home assignments, later to be engaged by the firm, then to discover in a firm of 100 people, I only really met one or two who could even do the assignment, let alone do it in under an hour.
I've screened a number of very senior developers with impressive CV's applying for senior C++ positions. When I look at their code, usually it just sucks. More often than not it's just plain old C code with C++ dressing. For example, using pthreads in stead of C++11 std::thread, and mostly avoiding even the C++ standard library.
When I interview people, I usually ask them to write some code, for 4 to 6 hours, to solve whatever problem they find interesting, to show me; a) their level of understanding of the C++ language and libraries, b) how they solve problems (I prefer low complexity) and c) what they find interesting.
The interview + the code they show me, give me an idea about their qualifications in this specific area. It's still a lottery to hire someone, but the odds for a winning ticket is a little better ;)
Sidenote: Senior people have been burned by the years where the STL was inconsistently implemented and horribly bloated and inefficient. That doesn't mean they won't quickly learn to love modern C++, especially if they're joining a codebase with good examples to follow.
So what do you think the rest of the world does? Mechanical, civil, electrical engineering, lawyers, doctors, HR, managers? What makes software so special?
For many jobs, the world outsources candidate quality assessment to trusted academic institutions and certification boards. But the software industry has decided — perhaps rightly — that software engineers do not have to go the traditional route of getting a tertiary education attested to by diplomas and certificates.
So rather than comparing with doctors and lawyers, you need to look at what the rest of the world is doing with professions that lack institutional gatekeeping. For example, it's pretty common for translators to do tests before they are offered a job. An agile consultancy described in a podcast how they are hiring scrum masters — and there is a combination of checking the certificates (PSM3's are fast-tracked to a final interview) and tests (seeing how a candidate scrum master can run a scrum event with a team). I am sure there will be lots of similar examples in other areas.
I think they end up hiring the wrong person most of the time.
> What makes software so special?
It's not. We also end up hiring the wrong person most of the time ;)
Finding the best possible person for any position is hard.
You want actual seniors? Seniors have options. You have to be a place that seniors want to work, want more than they want to work somewhere else. Take home code assignments don't fit anywhere in that.
Unless, you pay them for the time. A few companies I applied to 6-7 months ago offered this. However, if you're on unemployment benefits, this may count as income.
Of course, if it's STEP 1, and you're faced with many iterations of this, that's a different story. But if I'm somewhat certain that I'm looking at a great offer from a great company at some point, why not spend the 4 hours?
So it tends to narrow down the pool to those for which it is an interesting position, ie. 'Not yet established senior yet'. Which explicitly doesn't seem to be what they want.
Also, re:
> Benefits and salary are good (though salary isn't posted in the ad)
If the salary is legitimately strong, you should post it.
In summary, as advice to OP:
- Put the salary in the ad
- Scrap the take home assignment
It’s still hard to hire legit senior devs, but those 2 changes will make it significantly easier.
I like how things are confusing enough to need this distinction, but also we still don't know if you're talking about actual seniors and not principal engineers
Same when hiring: I'd much rather hire someone who I've seen work before than go through a whole interview process, and still feel like it's a crapshoot at the end when making an offer.
Someone I spoke to recently had the audacity to ask for 20 hours of free work in the intro call, and I just shook my head and hung up.
If a company doesn't bother to check how well I'm going to do the job, it makes me worried about what sort of smooth-talking incompetents I'm going to get stuck working with down the line.
I'd only do the standard style interview if I was desperate for a job.
Has anyone done this? Has it worked?
PS - I also try to add on a 30m review of /their/ code, but so far it hasn't worked. I still ask!
Edit: By the way, one company has actually paid for my time to do a take-home at my consulting rate. Most of them balk.
However asking to see some examples of their real code/documentation is a legitimate request IMHO and something I did in my later interviews when I was working as an employee. I'd usually bring it up at a second interview when we knew both sides were serious and they asked if there was anything I'd like to know more about. Nowhere ever thought it was an unreasonable request in my experience and some took it as a good sign that I was sincerely interested. Probably the majority of places actually did find something I could look at, though some refused and usually cited something like confidentiality or trade secrets. Of course the ones who showed me good code were more likely to get me to work for them than the ones who refused or showed me bad code.
PS: my rate for 4 hours work is $2500. Companies HAVE taken me up on this rate. In fact I am currently declining work because I haven’t the time. Know your worth!
And I didn't say you should work for free. I said shooting back your hourly rate in response to a request for a tech test could easily be seen as unprofessional. If you don't want to do a tech test that's fine but you can just withdraw gracefully at the start of the process when you ask what their stages are and they tell you about the test.
I wasn't saying that I got paid consulting rates to do tech tests. I have never had to do a tech test, and never will. But I've been approached by recruiters, and I always respond with my current top-tier hourly consulting rate, with a minimum half-day charge. Usually that's the end of that conversation, but twice such an unsolicited inbound request has resulted in the recruiter saying "okay, when can you come out?" Once was a certain large asian phone manufacturer, who flew me out to their headquarters halfway around the world for a week of consulting, which also acted as a sort of interview. I decided not to pursue a longer-term job with them for $REASONS. The second instance was my current non-FAANG job. Told them my rate, they again flew me out for 3 days, and on the last day we negotiated salary.
To be clear, my negotiated salary from this job is much, much less than $5000/day I charged them for that interview. It's actually on the lower end for my industry, although I'm still one of the higher paid members on my team. I took it because I like the team, I like the work, and I'm given a fair amount of freedom. It was also 100% work-from-home, prior to COVID. The $15000 I invoiced for 3 days of consulting? They considered it a signing bonus.
But yeah, some companies are willing to pay to get the attention of senior talent, and since I'm charging hourly they respect my time. I have my pick of places to work, so why not filter based on that?
However, if I don't find the ballpark of the salary on Glassdoor, which is information you DON'T control (this is an hint at showing the salary), I won't even consider your company. What's worse than wasting 4 hours and then seeing an offer that's lower than your current pay?
If you can't tell whether someone is just talking the talk or actually has done something during a 30m+ interview process, then you're not asking the right questions.
I should note that this seemed to help offset the concerns of people with families. They definitely don’t see it as a waste of time. It also incentivizes us to be sure we’re serious about the candidate.
If I can get a similarly-paying job at a place that doesn't do this, I'll skip you.
Many seniors (actual seniors, not 3-years-of-experience seniors) have a network and can say "hey I'm looking" and instantly have multiple options that won't have them do more than talk to the team and manager for an hour or two. If that.