I know a guy that got a job here in Melbourne as a Junior front-ender and he had to complete a take home assignment. His sounds much more simple than yours though - it was just a HTML email, essentially, formatted according to a given design. (He got the job). Another guy I met at a meetup had some take home work pretty similar to the microservice challenges from FCC - again, that sounds simpler than yours. (Don’t know if he got the job…).
In a completely unrelated field, I have had to do a similar task to get a job. As a teacher it is not unheard of to prepare and teach a class at a school you apply to. I’ve done this on two occasions (and been offered the job both times). These lessons obviously take time to prepare and deliver, but certainly not 30 hours worth! Anyway, this is just a data point for similar expectations in other fields…
There’s a few ways to view this assignment, and I totally understand your frustration.
If you take them at their word, this could address a hole in your current portfolio that could potentially be putting off other employers. So even if you do complete this task well and end up not getting the job, you may just well have a new crown jewel for your portfolio that means you never have to do a take home assignment again. Even if it’s only a learning experience for you, learning experiences are still incredibly valuable (especially at our end of the careers-in-dev spectrum).
The sheer difficulty of this task (from your perspective) might also be a clue that maybe this job just isn’t for you just yet. There are other jobs out there that have a much gentler introduction to tech and lower expectations of their junior dev’s initial skill sets, so maybe you do one of those jobs for a year first to get some experience under your belt. That’s not to say you aren’t capable, or couldn’t be with a decent run at the task, but it can at least give you something to consider about your readiness for this company.
If you are opposed in principle and it really annoys you to have to jump through this kind of hoop, that could be another clue that maybe this company isn’t for you - but you might be writing lots of companies off if you make that a hard rule.
The final thing to consider is that maybe they like you enough to give you a chance, but didn’t like you enough to consider it a done deal after the interview. Completely hypothetically, they could have had another candidate with a better portfolio but they didn’t click with, so they figured if they can give you the chance to bump up your portfolio then they could hire you instead with greater confidence. Or as PortableStick said, this could just be a test of how you go when working with the unknown - since they may value people that can ramp up on different technologies.
Ultimately, if you have enough time and energy to do the assignment, then there is nothing to lose in doing it. You’ll have a cool app to show for it if nothing else, and maybe that cool app lands you something better a week later. If you don’t have the time, there’s nothing to lose in saying to them ‘Hey, I don’t have time to do this task as described, but how about I add a subset of those requirements to one of my existing apps so you can see how I integrate some of those concepts without my having to sacrifice a week of work?’ I mean, they’d probably say no, but if you were gonna bail on them anyway, there’s nothing to lose with a little negotiation.
Anyway - that’s my wall of text.
Please remember, I am not in your situation, don’t know you personally, don’t know the job scene in your area, and I haven’t even started applying for jobs myself yet! So if you don’t like anything I said, you are entirely right to dislike it, and you can ignore as much or as little as you like
Good luck in your job hunting!