What this post is about
I recently joined CECG and the onboarding process looked and felt different compared to other companies I worked at.
So in this post I’ll describe my experience, impressions and what I’ve managed to build while onboarding.
How is CECG onboarding different from onboarding at other companies?
The main thing we do at CECG is building Internal Developer Platforms (IDP), which means that we are looking for people who are good at both: coding and operations. It might be hard to find such people, so we are open for Software Developers who are willing to learn Ops and vice versa.
And this is exactly who I am: I’m a Software Developer with a mainly Java background, but I always felt kind of constrained and bored 90% of the time doing just development on a Backend.
And CECG doesn’t just hire and expect you to figure it out on the spot somehow, but instead, all permanent engineers are going through a 1-3 months bootcamp.
What is the bootcamp about?
The purpose of the bootcamp is to make you familiar with IDP concepts, to close knowledge gaps and to get used to CECG principles.
The bootcamp consists of several modules, each of them is expected to be finished within 1-2 weeks.
Before I started going through the bootcamp I was assigned a mentor, who assisted me with going through it.
Each modules consists of:
- expected knowledge to have before start and recommended resources to close gaps.
- 1 or more sequential tasks with requirements.
During working on each module you:
- go through recommended resources to fill the background gaps if needed.
- have a defuzz session (this a meeting where we make sure that the motivation and requirements for the task/epic are clear) for the bootcamp tasks with the mentor, if required.
- have a quick daily standup with the mentor to sync on process and discuss any questions you might have.
- demo of the results, if required.
The whole module loop sounds similar to what sprints might look like in a common development process. And this is intentional, bootcamp should also make you familiar with internal processes.
Another thing I really appreciate: all of the tasks in the modules don’t suggest an algorithm for solving it. You have to figure out a lot by yourself, which makes the learning tougher, but proves to be more useful in the long run.
I find this approach for learning much more effective compared to what a lot of courses are suggesting right now – giving you a more or less concrete list of steps for completing its exercises.
What do tasks look like?
A few beginning modules provide skeleton projects for you to modify to finish exercises, so it’s relatively easy to finish them and it gives you some time to learn new domains and technologies.
But some of the next modules expect from you to build your own little IDP on your local machine. It involves:
- configuring multi-tenant K8S cluster with the help of HNC (Hierarchical Namespace Controller)
- configuring network isolation with one of available CNI (Container Network Interface)
- providing monitoring capability with the help of Grafana / Prometheus
- creating a K8S operator to manage canary deployments in Go
I learned a lot while I was working on it! I even managed to find a bug in Cilium CNI and submitted a PR with a fix! (it was kind of small fortunately)
All of it might sound somewhat overwhelming, but remember that you have your mentor at your disposal and other bright minds around you who are happy to help.
Plus, you’ll write ADRs (Architectural Decision Records) describing your, well, architectural decisions and discuss it with your mentor, who might help you to stay on the right path in case of anything.
Bootcamp is a product
The bootcamp is a product by itself, which means that you are also putting your tester hat on by going through the modules.
So, you are not just sitting isolated from the rest of the company, and you are in a good place to start your contributions!
Even small things, such as typo fixes, are valued.
Final words
My first 2 months in CECG looked nothing like the first 2 months in any other company I worked at.
From having little to no knowledge about IDPs and K8S administration, with help of the bootcamp, I quickly got to the point where I feel productive at those topics.