Giter Club home page Giter Club logo

ds-challenge's Introduction

Wave Software Development Challenge

Applicants for roles in the Developer Systems team at Wave must complete the following challenge, and submit a solution prior to the onsite interview.

The purpose of this exercise is to create something that we can work on together during the onsite. We do this so that you get a chance to collaborate with Wavers during the interview in a situation where you know something better than us (it's your code, after all!)

There isn't a hard deadline for this exercise; take as long as you need to complete it. However, in terms of total time spent actively working on the challenge, we ask that you not spend more than a few hours, as we value your time and are happy to leave things open to discussion in the on-site interview.

Feel free to email [email protected] if you have any questions.

Project Description

A developer is working on an idea for an app. This will be a messaging system which is implemented as a set of Python applications. The first one, kafka-producer will send messages to the message stream, and the second one kafka-consumer will consume messages from the stream and store them in a database. Both applications have UIs which will allow the user to send a message or to view the messages which have been sent.

The developer started working on this project locally, and after a while decided that dockerizing the applications would help her get to production faster. She created dockerfiles for her applications and was able to test them successfully locally. A friend suggested that she use docker compose in order to orchestrate her containers but she is unfamiliar with the technology and wants to focus on application development for now, and so has asked for help with creating the docker compose file for this set of applications.

Can you help her out by creating a docker-compose file for her applications?

She is planning on using Confluent Kafka as her platform in production and using Redis as the backing store for her asynchronous task processor Celery.

Documentation:

Please commit the following to this README.md:

  1. Instructions on how to build/run the application
  2. Answers to the following questions:
    • How did you test that your implementation was correct?
    • If this application was destined for a production environment, what would you add or change?
    • What compromises did you have to make as a result of the time constraints of this challenge?

Submission Instructions

  1. Clone the repository.
  2. Complete your project as described above within your local repository.
  3. Ensure everything you want to commit is committed.
  4. Create a git bundle: git bundle create your_name.bundle --all
  5. Email the bundle file to [email protected] and CC the recruiter you have been in contact with.

Evaluation

Evaluation of your submission will be based on the following criteria.

  1. Did you follow the instructions for submission?
  2. Did you complete the steps outlined in the Documentation section?
  3. Is the solution as simple and user-friendly
  4. Is it clear from the configuration what is going on

ds-challenge's People

Contributors

wvchallenges avatar

Watchers

 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.