Skip to content

Instantly share code, notes, and snippets.

@abtreece
Last active September 16, 2021 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abtreece/ffbaf41e9d9cd2c93c9ff396cc605396 to your computer and use it in GitHub Desktop.
Save abtreece/ffbaf41e9d9cd2c93c9ff396cc605396 to your computer and use it in GitHub Desktop.

Spreedly Systems Engineer Work Sample

Being a company founded by developers, it's in our DNA to automate as much as we can and deploy as often as possible in order to allow for rapid development, innovation, and reduced human error. Spreedly relies on many internal services for its infrastructure. Your role as a Systems Engineer at Spreedly will involve:

  • Understanding how all the pieces that comprise the infrastructure fit together
  • Knowing how best to maintain and secure that infrastructure
  • Automating provisioning, testing, and maintenance as much as possible
  • Measuring and monitoring system fitness
  • Delivering services that other engineering teams can utilize in support of their development efforts
  • Communicating well with the rest of the team and the wider technical community

Our Technical Values

We highly value:

  • pragmatic solutions with an eye toward future, incremental improvements
  • careful attention to detail
  • testing before deployment
  • communicating intent through code, commits, and documentation

The Task

The Infrastructure team at Spreedly is moving towards a more microservice based infrastructure. To that end, we'd like you to containerize one of our sample applications. This sample application utilizes some of our production code just as our customers would use it.

Your task is to use an Ubuntu 18.04 image to install and configure NGINX so that it serves the Spreedly Payment Frame via HTTPS.

Example of the application running: https://spreedly-payment-frame.herokuapp.com/
Code for the application: https://github.com/spreedly/sample-payment-frame.

Deliverables

The final output of your work should be:

  • Code which generates a Docker image that serves the Spreedly Payment Frame via HTTPS.
  • Your code will minimally include a Dockerfile which:
    • Uses Ubuntu 18.04 as the base image
    • Installs and configures NGINX to serve Spreedly Payment Frame via HTTPS
  • A README that includes
    • An overview of your solution
    • Instructions for running the Docker container that serves the application
    • Any additional thoughts or considerations on what you might do differently for production use

Solution Format
Please do not post your solution to public Git repositories like GitHub or Gitlab. Instead please work locally:

  1. mkdir solution && cd solution
  2. git init
  3. touch README.md
  4. git commit -m "Initial commit"
  5. < ...hack, hack, hack... >
  6. cd .. && git clone --mirror solution solution.repo
  7. tar czf solution.repo.tgz solution.repo

Your commits should clearly communicate your intent and choices made while completing the task.

Please reply to the work sample assignment email with your attached solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment