Careerist
Careerist is an ed-fintech platform that trains job seekers for tech careers (in QA, Sales, Support & more), finances them and automates their job hunting.
In 2023, Careerist has raised $8 million in a Series A round from a range of investors, including Cathexis Ventures, Xploration Capital, Cold Start Ventures, Grand Park Ventures, Y Combinator, and angel investors like James Herbert from First Republic Bank and Mikita Mikado, the founder of PandaDoc.
The differences that I contributed
Infrastructure as code, from scratch.
When I joined Careerist, the primary cloud platform was Digital Ocean. However, considering the scale of a company like Careerist, I found Digital Ocean to be less suitable due to its lack of vital services like IAM.
Upon joining, I noticed the absence of Infrastructure as Code (IaC) or an infrastructure repository. This meant that reproducing or migrating the existing infrastructure to a new cloud would be a challenging task, requiring significant time and effort. To address this, I prioritized the development of the infrastructure to enable future migration or changes with reasonable effort.
Initially, I spent two days analyzing the entire picture of the existing cloud infrastructure using Miro
to design a
diagram with connections between services. Although Miro wasn’t my initial choice, as I had advocated for
D2
, a diagramming tool, I eventually used Miro
because it had already been purchased by the company.
Looking back, I’m proud of the work I accomplished with Miro
. The diagram I created provides
a detailed representation of the entire cloud infrastructure, with each service having its icon within each module, distinguished by different colors.
Unfortunately, due to NDA constraints, I can’t share the diagram here.
Using Ansible
, I built an inventory and playbooks to reproduce the state of virtual machines as closely as possible. With around 40-50
active virtual machines, I couldn’t convert every one of them into a reproducible set of playbooks due to other responsibilities.
Terraform intergration
In my first month at the company, I was assigned to the infrastructure department, where I observed an interesting practice. Advocating for open-source solutions required creating presentations and explaining to developers, managers, and HR why a specific technology should be adopted. While this approach seemed odd to me, especially for solutions like Terraform whose benefits were apparent, I understood that not everyone shared the same level of interest in these topics, particularly those outside the technical domain.
Surprisingly, I enjoyed creating these presentations and discussing the pros and cons of Terraform. Even though I don’t believe that DevOps/SRE professionals should do such presentations every day, the soft skills acquired during these sessions proved to be valuable.
Following one such presentation, I received approval to integrate Terraform into our Infrastructure as Code (IaC) practices.
I developed a Python script capable of scraping resource IDs for all available resources and importing them using
terraform import
. This approach allowed me to achieve reverse provisioning with Digital Ocean.
Monitoring for production kubernetes cluster
I integrated a monitoring solution into our Infrastructure as Code and deployed it to our production Kubernetes
cluster. Utilizing the classic bundle of Prometheus
and Grafana
, the process turned out to be less challenging than
I had anticipated. I discovered Helm
charts, pulled them into our infrastructure repository, made necessary value changes, and deployed the solution.
Following that, I sought publicly available and popular dashboards for Kubernetes
monitoring, seamlessly importing them into the existing
Grafana
instance. It’s worth mentioning that the ingress was already in place before my involvement, so
I simply uncommented the ingress value in the Grafana
chart. I then assigned the service to a subdomain (grafana.careerist.cloud)
.