Skip to content

The starting point for the technical interview for the Full Stack Developer role at Zoopla.

Notifications You must be signed in to change notification settings

zoopla-eng/tech-interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zoopla Full Stack Technical Interview

Hello, hola, bonjour, ciao, nǐ hǎo!

This project is the starting point for the technical interview for the Full Stack Developer role at Zoopla. Please download it, get it running and familiarise yourself with the codebase before the interview. Note that if you're not comfortable with TypeScript, you can use JavaScript instead - it will still compile, you'll just get a bunch of linting errors.

You might also want to read the docs for any of the frameworks used in the project that you are not familiar with - but honestly this isn't required! If you can show us your thinking, fallback to pseudo code where useful, ask questions and use tools like Stack Overflow or Copilot where you're unsure, that's all we need. We're aiming to create a collaborative environment as close as possible to what you'd be doing in your day-to-day role at Zoopla.

Getting Started

To get started, you'll need to have a relatively recent version of Node.js installed on your machine (check package.json for minimum requirements). You can download it from here, or use a tool like NVM or Volta.

Once you have Node.js installed, you can run the following commands to get the project up and running:

# Clone the repository
git clone

# Navigate into the project directory
cd tech-interview

# Install dependencies
npm install

# Run the development server
npm run dev

At this point, you should be able to see a working page at http://localhost:3002. You can also check the API at the healthcheck endpoint at http://localhost:5001/status. And you can try the other commands in the package.json - check that tests run and pass for instance.

What's Inside?

You'll find a monorepo setup using Turborepo, which we're using to help us manage multiple packages, a frontend and an api in a single repository. You'll be working in the following places (and shouldn't really have to touch anything else):

Creating new packages/components/libs

Just a quick note here, as the setup may look unfamiliar. Turborepo isn't a fan of barrel files (for good reasons) and uses explicit exports. So in order to export your new component (something like the Hello component), you need to add it to the package.json exports array, to the tsup.config.ts entry array, and then import it where you need it with: import { Another } from "@repo/ui/another";.

Likewise, if you delete something without removing it from this array, or are only exporting a single component, you might get Module not found or Unsupported Server Component type: undefined sorts of errors. You'll also need to run npm run dev again to see your changes reflected.

Additional Resources

Feel free to reach out if you have any questions or run into any issues. Good luck with your interview!

About

The starting point for the technical interview for the Full Stack Developer role at Zoopla.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •