Giter Site home page Giter Site logo

interviews.backend's Introduction

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

interviews.backend's People

Contributors

luiscarbonell avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

vishnuravi

interviews.backend's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.