Git Product home page Git Product logo

exporter-exercise's Introduction

Heartbeat engineering challenge

๐Ÿšจ 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

Tasks

Task 1

Complete this README with a description of how the exporter works. You may also add diagrams/code snippets, whatever you think is required โญ๏ธ

Tips

  1. Read through the various files.
  2. Map out the high level system architecture and important functionality.
  3. (optional) Add comments to the src/exporter.ts file.

What we are looking for

  1. Clear explanations of what individual elements are.
  2. Some parts may be confusing, that's ok. We are looking for a thoughtful consideration of the different elements.
  3. Your approach to documentation.

Task 2a ๐Ÿ› 

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

  1. 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.
  2. The cancel existing import functionality should ideally stop an existing import. So no further bytes are piped from data source to the cache.
  3. Bonus points for helpful test coverage on new code.

Task 2b ๐Ÿงช

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

  1. We are looking for how you approach testing code - be prepared to answer questions on why certain tests have been added!
  2. Test names should be descriptive and help us understand why you chose to write that test.

Task 3 ๐Ÿ“ˆ

What would you improve? We know this feature isn't great. What would you change?

Tips

  1. We are looking for ideas such as patterns, principles and performance.
  2. You don't need to implement any improvements, but feel free to use code examples where you feel it would be helpful.

How to submit

  1. Create a private fork of this repository
  2. Create a new branch in your fork
  3. Commit on that branch
  4. When you are ready to submit, create a PR back to your fork
  5. Add the user @heartbeat-med (https://github.com/heartbeat-med)
  6. We will comment on the PR
  7. You can either submit more code or we can discuss in the next interview ๐Ÿค˜
  8. Any questions, reach out to us!

Start the application

Run the example with:

yarn start

Format code:

yarn format

exporter-exercise's People

Contributors

christianmellor avatar

Stargazers

Roman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.