This is a basic repository with Django 2.2 tutorial polls application (taken straight from the Django project's official website) with some simple tasks to the offline DevOps technical interview and it have been cloned from a real interview process from a company some years ago, but it is still more valuable now after all this years.
This app will be used as a base for your next test (#2) and we'll discuss and evaluate both tests during your online technical interview. Now, we have a few different tasks for you based on this diagram:
- Fork this repository.
- Improve the Dockerfile to create a image of Django pool application.
- Write an example set of manifests to deploy this poll app with 03 replicas, a postgresql database and a nginx frontend considering Kubernetes 1.20.x.
- The deployment should automatizate tasks like creating and populating of database.
- Write some brief documentation on how we might deploy this app in KIND or Minikube using your manifests.
- Find and fix at least one thing in code does not conform to the 12-factor app model
- Create a list of any questions that you would have for the engineering team
Our goals in reviewing this exercise with you are as follows:
- Evaluate your ability to ask questions and propose changes.
- Evaluate your ability to documentate and work with git (branches, pull requests, merges and others).
- Evaluate your ability to find and solve problems.
- Evaluate your ability to improve deployments (considering the actual diagram environment).
- Evaluate your ability to understand and help build a good developer experience.
- Evaluate your ability to understand and write basic application code.
- Show an understanding of Kubernetes resources and declarative infrastructure.
- Show knowledge about security and performance issues.
- Show knowledge of both development and production concerns surrounding microservices and containerized applications.
- Show knowledge of what questions and concerns to raise to a product development team or your own teammates in developing and releasing a service.
While working on this challenge, you are welcome to email us for any clarification or requirement questions you have. Our recruiter will let you know who to talk to during this process if you have any questions.
During the online technical interview we will review your work on both tests, go through the PR as we would any code review, and discuss the decisions you made and fixes you chose to implement, as well as any additional concerns you have. Be prepared to also discuss CI/CD for the app, though we do not expect you to build anything for this.
We only expect you to spend a few hours on this. You're welcome to do as much as you'd like to do, but it's not our intention to take up days of your time. If there are things you don't have the time to fix or improve, feel free to only work on the required to have the system working and please be prepared to talk us through them at the interview.