๐จ Please create a private fork of this repository and make all PRs into your own repository
Thank you for taking part in this and we are excited to see your work!
This repository contains a slimmed down version of an exporter and associated constructs for mocking functionality. There are three tasks to complete.
The following files are simple mocks and need not be edited for the purpose of this exercise.
1. src/logger.ts
2. src/permissions.ts
3. src/uuid.ts
Complete this README with a description of how the exporter works. You may also add diagrams/code snippets, whatever you think is required โญ๏ธ
Tips
- Read through the various files.
- Map out the high level system architecture and important functionality.
- (optional) Add comments to the
src/exporter.ts
file.
What we are looking for
- Clear explanations of what individual elements are.
- Some parts may be confusing, that's ok. We are looking for a thoughtful consideration of the different elements.
- Your approach to documentation.
Please choose either 2a or 2b!
We need new functionality adding. In addition to starting and fetching the status of exports. We would also like to cancel currently running exports. Please implement this functionality.
Tips
- We are looking for a minimum working example, try focus on getting to something working. We can talk through your design and architecture decisions during the next interview.
- The cancel existing import functionality should ideally stop an existing import. So no further bytes are piped from data source to the cache.
- Bonus points for helpful test coverage on new code.
Please choose either 2a or 2b!
The engineer who implemented this functionality forgot to add tests. We would like to cover this feature with tests. Please add suitable tests for the exporter.
Tips
- We are looking for how you approach testing code - be prepared to answer questions on why certain tests have been added!
- Test names should be descriptive and help us understand why you chose to write that test.
What would you improve? We know this feature isn't great. What would you change?
Tips
- We are looking for ideas such as patterns, principles and performance.
- You don't need to implement any improvements, but feel free to use code examples where you feel it would be helpful.
- Create a private fork of this repository
- Create a new branch in your fork
- Commit on that branch
- When you are ready to submit, create a PR back to your fork
- Add the user @heartbeat-med (https://github.com/heartbeat-med)
- We will comment on the PR
- You can either submit more code or we can discuss in the next interview ๐ค
- Any questions, reach out to us!
Run the example with:
yarn start
Format code:
yarn format