DevOps Candidate Assignment
Objective:
Bootstrap, containerize, and prepare a production-ready deployment of a Vendure application while demonstrating your Git workflow, automation practices, and infrastructure design decisions.
Assignment:
Bootstrap a new Vendure application using the latest version of @vendure/create.
Configure the application to use the latest supported PostgreSQL version.
Create a private GitHub repository and push the project.
Follow a Git workflow that you would use in a real project. Infrastructure-related work should be developed in separate feature branches and integrated into main through Pull Requests.
Containerize the application for local development and production.
Prepare Kubernetes deployment assets for the application.
Package the Kubernetes deployment as a reusable Helm chart.
Create a GitHub Actions workflow that:
a. Builds the Docker image.
b. Tags the image appropriately.
c. Pushes the image to GitHub Container Registry (ghcr.io).
d. Runs automatically on changes to the main branch.
Document the project sufficiently for another engineer to build, deploy, and maintain it.
Invite GitHub user xxxxxinternal to the repository as a collaborator.
Expectations:
This assignment intentionally leaves implementation details open. Make engineering decisions as you would on a production project.
Submission:
Your submission will be evaluated based on, but not limited to:
Git workflow, commit history, and Pull Requests
Branching strategy
Docker best practices
Kubernetes design and deployment approach
Helm chart quality and reusability
CI/CD pipeline design
Repository organization
Documentation
Security considerations
Maintainability and production readiness
Where multiple valid approaches exist, choose the solution you believe is most appropriate and document any significant design decisions or assumptions.