Skip to content

fira42073/klaus-softwareengineer-test-task

 
 

Repository files navigation

Software Engineer Test Task

As a test task for Klaus software engineering position we ask our candidates to build a small gRPC service using language of their choice. Prefered language for new services in Klaus is Go.

The service should be using provided sample data from SQLite database (database.db).

Please fork this repository and share the link to your solution with us.

Tasks

  1. Come up with ticket score algorithm that accounts for rating category weights (available in rating_categories table). Ratings are given in a scale of 0 to 5. Score should be representable in percentages from 0 to 100.

  2. Build a service that can be queried using gRPC calls and can answer following questions:

    • Aggregated category scores over a period of time

      E.g. what have the daily ticket scores been for a past week or what were the scores between 1st and 31st of January.

      For periods longer than one month weekly aggregates should be returned instead of daily values.

      From the reponse the following UI representation should be possible:

      Category Ratings Date 1 Date 2 ... Score
      Tone 1 30% N/A N/A X%
      Grammar 2 N/A 90% 100% X%
      Random 6 12% 10% 10% X%
    • Scores by ticket

      Aggregate scores for categories within defined period by ticket.

      E.g. what aggregate category scores tickets have within defined rating time range have.

      Ticket ID Category 1 Category 2
      1 100% 30%
      2 30% 80%
    • Overal quality score

      What is the overall aggregate score for a period.

      E.g. the overall score over past week has been 96%.

    • Period over Period score change

      What has been the change from selected period over previous period.

      E.g. current week vs. previous week or December vs. January change in percentages.

Bonus

  • How would you build and deploy the solution?

    At Klaus we make heavy use of containers and Kubernetes.

Here should be a description about how to run the service and recompile proto files.

use buf generate to generate the proto files use go run cmd/main.go to run no environment variables required for configuration

About

Software Engineer Test Task

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.9%
  • Dockerfile 4.1%