/interviews.backend

Cell-Ed's repo for interviews.backend

Cell-Ed Header Banner

Back-End Software Developer Interview Take-Home Question

Let's assume that you are helping a pet rescue center create a REST API to process their "pet inventory". To the best of your ability attempt to create an Express, Fastify, or similar REST API that connects to a database - e.g. Postgress, MongoDB, etc. - and meets the needs of the following specifications; feel free to use any additional tool that you are comfortable with in these frameworks to achieve this.

Specification(s)

  • A user should be able to create a new pet in their pet inventory database.
  • A user should be able to update information of an existing pet in their pet inventory database.
  • A user should be able to delete a pet from their pet inventory database. Bonus Points: A user should be able to hide/archive a pet from their pet inventory GET requests w/o deleting the entry.
  • A user should be able to see a list of every pet in their pet inventory database. Bonus Points: A user should be able to sort/filter results via query parameters.

Goal(s)

  • Show off your experience creating maintable, composable, and extensible server architectures with great practices using Express, Fastify, Nest, or similar HTTP Server Framework.
  • Show off your experience documenting REST APIs using Swagger, API Blueprint, JSDoc, or similar auto-generated documentation tooling.
  • Show off your experience creating unit, integration, and end-to-end tests using Mocha/Chai, Jest, or similar testing tools.
  • Show off your experience benchmarking controllers and stress testing servers using tools such as Benchmark.js or autocannon, respectively.
  • Show off your experience creating/designing database schemas/models and managing database connections using an ORM/ODM such as mongoose or pg.
  • Bonus Points: Show off your experience with containerization - e.g. creating a Dockerfile, creating a .devcontainer.json (VSCode), etc.
  • Bonus Points: Show off your experience creating authentication middleware - e.g. using tools such as Passport.js or JWT.
  • Bonus Points: Show off your supporting event-based architectures - e.g. webhooks, event bus, etc.
  • Double Bonus Points: Show off your experience creating pricing middleware.
  • Double Bonus Points: Show off your experience creating rate limiting middleware.

Submission(s)

  1. Create a fork of this repository to your personal GitHub
  2. Try your best to impress yourself! 😁
  3. Create a pull request to Cell-Ed/interviews.backend from your personal GitHub repository.
  4. Create an issue at Cell-Ed/interviews.backend titled Your Name Submission MM-DD-YYYY
  5. Follow up with your interview Point-of-Contact (POC) for next steps. 🚀

Note(s)

Excited to see what you create! 🤗

Remember to just try your best, and enjoy the process! ❤️💪😤

Cell-Ed Footer Banner