Being in IT is... fun
As with any job, you naturally move around and, if you're in IT, the second you open Linkedin to recruiters, 10,000 recruiters will blow your inbox up trying to get you. And boy, do they harass you! Wow.
See, I've had my fare share of interviews, and I know what I want (cough slack cough jira), and don't want - Windows.
So in order to speed up the process of recruiters talking to me, and also to have a place to showcase my work, I decided it was a cool idea to make a
readme.md file almost, detailing what I do, past work and past projects.
Now this site looks pretty simple, and really, it is. But the magic is how it's come to exist.
(recruiters get out your bingo sheet)
Mkdocs is the platform on which the site is built, this is a project based documentation platform that renders
md files in to a static site.
I decided to go with this over something like Hugo was simple: I find Hugo overly complicated for what it is, and there is a lack of flexibility if you don't know a reasonable amount of WebDev, then it's just lost
It's SUPER simple to develop with, you just write a config file and then boom bow, run
mkdocs serve and you can see the live site
Seeing as all the files are
.md, it only makes sense to store this all in Github.
Now here's the catch. What we've done is build a Codefresh Pipeline (Same things used for terraform) that on a commit, builds the site and then deploys it.
Now we have the pipeline running, we mentioned that it 'Builds the site' - This is managed as a docker container. This has to be the most simple docker contaier in the world...
FROM nginx:alpine COPY site/ /usr/share/nginx/html
This docker container is then pushed to gcr.io for a later stage!
We also use docker for building the site, as there is a mkdocs docker container. If you're new to the world of cicd, most things need to run as a container in order to be used on a cicd pipeline!
This is the 'later stage'
To be able to host this site as cheaply as possible, I've selected to run on google cloud run, which is a super pain free means to running simple containers in production, and scale automatically.
Terraform uses the git commit ID as the container ID, and variables for what to deploy. This is actually pulled from the Codefresh Pipeline
Here's the coolest part I think!
The pipeline looks like below
Mkdocs build, docker build and deploy are the coolest parts.
mkdocs build connects to the local volume codefresh presnets, builds the static files to a directory, then the docker build pulls these files over, build the container and automatically pushes to GCR!
Finally the deploy steps are as you'd expect. The first one deploys to terraform, then the second one copies the files to my webserver where you've probably visited at some point!
The coolest part?
Everything is managed as code.
This includes but not limited to:
- GCP API Enablement
- GCP Service account creation
- DNS Config
- Docker Containers
- Pipeline setup
The best way that I've seen to present your knowledge to recruiters as well as companies etc, is a site! I've got more comments about my site and my portfolio than my CV, as you're boxed in to this one page paradox where you're expected to only fill out a page, and miss things!
A good example of this, is the skills matrix on the home page, this shows anyone what I know, and how well!
This is also a really good project to learn cloudrun, terraform and CICD - And the best part is you have an actual end product that you can use, and present to people!
So I've added the ability to subscribe to my site... I know no one will, but I thought I would try and let yall enjoy it? It will just be a link to the latest post!