This is slightly related to the existing question Is there a professional way to refuse a time-consuming programming task given as a test for a job?.
Background
I have about 85% of a CS degree, 3–4 years of professional experience, and I have been a passionate hobbyist for as long as I remember. What I lack in professional and educational experience, I make up for many times over with my spare time tinkering. I know this, so I am applying to jobs where I may, on paper, look under-qualified, but which match my actual level of experience.
Issue
I have a bad feeling about a place I'm interviewing right now. The moment the CTO (who has been my point of contact) walked into the room, he started presenting their technical architecture and speaking as if I were already a part of their team. He seems overly ecstatic about my résumé and wants to "snatch me up before anyone else does".
This may just be his personality, of course, but it seems odd to me that a prospective employer would be so positive about a candidate who, for all they know, could be a total dud. To me, their willingness to hire a potential dud says they don't actually care that much about their developers.
Programming test
Then I got the programming test, which seemed to further support this fear of mine: the CTO had said during the interview that it should take at most a few hours, but the task is actually rather substantial. The way I read it, if the test description arrived as a specification from one of their customers, they would not be content with budgeting just a few hours for one developer to complete the project. With the most generous interpretation, we're talking at least two days of work.
And it's practically a web frontend task, while I applied for a more databasey backend position (which they acknowledged by saying that "as you see, when you are done with the frontend, this can be extended with quite an advanced backend"). Granted, one of the things that separate me from the pack is my versatility, and how I have experience doing also frontendy stuff if I need to, but it's not what I primarily want to do.
Question
Unless I have misunderstood something, I can only see this going two ways:
They want to test my ability to crank out shitty code fast, because that's what they'll need me to do later on. Not a place I want to work for.
They want to test my willingness to do a bunch of work for free, because that's what they'll need me to do later on. Also not a place I want to work for.
Does my thinking make sense, or am I being obviously paranoid?
I have asked them to specify more about the position they think I am a good match for (including things such as salary) before I commit a bunch of hours to the test, so I'll update this with more information as it arrives.
Edit
Oh, and I forgot. More alarm bells went off in my head when I heard about how important it is that code written for them is correct – but when I asked about testing, code review and such, it appeared they have no such workflows in place.
Update
I didn't do the test, thanked them for their time and consideration, and moved on to interviewing with other companies. Ended up in a really good place and don't for a second regret trusting my gut on this.