aoswce / Backend-Service-API-Demo

Backend Service API Demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Backend Service - Coding challenge?

We're looking for talent people who can build awesome products, so we created a set of open-ended challenges to test our candidates' overall developer skills. If you're interested in joining our team, complete this challenge and submit your pull request.

The coding challenge is optional if you already have some code that you're proud of and can share with us.

Existing code

If you have existing code, please follow the following guidelines:

  • Include a link to the hosted repository (e.g. Github, Bitbucket...). We cannot review archives or single files.
  • The repo should include a README that follows the principles described below In particular, please make sure to include high-level explanation about what the code is doing.
  • Ideally, the code you're providing:
    • Has been written by you alone. If not, please tell us which part you wrote and are most proud of in the README.
    • Is leveraging Golang or backend technologies.
    • Can be deployed with any cloud service.

Readme

Regardless of whether it's your own code or our coding challenge, write your README as if it was for a production service. Include the following items:

  • Description of the problem and solution.
  • Whether the solution focuses on database, blockchain, crypto wallet.
  • Reasoning behind your technical choices, including architectural.
  • Trade-offs you might have made, anything you left out, or what you might do differently if you were to spend additional time on the project.
  • Link to other code you're particularly proud of.
  • Link to your resume or public profile.

How we review

Your application will be reviewed by at least three of our engineers. We do take into consideration your experience level.

We value quality over feature-completeness. It is fine to leave things aside provided you call them out in your project's README. The goal of this code sample is to help us identify what you consider production-ready code. You should consider this code ready for final review with your colleague, i.e. this would be the last step before deploying to production.

The aspects of your code we will assess include:

  • Architecture: how clean is the separation between the moduel, controller and view?
  • Clarity: does the README clearly and concisely explains the problem and solution? Are technical tradeoffs explained?
  • Correctness: does the application do what was asked? If there is anything missing, does the README explain why it is missing?
  • Code quality: is the code simple, easy to understand, and maintainable? Are there any code smells or other red flags? Does object-oriented code follows principles such as the single responsibility principle? Is the coding style consistent with the language's guidelines? Is it consistent throughout the codebase?
  • Security: are there any obvious vulnerability?
  • Technical choices: do choices of libraries, databases, architecture etc. seem appropriate for the chosen application?

Bonus point (those items are optional):

  • language-friendly: we choose golang for most of the backend service, Beego for the web framework, Vuejs for the frontend. You can use any other languages or frameworks to finish this code challenge, but if you choose these languages or frameworks, you will earn extra bonus point.
  • git-friendly: does the code include the right comments for every commit?
  • Production-readiness: does the code include monitoring? logging? proper error handling?
  • learning-ability: the ability to learn new knowledges ( programming language, framework, tools, or libraries ). If you don't know any about the languages , frameworks, libraries we choose, please tell us how much time you need to learn and finish parts of this project.

Logic Flow

The logic flow describe the requirements of backend service, some of the requirements aren't accurate or reasonable, please choose a few features to finish in 4 - 5 hours. Fork first, please send PR when finished.

About

Backend Service API Demo