I'm still a student, but I have a feeling, if a job interview asks me to do a big 'assignment' of sorts, I'll ask them how long it would take an average dev to do. I'd do the assignment, provided I get paid those hours * a dev wage.
Surely if they were serious about me, they'd pay me to do a stupid task, right? Or am I way off base?
Don't negotiate like that. Instead, just keep score.
If they offer you a homework assignment that you think is going to take some time, and they give you a week to do it, and you can do it on your own time, just do it. Stay positive and upbeat. But learn from the homework. is it trivial? Or is it related to the work you'll be doing?
If, however, they make you come to their office or be available for specific times, and they don't offer to compensate you for skipping your other job or obligations, take that as a sign that they aren't considerate. You could put that as a negative in the "core values" bucket.
But yea - don't demand anything during an interview. You may certainly ask politely, but don't demand. It's a two-way street. Even when you negotiate your salary, don't demand. Be firm, but be nice.
> If they offer you a homework assignment that you think is going to take some time, and they give you a week to do it, and you can do it on your own time, just do it. Stay positive and upbeat.
This is only true if they give you a coding assignment after you have interviewed and you actually want the job. Under no circumstances should you waste your time with companies that are just so swamped that you have to jump through hoops so they'll deign to talk to you. Interviews are a two-way street and even an interview for a job I eventually pass on is a two-way street--coding tests aren't, not materially. You learn a little about the company but basically nothing about the people or about the current state of the market (both of the reasons why you should be interviewing even if you're happy with your job--to network with others and to keep your finger on the pulse of the industry).
You probably shouldn't do it if it'll take you more than an hour or so, either, as it communicates how much they respect your time. You can tell if someone can write code in short order. And you would be well-advised not to waste the time of people with ample open-source code you can check out instead. (Shouts, company-that-looked-at-a-completed-CloudFormation-management-stack-and-then-asked-me-to-write-two-for-loops.)
What's actually important is whether you can work with the person, which coding tests don't tell you (and, just as importantly, they don't tell me if I can work with you).
If you have ample open source code, lots of experience that's relevant to what I'm doing, then gosh yes - nobody should be giving you homework to do.
To your point about only doing homework after you interview, look at it this way:
If you're unproven, then you're getting the homework because I don't trust resumes. I've seen college profs and career counselors tell people "If you've dabbled in it, put it on your resume." Combine that with people who don't have any code online because "I have a life outside of work" or "all my work is NDA", and I'm sorry - I need to see if you can do the job.
Look, I know it sucks to do homework as a candidate before you interview. You're taking 5 hours to do it. And I know it feels like a disrespect for your time.
But there are devs on the other side who are part of the interview process too. And for each candidate most companies interview, there's about 2 hours for every hour interview per person. Cos there's usually some kind of prebrief, the interview prep, the interview itself, then filling out scorecards and the debrief. That's a time investment too.
And if I'm interviewing tons of people, and then give them the homework, and it turns out they're great people but can't do the job we need them to do, then we wasted their time, got their hopes up, and wasted a lot of our time. Hiring people for a team is extra work. If I spent 3 hours in interviews today, guess what? I still have to get my work done too.
The argument against homework from the candidate always comes down to "Why should I have to prove I can do what I say I can do?"
Because that's what interviews are. And if you can demonstrate you can do what you say you can do, you'll make six figures sitting behind a computer screen in air conditioning.
> If you have ample open source code, lots of experience that's relevant to what I'm doing, then gosh yes - nobody should be giving you homework to do.
So last time I needed a job, I interviewed at something like 38 places. All had my Github, smack dab at the top of the resume. Exactly two (2) out of a total of like 10 responses that passed through the first phone screen and wanted a coding test said "you have a Github so we don't need you to do the coding test."
So...I agree with you, but they totally do ask anyway. ;)
...
> That's a time investment too.
Those devs are getting paid for it, though. If you want to pay for my time, then that obviously changes things.
(If you are picking up that I do not care that the company spends money, you would be correct. People matter, not LLCs or corporations. ;)
> The argument against homework from the candidate always comes down to "Why should I have to prove I can do what I say I can do?"
I disagree. The argument I generally hear (and I'm more sympathetic to your position if somebody is a non-person on the internet) is "you aren't paying me for work you are asking for." Which is the framing that, IMO, makes much more sense. Neither of us should be working for free and we should be pushing back against upper management if they want you to be complicit in trying to make me work for free (or vice versa).
> Hiring people for a team is extra work. If I spent 3 hours in interviews today, guess what? I still have to get my work done too.
I 100% empathize, but this speaks to a failure of management. If an interview isn't being counted as filling space/reducing story points for that sprint/whatever-Agile-Agile-Agile, then management dun goofed.
But what's the solution? How do I know you can do what you say you can do if you don't have a Github account? I mean, if I met with you for 2 hours and we paired on something, that's still making you code for free, right? It also requires us to find a time to sync up. If you're cool with that, then why not doing it async instead?
That aside, There are tons of people out there who simply do not have the extra time to do open source work. Families, other obligations, health issues, you name it. It's pretty great to be able to do self-promotion via open source code, I certainly hate the idea of saying "no Github? Sorry, no interview". But I also can't just take people at their word because people either embellish or outright lie during interviews and resumes.
I've had a ton of people who said they could do soemthing during an interview, but didn't actually demonstrate that on the homework. Way more than you'd think. Especially with less-experienced folks.
It's all about negotiation really. Being a junior doesn't give you enough leverage to make this kind of demands IMHO. Juniors have this weird tendency towards overestimating their value. Don't make this mistake in the beginning of your carrier (been there, done that).
I am self-employed as a contractor/consultant doing frontend work - this is similar to how I started the relationship with my biggest and best client.
They had a post looking for a full-time contractor, I contacted them and they gave me 4 hours of paid work. That was good, so they gave me 8 hours next. That was good, so they gave me a week's worth of work next. That was good so they gave me a month's worth of work.
By the time my half day + day + week + month was up, they had a nice contract ready for me to sign and we've been happy ever since!
I really like the way they onboarded me - there was small, but increasing risk shared equally between them and me as we started our relationship and learned to trust each other. It's been great, and if I was going to hire somebody on I'd do the same!
That's a good idea, and I'd love to have been able to do it on either side. That said, it kinda ducks did someone already employed looking to change jobs.
That's how I interviewed for my current job. I was given a task to do and was asked my contracting rate and told to keep a log of how long I worked on it and what I did, got the cash a day or so after completing the task. Got the job a couple days after that.
Surely if they were serious about me, they'd pay me to do a stupid task, right? Or am I way off base?