Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Backend Skills Test

What is it?

This skill test has three levels of completion which will be explained in the requirements section.

Please note: you are not required to complete all levels, they are meant to help us assess your level of comfort related to the stack.

  • Level 1: gRPC services basic implementation
  • Level 2: Integrate a simple postgres database to save data.
  • Level 3: Implement messaging broker

Requirements

General requirements

  1. Create a repository on Github and share the link to the repo upon completion.
  2. Must use Golang

Level 1


Build two gRPC services, auth-service and otp-service.

Auth Service

Create an auth service. This service will handle authentication and simple user profile.

Create Account

  1. A user should be able to create an account using a phone number.
  2. On account creation an OTP should be generated by the OTP service.
  3. A user should be able to verify the account using the received OTP.
  4. A user should be able to login. By using otp.
  5. A user should be able to get their profile.

What to implement for Auth Service

  1. SignupWithPhoneNumber
  2. VerifyPhoneNumber
  3. LoginWithPhoneNumber
  4. ValidatePhoneNumberLogin
  5. GetProfile

OTP Service

Create an OTP service. This service will handle the creation of an OTP.

  1. Will generate randomized OTP when called upon using Twilio's API.

Level 2


Implement and integrate a postgres database in which to save specific events occurring within the Auth service.

  1. Save user profile.
  2. Save login and logout event data.

Level 3


Integrate your choice of RabbitMQ, or GCP Pub/Sub message broker and integrate with services

Auth Service

  1. Publish SendOTP message on verification topic upon a user's account creation

OTP Service

  1. Will consume the SendOTP event, then send an OTP to the user's phone.

Resources

gRPC

quickstart: https://grpc.io/docs/languages/go/quickstart/

Twilio

API docs: https://www.twilio.com/docs/sms/api

GCP Pub/Sub

https://cloud.google.com/pubsub/docs/overview

RabbitMQ

quickstart: https://www.rabbitmq.com/tutorials/tutorial-one-go.html

Bonus Points

  1. Tests
  2. Comments

About

Homework assignment for potential hires.

Resources

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors