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.
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.
- Handle multiple client requests.
- Simple comms over a TCP socket.
- Persistent storage (e.g saving to disk).
- Compare and Set operations.
- 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!