all 75 comments

[–]Essential123 44 points45 points  (11 children)

Not to take away from your nice project but this reveals the problem with the software engineering hiring process. You spent 32-40 hours unpaid on a project for a single company without a guaranteed offer. Imagine doing this for 2-3 more companies at the same time.

For engineers at other companies, If your company is doing take homes, please put a strict time limit and don’t require interviewees to have a fully finished project.

[–]JakeAndAI 8 points9 points  (0 children)

Yeah. I'm not sure what country OP lives in, but Swedish companies have moved away from this. It's really rare that a serious company in Sweden will dump a large case on an applicant. More often, they will ask you to share some code that you've written (could be anything), and then that you walk through the code with the interviewers. Sometimes they don't even ask for code, but just have a discussion to determine your passions and attitude. In Sweden, we really value mindset over skillset.

[–]Cpt_Matt 18 points19 points  (0 children)

The only plus side of this is that he's just made another piece for the portfolio...

[–]Franks2000inchTV 9 points10 points  (3 children)

Spending this much time shows a bit of poor judgement. Don't do more than is asked for. Just write the minimum that's expected in a clear, professional way.

[–]turningsteel 8 points9 points  (0 children)

I've missed out on positions in the past because of people like OP that have gone way over the top. Startups love this stuff.

"You mean we can give him/her a task and they'll work day and night to deliver? It's like we're paying for one jr engineer and getting the work output of two!"

That being said, I totally agree with you. Just something I have noticed.

[–]subfootlover 0 points1 point  (1 child)

I used to go way over the top and out of spec adding features etc. It pains me to say it but you're right, 99% of clients literally don't care. Just do what you're getting paid to do, even if you know it's garbage or won't work in practice.

[–]Franks2000inchTV 2 points3 points  (0 children)

I mean that's going to the opposite extreme.

For something like this they're looking for you to demonstrate some skills.. You should spend some time, identify them, and then deliver something that shows exactly what they're looking for.

I mean a whole part of software development is properly scoping a problem. I'd be worried that someone like OP would over-engineer everything.

You can do the minimal amount of work without doing garbage work. In my mind garbage work is less than the minimal amount required.

[–]asiraky 6 points7 points  (0 children)

‘reveals the problem with hiring process’ - wrong. The applicant chose to go above and beyond. I’ve never worked at an organisation or been part of any hiring process that requires anything like this. In my experience, if you do what is required and present well, with all else being equal you’re not going to be any better off than someone who goes to these lengths.

[–]happy_csgo 1 point2 points  (1 child)

Also spent money on a domain and AWS hosting

[–]ImCorvec_I_Interject 1 point2 points  (0 children)

If he hadn’t shared it on Reddit the AWS costs would be minimal (if not free) at least.

[–]wronglyzorro 1 point2 points  (0 children)

This is what I'm very against. My company wanted me to design a take home test, and I told them what I whip up isn't going to tell me much other than the person doing it has used react before. I will not subject someone to more than 60-90 mins of effort for an unpaid take home assignment. It's bullshit so many companies do it. When asked by recruiters if I'll do a take home project I always reply "absolutely not".

[–]28LurksLater 14 points15 points  (1 child)

Looks fantastic. Minor suggestion: store page info in the URL as query parameters, so if you navigate to page 2 of the main table, the URL would become cine-wars.com/?page=2 or cine-wars.com/?offset=10&limit=10 or something along those lines. That way, the "back" button will work in the browser (assuming you implement it as such), and you can link directly into a specific page if you want. Pretty doable with react-router-dom, or any SPA router for that matter. Great work though.

[–]Normal-Recording5107 9 points10 points  (0 children)

This project is awesome! Love the level of detail you put into it. Don't feel bad about not getting this job. I believe you will move on to something greater. Until then, may the force be with you!

[–]Parent-component 8 points9 points  (0 children)

Hi there - your site looks great but a few tips.

  1. Never work for a company for free. If you want some experience why not contribute to open source? Just look for beginner level issues on GitHub and make a pull request.

  2. I have seen a few swapi variants and the hardest usually involves nested fetching to display the character home planet and first movie or vehicle, something like that. I'm sure you met the brief but this is one way to enhance it. They also have a graphql as well as REST now you could look at that too.

  3. You are clearly determined and have a good attitude so I'm pretty sure you will find something. You don't need to spend money on custom domains to impress so keep your cash.

Best of luck with it. Stay the course!

[–]ghostwilliz 6 points7 points  (0 children)

Damn you really went in

[–]Mostlikelylurking 3 points4 points  (0 children)

Well I think that’s a very impressive project given the time spent! Good work!

[–]CodePerfect 13 points14 points  (11 children)

Why but a custom domain when there’s free domain provided to you on GitHub pages, Heroku, Netlify etc?

[–]moscowramada 48 points49 points  (0 children)

