Skip to content

Instantly share code, notes, and snippets.

@abtreece
Last active April 27, 2021 13:35
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/5c09d0089181b1604663df303c33b58f to your computer and use it in GitHub Desktop.
Save abtreece/5c09d0089181b1604663df303c33b58f to your computer and use it in GitHub Desktop.

Spreedly Senior 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 deploy the Spreedly Phasers application using Kubernetes or Nomad. This sample application is used to demonstrate adding a payment method and completing a purchase to potential customers.

Your task is to use a local (single-node) Kubernetes cluster or dev mode Nomad to deploy the Spreedly Phasers application via HTTPS.

Example of the application running: https://spreedly-phasers.herokuapp.com
Code for the application: https://github.com/spreedly/sample-phasers
Docker container for the application: https://hub.docker.com/r/spreedly/sample-phasers

Note: Valid Spreedly credentials set as env vars are needed for the purchase flow to function. We have not provided those as that is unnecessary complexity for this assignment

Deliverables

The final output of your work should include:

  • The necessary configurations that enable us to deploy Spreedly Phasers served via HTTPS on Kubernetes or Nomad.
  • A README that includes:
    • An overview of your solution
    • Instructions for deploying the application to the local Kubernetes cluster or dev mode Nomad
    • Any additional thoughts or considerations on what you would do differently for production use deployment

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