Hi there 👋

Welcome to the pairing exercise for the role of iOS Engineer at Redbubble. We're excited and thankful that you're here!

Intro

This project is a partial implementation of the first screen in the following design. It contains a grid of artworks and products.

Next steps...

Overview of the projects (5 minutes)

Given the above context, review the codebase and tell us what do you think about it, are there any issues in the repo, how would you improve them and why?

Note: For the sake of this exercise, it is ok to make assumptions about any questions you might have to make sure that you can proceed with this step.

Pairing (55 minutes)

Now that you've reviewed the project, we'd like you to extend it by implementing the product details screen

We'd like to have the ability to tap on a product on the home screen and have the app navigate to the product details screen.

Request the product's data from the API at https://take-home-test.herokuapp.com/bff/productDetails.json. This endpoint contains all of the details needed, as well as all the "available products" this artwork is available on.

Note: Please note since /productDetails.json is a mocked API, it only returns static data for one product (instead of returning product data with a ID you passed in).

Whiteboarding (40 minutes)

We will ask you to draw some diagrams based on this project, and try to design a new feature together on a whiteboard. Usually we use https://excalidraw.com/ as a virtual whiteboard, but do feel free to pick the tool you feel more comfortable with.

Q&A (5 minutes)

Ask us anything that you want to know, e.g. Redbubble, how we work etc.

💡 Some tips

  • Questions are appreciated. And feel free to clarify before you get started ♥️.
  • We value talking through thought processes. If you feel you are running out of time to finish a dependent piece of code, please feel free to talk about how you would build it, stub it and move on.
  • Your code does not need to be complete or production ready, just a good start that demonstrates your thinking and coding.
  • You don't have all the answers, so make some assumptions, try some things out, and it's ok to make mistakes.
  • It's ok to Google something during the pairing.
  • Code the way you like to code.
  • We value testing in our codebases 😉