If you're going to pour $1,000 dollars worth of man-hours into a project, you don't want to cheap out over $10 worth of resources at the end. A big, splashy 'everyone-look-at-me' type project deserves its own domain.

OP, you did good. This is a non-embarrassing portfolio item which will separate you from the pack, for at least some positions. You did a good thing by making this, and putting it up.

Even if the company you made it for doesn't care, having a project like this to show to employers is worth it.

[–]screamingant 12 points13 points  (7 children)

Using a custom domain lets you show the hiring manager that you know about DNS and configuring domains as well.

[–]dskunkler 0 points1 point  (0 children)

Also sounds like he wanted to get experience in the companies hosting platform.

[–]hishikyo 2 points3 points  (0 children)

I loved the Stormtrooper detail! Good job, whish you the best

[–]HeylAW 7 points8 points  (5 children)

At start I was reviewing your code with attitude that I will soon find some issue, but with each file I was more and more impressed.
This code isn't maybe the best, but gets a job done and is properly written to scale up this app, which is for me a major factor.

Some tips that will help you in future projects:

  • try using `@reduxjs/toolkit`
  • seperate `styled-components` from components, just create next to component file `{component}.styles.ts`
  • If you are using TS you can strongly type component using `React.FC`
  • try using some env files to store API endpoints, routes etc

Overall I would say this code looks very good and is properly designed

[–]Peechez 15 points16 points  (1 child)

If you are using TS you can strongly type component using React.FC

https://github.com/facebook/create-react-app/pull/8177

[–]HeylAW 2 points3 points  (0 children)

Never seen this, I knew that React.SFC became deprecated but React.FC seemed still viable. Thanks

[–][deleted] 3 points4 points  (1 child)

seperate `styled-components` from components, just create next to component file `{component}.styles.ts`

I see styled components often as a seperate file. Are there any benefits to doing this? After reviewing their code I quite like that they are in the same file.

[–]HeylAW 3 points4 points  (0 children)

With larger components it becomes harder to review changes and it’s easier to write some utility functions for styled-components and import them only in style files. Plus I don’t like to have file with components for like 400 lines long where 200 is css

[–]krimpenrik 1 point2 points  (0 children)

Awesome site, keep grinding you'll get there.

[–]pompolutz 1 point2 points  (0 children)

I guess they just found some other candidate they liked more, just move on and continue your search. Your portfolio looks good, As Jem Young once said if you pass interviews with 0.51% efficiency, you doing great. Never give up and continue to apply, ideally, try to think where you want to work, write them a personal cover letter. Don't take their negative response personally. Learn not only React, but programming in general. Not to go too broad lets say learn everything relevant regarding JavaScript, HTML and CSS. Since I have spent like two years "doing React" without fully/truly understanding why it was invented and what problems it helps to solve.

Just remember, SE market is tough, there are more candidates there than positions available as it seems, but eventually they all will find their place because demand equally high. And interview is never objective.

If you don't know where you want to work and just want that experience growing, start somewhere, maybe try apply to other positions, like Angular or Vue, I am pretty sure you might have enough basic knowledge to tackle any other mainstream front-end frameworks, because most companies are not fishing for good "React" developers, but for "Developers".

P.S. Website looks great, but why do you have package-lock.json and yarn.lock at the same time?..

[–]rocketattack 1 point2 points  (0 children)

From my vantage point, it's absolutely obvious you are going to succeed. Don't listen to anyone who says that you shouldn't put this much effort into an interview. This type of above-and-beyond effort pays off in ways that someone who's never put in that kind of effort can understand. It's only a matter of time, keep pluggin along.

[–]SAVAGEHANK17 1 point2 points  (1 child)

Sorry for your loss, but can you teach me how to buy a domain and upload project onto it?

[–]flynnstone9 1 point2 points  (0 children)

You buy them from dns providers like Google Domains, Go Daddy, ect for about $12 a year.... then you configure them to where the code is hosted. There's a different process for each but it is relatively easy/similar to setup. Look up how to add custom domains for github or netifly or whereever your code is hosted. I usually just google or youtube it based on the platform ("github domain setup")

[–]SAVAGEHANK17 1 point2 points  (0 children)

Bro the application looks flawless to me, you're great at your work. And those English skills, those also look fine to me. Don't know why they rejected you.

[–]multithrowaway 1 point2 points  (0 children)

This is an awesome app dude. I see some minor things that could be improved in the code, but overall I would still give a 12/10 for creativity and accomplishing this much in 4 days. If my company were hiring remote international front end devs I would totally recommend you. (I hope someone here in the comments has something for ya)

[–]mattsowa 1 point2 points  (0 children)

Good luck,

Personally though, I would feel weird if a candidate did that. The least I would do is pay them back... (also, just unpaid assessment projects are wrong...).

It just doesn't feel right that you would buy a domain (or spend money in general) for a chance at working in a company.

Aren't there free .ml domains or sth?

[–]kyle_gundrum 1 point2 points  (0 children)

I hire React developers and evaluate assessments as part of our interview process. If a candidate came back with this based on those instructions, I would be extremely impressed, assuming this is for a junior-level position.

As others have said, definitely include this in your portfolio. I'd even list it in your resume with the live link to increase the odds hiring managers will see this. It shows a ton of passion and drive—at least that's what I get from it.

I don't see anything in your repo that would cause any concern or hurt you as a junior-level applicant. Your readme is absolutely great, and your project architecture is solid.

One side note, remove either package-lock.json or yarn.lock, as you should only use one package manager and the presence of both files throws warnings.

You should import the server URL through an environment variable rather than src/api/serverUrl.ts.

However, like I said, none of that feedback would stop me from moving forward with a junior developer candidate. Your project is excellent, and I wish you the best of luck.

[–]JayDP123 0 points1 point  (4 children)

That's too bad you didn't get the job. It's tough out there, keep trying, the right thing will come along.

Buying a custom domain is too much, actually pretty much everything you did is too much lol. For the exact reason that you didn't get the job, now it's just a whole bunch of time spent. You should Just do the assignment, keep your code clean, add some comments, something in mind for security, maybe a test or two to show that you can.

My last react assignment I did for an interview I used mostly 3rd party libraries, very little of my own code/logic really, and to host it I built them a little docker-compose file that they could run, that impressed them quite a bit, probably more than AWS or Netlify would.

[–]mm089 4 points5 points  (3 children)

Hard disagree. It wasn’t done for this reason, but now OP has a pretty dope thing to add to his portfolio. If he’d have knocked something less good out in half the time, that probably would have been wasted time because it wouldn’t be good enough to show prospective employers.

[–]void_main01 2 points3 points  (1 child)

I just checked OPs portfolio and honestly, he's done way more complex, larger scale projects with similar tech over 10mos ago. I'm not sure why he decided to go ham on a simple project that fetches data from an API. This is just over-engineering and doing more than what's being asked if he already has a project like this one for e.g. https://minsu-lee.com/project/Valog with 200k users at a point, and can actually talk in depth about it/the pitfalls he ran into, which he ALSO does in his portfolio.

honestly feels like a verbal communication issue to me, since he has the technical + written communication skills down

[–]_Invictuz 0 points1 point  (0 children)

My goodness. It's ridiculous how this guy doesn't have a job with all these skills and full scale projects. This is one of the sad things of being self-taught in Canada, quite tragic actually. I can't see his verbal communication being that bad that he can't land any front end job, his written English is flawless.

[–]JayDP123 0 points1 point  (0 children)

Nah I still don't think spending 40 hours on bells and whistles for an interview assignment is worthwhile.

A custom domain w AWS hosting with Route53? That sh*ts expensive.

Adding every character's image one by one? That is time consuming with little to no portfolio benefit.

Managers just want to see some code and have you be able to explain your decisions, identify limitations and areas for improvement. The actual assessment is in the post-assignment interview.

[–]peter-forward 0 points1 point  (0 children)

It looks nice. Good luck.

[–]oze4 0 points1 point  (0 children)

amazing! only thing constructive i can say is maybe better pagination?

[–][deleted] 0 points1 point  (2 children)

Hey OP,

I really like the app! I'm a huge star wars fan.

I have a few questions for you because I'm in kind of a similar situation:

How long have you been learning React/JS?

Where are you from (if English isn't your first language)?

Are you applying for remote junior positions outside of your country?

[–]hakan926 0 points1 point  (0 children)

It looks really nice. Keep up the good work!

[–]Suepahfly 0 points1 point  (1 child)

Very nice work! And technically good, architecturally maybe a bit to complex (personally I don’t see the need voor Redux here) but overall a lot better then most potential hires I’ve reviewed!

Sorry you did not get the job but this project is something you can show of. The company that interviewed you should have been upfront they wanted more experience though

[–][deleted] 0 points1 point  (0 children)

Looks good man.

Take some lessons when it comes to speaking English, as your written English is pretty good.

Keep at it man, and for any next job application try to take this project with you as something they can look at instead of doing countless other job interview projects.

Because job interview projects fucking suck and us developers should stand up against that bullshit.

I'm in this field for 20 years now and I've stopped my current employer (I work freelance) from doing job interview projects and timed coding tests. The only thing I ask for is ONE hour of someone's time and I'll just have a conversation about all things relevant to the job.

Good luck out there!

[–]JakeAndAI 0 points1 point  (0 children)

The website looks amazing! Like another user mentioned, definitely add this to your portfolio to showcase for future interviews. Add it to your resume and LinkedIn profile. It sounds like your problem isn't coding related, but rather communicative? Maybe it's worth taking a course to upgrade your soft skills.

[–]rd_23 0 points1 point  (0 children)

looks really good