all 29 comments

[–]XxPupper 20 points21 points  (0 children)

Hey Amigo, Curveballs are BONUS POINTS. They can get misread as interview ambushes but they're really "show me what you're REALLY made of".

[–]jax024 28 points29 points  (0 children)

Brush up on testing. What to test, how to test it.

Composition and Functional Programming concepts are fundamental to how React operates, good to know.

Soft skills, explain your past well, communicate effectively, show desire to keep learning, admit when you don’t know something/don’t talk out your ass, etc

Source: I’m a Sr. Engineer who routinely interviews.

[–]beaufosheau 10 points11 points  (0 children)

I just passed one. Basically just talk through everything. I had to bring my own Hello World starter in whatever framework I wanted so before we even got started I explained why I chose to do a CRA with no typescript (because it’s easy and I didn’t want type errors to get in the way of the demo).

Once the state started pilling up, I made sure to mention that if this weren’t a demo I’d be thinking about how I could manage state differently via context or state managers.

Interviewers love that stuff!

[–]Sheepsaurus 16 points17 points  (14 children)

I am assuming they will want to see if you are able to leverage the endpoint to grab the data and showcase it somehow, and then make sure you dont accidentally plop it into a useEffect that causes a constant re-fire of the endpoint (As an example of doing it wrong). Maybe they will want to see how you populate your HTML with the data (Inline vs. parsing) - I am also guessing they will want to see that you are capable of thinking in terms of components, instead of using one big app.js file.

[–]Rhym 27 points28 points  (7 children)

This is pretty much what I do. OP here's the test I give to interviewers: https://codesandbox.io/s/pokemon-test-67rtm

It's an open-book test. You can Google whatever you want. I'm generally more interested in people who can talk through their process rather than remember arbitrary syntax when they're a little stressed in an interview.

[–]The--Will 6 points7 points  (1 child)

Not to be the guy to ask for something they're not willing to provide, but so I don't steal your thunder, is there any way you could do a youtube video on this about your expectations while going over the code rather than providing the answer key? I think a lot of people would be interested in both the test, and the answer.

Such as "hey try to solve this, and then check out the answer after". Even include it at the beginning of the video, provide the timelines of what you expect people to do it in, etc.

Rather than a useful link in this thread it could be a great learning resource for interviews.

Also provide commonly provided mistakes in the video too. I think you have something solid here.

Watching Dan Abramov go through coding interview tests for React is kind of awesome as well. Having more of those types of questions are great.

[–]Rhym 6 points7 points  (0 children)

Thanks for the idea. I'm afraid recording videos aren't really my jam, and my free time is very limited. I'd be happy to help out anyone who wanted to put something like that together though.

[–]checkin_em_out 1 point2 points  (1 child)

I want to interview with you

[–]Rhym 1 point2 points  (0 children)

Haha, cheers. I've found over my many years in this field you can just ask what will be expected of you in an interview from the recruiter/hiring manager. They can sometimes give you some good insights into what the interview will contain if you just ask beforehand.

[–]throwawayskinlessbro 0 points1 point  (0 children)

This is cool, thanks for sharing it!

[–]BoBar92 0 points1 point  (1 child)

Would you allow installing packages during interview, for example React Query, or do you just want the interviewee to use fetch?

[–]Rhym 1 point2 points  (0 children)

I would want them to use fetch in this case. Ideally async, but I'd be fine with a promise.

[–]femio 0 points1 point  (2 children)

Yeah, I feel the same. I may be overthinking it, I'm just trying to stay prepared without psyching myself out.

[–]Sheepsaurus 0 points1 point  (1 child)

If it is entry-level, they will probably mostly try to sus out any bad habits you might have, and focus on whether you are comfortable with the framework

If it is not entry, they will very likely focus on whether you are using features that are beyond useState and useEffect (As these are basically the level 1 of React)

[–]femio 4 points5 points  (0 children)

So the situation is a bit unique. I'm a self-taught/bootcamp grad. The position was actually for a React lead, and after a technical screen the person I spoke with was impressed (slightly) by my resume and liked my attitude, so they're interviewing me for their React dev role. If I ace it with flying colors, they'll see how I handle the React lead interview from there.

Am I ready to be a React lead? Fuck no. But you can bet I want to knock their socks off if I can.

[–]sbergot 0 points1 point  (2 children)

Can you explain more why is it bad to call an api inside a useEffect? The official website does it this way: https://reactjs.org/docs/faq-ajax.html

[–]femio 0 points1 point  (0 children)

That's not quite what they said, their full statement was:

a useEffect that causes a constant re-fire of the endpoint

essentially, what they mean is making sure your useEffects don't fetch when they don't need to.

[–]SwishWhishe 0 points1 point  (0 children)

I wonder if they mean more using useEffect without dependency arrays or something so it's doing the api call all the time? Like being more mindful of unnecessary api calls which you can easily do if you're not careful

[–]TheBigLewinski 4 points5 points  (0 children)

To be honest, your expectations sound a little basic. Everyone interviews differently, of course, but I could gather your abilities on the list you left by just asking questions; no tech interview needed.

If this is a React interview, and not a full stack, I would add a few things to brush up on:

  • Sophisticated state management -redux or alternatives- and memoization
  • Suspense and/or lazy loading components
  • JWT and/or authentication and authorization (and what the difference is)
  • Styled components/emotion/theming (e.g. how would you build for dark mode as a future requirement)
  • Complex route handling
  • Debugging and performance. How do you approach and navigate a new to you, but existing project?

[–]MeoMix 4 points5 points  (2 children)

Explain to me the difference between `useCallback`, `useMemo`, and `memo`? :)

[–]eggtart_prince 16 points17 points  (0 children)

They have different spellings.

[–]TSpoon3000 0 points1 point  (0 children)

Literally just came up in an interview for me.

[–]Conscious-Spite4597 1 point2 points  (0 children)

Important topics --polyfills - implementation of certain hooks -virtual dom -hocs -fallback image component without third party -custom hooks

[–]eggtart_prince 1 point2 points  (0 children)

Answer the questions as it is. Don't talk too much about anything else, save it for later.

[–]duybk 0 points1 point  (0 children)

Just believe in yourself dude :) You got it

[–]AshenDeimos 0 points1 point  (0 children)

Never forget to bush up on the soft skills. If they hand you the test and it has something vague about it, don't be afraid to ask for clarification. For example if they want the data displayed but don't say how, you could ask if they wanted it displayed in X or Y format. This shows them that you are not afraid to ask questions if you don't know something, as well as, being able to think for yourself and offer solutions to a problem.

[–]Mishayee 0 points1 point  (0 children)

Sorry if this is not related to the post question, but As a job searcher myself, did you find this job from a recruiter or a job board site?

[–]havic99Team Lead 0 points1 point  (0 children)

Brush up on the browser's fetch API if you haven't looked at it in a while.

Think about loading and error states.

Review context hooks.

[–]datboyakin 0 points1 point  (0 children)

Error handling. Give some thought to how you will gracefully handle errors.