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
One of the areas that Spreedly is increasingly moving is ensuring we can deploy our architecture with containers. To that end, we'd like you to deploy one of our sample applications using Docker. This sample application utilizes some of our production code just as our customers would use it.
Your task is to:
Use NGINX running in Docker to serve 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 container 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
Your README should include the command necessary to run the Docker container.
Solution Format Please do not post your solution to public Git repositories like GitHub or Gitlab. Instead please work locally:
mkdir solution && cd solution
git init
touch README.md
git commit -m "Initial commit"
- < ...hack, hack, hack... >
cd .. && git clone --mirror solution solution.repo
tar czf solution.repo.tgz solution.repo
Your commits should clearly communicate your intent and choices made while completing the task.
Please submit your deliverables via email to jobs@spreedly.com