Welcome to Chorus Engineering's Interview project!
We're looking for engineers who are experienced, passionate, and obsessed with strong systems and high productivity.
In order to facilitate this, we are providing an interview project that mirrors the technical stack that used here at Chorus.
You, the interviewee, have the power to decide if this is the technology that you want to work on!
The goal of this interview is to identify strengths through a take home project, followed by a 1 hour pairing session that will extend your work by creating features together.
- React UI
- Emotion CSS
- Typescript
- Node/NestJS Backend
- NX Monorepo
- Github Actions CI
- PostgreSQL Database
- Docker / Docker Desktop
Package Manager: pnpm 8.15.8
Node: 20.14.0 (LTS)
Docker
Use this command to install node and npm comes with it.
nvm install --lts
- Install pnpm
npm i -g [email protected]
The Hiring Manager will send you a link to this repository.
Clone this repository, and run the commands below to get started.
- Run
pnpm install
- Run
pm2 start
Note: The API and React server will automatically watch for changes.
You can manage start/stop using pm2
.
Use pm2 logs
to see the logs from all processes.
Use pm2 stop all
to stop the servers.
Use pm2 delete all
to delete the entry from the pm2 process list.
Use whatever tool you'd like to connect to the database.
Here are the connection details below.
- Database: pokemon
- Username: admin
- Password: admin
- Host: localhost
- Port: 5432
Lets make a Pokémon Team builder!
We want to create a way to select 6 Pokémon to be on our team.
The UI should allow the user to:
- View a list of the first 150 Pokémon
- Select from the list of Pokémon
- Submit the Pokémon that we have selected to the backend.
It does not have to be a beautiful UX experience. We're aiming for functional.
Database Requirements
- There should be a Profile table
- There should be a Pokémon table
- There should be a relationship between Pokémon and Profiles.
UI Requirements
- Show a list of the first 150 Pokémon
- Show selectable Profiles
- Select a profile, and choose up to 6 Pokémon.
API Requirements
- Return pokemon
- Create Profiles
- Handle receiving Pokémon related to Profiles
All of your work should be located in a Github Repo.
Ensure your repo is public, and submit the URL back to the hiring manager.
I can't execute pm2!
pm2 is part of the devDependencies, so when you install the dependencies, you should be able to execute the binary from node_modules.
Either use pnpm pm2
or add node_modules/.bin
to your PATH
.
The requirements are confusing. I'm stuck.
Contact the hiring manager, and inform them of the situation. Be specific and clear about your concerns or issues.