Skip to content

Latest commit

 

History

History
20 lines (14 loc) · 1.8 KB

software-engineering.md

File metadata and controls

20 lines (14 loc) · 1.8 KB

GoodNotes - First Technical Challenge

This is an introductory coding challenge to evaluate candidates interested in joining the team at GoodNotes. It is meant to be fun and short (<2 hrs) and introduce some of the engineering challenges at GoodNotes.

Introduction

Conflict Free Replicated Data Types (CRDTs) are data structures that power real time collaborative applications in distributed systems. CRDTs can be replicated across systems, they can be updated independently and concurrently without coordination between the replicas, and it is always mathematically possible to resolve inconsistencies which might result.

Recommended Reading

Deliverable

Implement a LWW-Element-Set CRDT with test cases.

It may be helpful to start your reading here with sets. Test cases should be clearly written and document what aspect of CRDT they test. This challenge should take no more than 2 hours. The provided readings should be sufficient to understand LWW-Element-Set and CRDT on a high level. You are welcome to dig deeper on those but we expect you to come up with the implementation yourself without any help from other open sourced implementations.

Grading & Submission

You'll be graded based on code quality and test coverage, and you can use any language of choice. Please email us a link to your repository. If it's a private repository, pleaes share it to user gninterview on either GitHub or BitBucket.