Giter Site home page Giter Site logo

opseng-challenge's Introduction

Wave Operations Engineering Development Challenge

Applicants for the Operations Engineering team at Wave must complete the following challenge, and submit a solution prior to the interviewing process.

The purpose of this exercise is to create something that we can discuss during the on-site interview, and that's representative of the kind of things we do here on a daily basis.

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 expect to leave things open to discussion in the on-site interview.

Send your completed submission to your contact at Wave. Feel free to email [email protected] if you have any questions.

Submission Instructions

  1. Fork this project on GitHub - you'll need to create an account if you don't already have one
  2. Complete the project as described below within your fork
  3. Push all of your changes to your fork on GitHub and submit a pull request
  4. Email your contact at Wave to let them know you have submitted a solution, and make sure to include your GitHub username in your email (so we can match applicants with pull requests)

Alternate Submission Instructions (if you don't want to publicize completing the challenge)

  1. Clone the repository
  2. Complete your project as described below within your local repository
  3. Email a patch file to your contact at Wave

Project Description

There's a basic Python app available here. Your task is to host this app on AWS, using the current HEAD of the master branch as of when we test your submission.

The OS used for hosting, and the tools & techniques used to accomplish this are up to you. Once you're done, please submit a paragraph or two in your README about what you're particularly proud of in your implementation, and why. Be deliberate in your choices and design, as we'll use them as a starting point for our discussions.

Deliverables

You should provide at least an executable bash script called aws-app.sh. You're welcome to include other files and install/use other tools in your repo as needed, but aws-app.sh is what we'll run to test your submission (see the evaluation section).

Notes

  • Do not check AWS keys or any other secret credentials into git
  • Prefix all of your AWS resources (when possible) with your first name (example: joanne.domain.com)

Evaluation

We'll do the following, using on a stock OSX machine with Python 3.9 or higher, the awscli Python package installed, and appropriate AWS environment variables set:

$ git clone <your username>/<repo name>  # Or we'll apply your patch file to a checked-out branch
$ cd <repo name>
$ ./aws-app.sh

We expect that this will output a URL, and we'll then visit that URL to confirm it has the output generated by the current HEAD of the master branch of the repo linked to above.

When we're evaluating your submission, some of the questions we'll be asking are:

  • If we follow the steps above, do we end up with a working app at the URL specified?
  • Does the working app reflect what's at the HEAD of the master branch right now, or at a point in the past?
  • If we wanted to push out an updated version of the app's code, how much work would that be?
  • Which application(s) and OS were chosen to host the app, and why?
  • Which hosting strategy was selected, and did you have a good reason to pick that one?
  • Are the decisions and strengths/weaknesses of this strategy discussed?
  • How much of the hosting infrastructure is created when calling aws-app.sh, and how much does the script assume already exists or is created by hand in the console?

opseng-challenge's People

Contributors

mwarkentin avatar nduthoit avatar wvchallenges avatar

Stargazers

 avatar  avatar  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.