Skip to content

Instantly share code, notes, and snippets.

@nfisher
Last active April 20, 2023 15:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nfisher/63658796ee156c2afb666cb3611612bb to your computer and use it in GitHub Desktop.
Save nfisher/63658796ee156c2afb666cb3611612bb to your computer and use it in GitHub Desktop.
stankv

How we're assessing you

As part of this interview you will develop a MVP in Java.

We will measure you on the following criteria:

  • Overall clarity of communication.
  • Problem solving methodology.
  • Architecture and design.
  • Implementation of tests, unit and integration ideally.
  • Use of appropriate conconcurrency and datastructures.
  • It is not expected you complete the solution in the call.

Problem Outline

Your task is to design and implement a key-value store based on the following protocol specification:

> RET stan
NOT FOUND
> ADD stan rocks
OK
> RET stan
rocks

You can clone the instana/stankv repo as a basis to start.

Scope

In Scope

  • Handle multiple client requests.
  • Simple comms over a TCP socket.

Out of Scope

  • Persistent storage (e.g saving to disk).
  • Compare and Set operations.

Suggestions

  • This is not a HTTP protocol.
  • Outline implementation before coding: testing, parsing, concurrency, etc.
  • Identify gaps in knowledge and outline how you'll resolve them.
  • It is preferable you drive the implementation from tests.
  • You can use Google, StackOverflow and any other resources you normally would.
  • We expect some of these concepts to be new to many candidates.
  • We're interested in how you approach dealing with new problems.
  • Not knowing is Ok.
  • Asking questions is strongly encouraged!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment