This blog is not supposed to explain the Cloud Native ecosystem but rather to provide a starter Guide. I will detail the way that I am thinking about identifying and defining my career steps and the topics that I should learn about. Now, this guide will require some of your efforts since I will not provide any of the answers to you. The answers to every section should vary depending on your experience and your approach.
If you go through all the sections, you should have a better idea of the questions that I ask myself when figuring out my next career move.
Why don’t I just provide a roadmap?
At the end of the blog post, I will talk a little bit more about my experience and my career path. However, my career path is just one path that happened by chance because I ran into the right people as I was sometimes really stubborn or even lost and had to figure things out. There are thousands of ways in which you can path your career in tech, following someone else’s roadmap would be like trying to paint the Mona Lisa. It will not be the same painting.
Overall, I get lots and lots of questions around what someone should learn when getting started in the cloud native space, whether people who have been focused on AI should now focus on cloud engineering, and how to get your first job in the DevOps space. My reply to these questions would highly depend on two things:
- What do you want to accomplish?
- What do you already know?
I cannot possibly know the answer to those questions for you — nor do I want to know the answer since someone might have highly personal reasons or it would take ages to have a conversation about. To be honest, I am constantly thinking about these questions for my own career, which is tough. Thus, in this blog post, I have put together a set of questions that I would or actually am asking myself whenever I am planning my next move.
These books guide my thinking
There are lots of different “self-help” and career books out there. However, most of them tell you things that you already know without providing a practical approach. The two books that had the most impact on the way I define my goals and think about my career are:
- “So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love” by Cal Newport
- “Think Big: Take Small Steps and Build the Future You Want” by Dr Grace Lordan
I read the first book just before I moved from the blockchain space to DevOps. Based on my thinking at the time and the ideas conveyed in the book, I wrote the following blog post: "Why I don't follow my passion"
On the other hand, “Think Big” offers lots of practical tips, including exercises, for identifying your next career move and managing your time. Let me know if you would like to hear more about each of them. In the meantime, I will share more of the questions that I would ask
Where do you want to go?
Defining your goals first is often easier than starting from the present. When I am thinking about what I want to accomplish, I try to envision what future me would look like. This could be along the lines of:
- What did I accomplish?
- What activities are taking up my work hours?
- Whom do I know and frequently network with?
So if you are thinking about getting started in the cloud native ecosystem, in DevOps, or really any area, I would ask the following questions:
- Why do you want to get started in the cloud native ecosystem? (Why do you choose the cloud native ecosystem over any other space?)
- What is it that you want to learn? (Docker, Kubernetes, Go, Monitoring, Specific tools such as Helm?)
- What skills do you want to master? (Implementing large-scale distribute monitroing, managinging microservice applications, etc.)
Skills are different from what you want to learn — within skills, you apply what you have already learnt e.g. on a theoretical basis.
- What accomplishments do you want to work towards? (Do you want to speak at conferences? Get a job? Get a higher paying job?)
The answer to these questions will vary between everyone. In many cases, you will likely have to do some research before being able to give a definite answer.
How do you go about answering these questions?
Here are some ways that I would use to identify the answer to those questions:
- Google keywords, e.g. Google Microservices and see what comes up, what sparks your interest and catches your attention? Is there any topic that you keep reading about and that keeps you hooked?
- Look at people on Twitter who work in a field that you want to work at or have done something that you want to do. What is it that they have accomplished and what is it that you want to accomplish?
- Have a look at a technology that you want to learn and identify the related tech stack e.g. when you are using Kubernetes, you sooner or later will have to familiarise yourself with Helm. Similarly, if you want to learn Kubernetes, you should be familiar with basic System Administration and Containers.
- Subscribe to newsletters since they will introduce you to new thoughts, technologies and examples. For instance, I am sharing lots of content by people from across the cloud native space in my weekly newsletter. Looking at the content by other people in the space will help you learn more about the different topics that you can spend your time on and that people had to master to become successful.
- Look at some of the projects that you are interested in, who are contributing to those projects? What are their skills? If those are open source projects, can you contribute to them? What skills are required to solve any of the open issues in that project?
- If your goal is to speak at a conference, talks require you to tell your story and share something insightful with the audience. I would suggest looking at conferences that you are interested in and identifying the qualities of the speakers and previous talks. Is there a common theme between talks?
- If your goal is to get a job in the cloud native ecosystem, I would have a look at companies that are currently hiring and read through their job description.
There are several different ways that you can identify how you can achieve what you want to be doing. A common misconception is that someone can tell you how to go about mastering a new skill, you follow their advice, and with no time, you will have mastered that skill. This is actually very unlikely. Even if you have mentors giving you advice and providing examples, you will still have to do the heavy lifting, do your research, and spend weeks studying new topics.
One way to know that you are learning the right things is by looking at job postings.
Identifying opportunities based on job research
Looking at job postings is a great way to identify the demand for a skill or a technology.
Personally, I would consistently have 2 or 3 job descriptions at hand of roles that I aspire to be capable of doing.
This has the following benefits:
- You are staying up to date with industry requirements: I don't know what skills your future employer will ask from you, your future employer likely does not even know. However, this process will help you identify potential skills that are in high demand.
- It makes you think about what you would really like to spend your time on. I cannot make you any recommendation about the things that you should learn because I don't know what you enjoy doing -- looking at job descriptions provides you with an opportunity to ask: Would I like to spend 1/3 of my life on this? Would I enjoy this work THAT much?
- It helps you stay realistic: We all would like to have our dream job that is perfectly tailored to our skills but in most cases, this will not happen. Looking at job descriptions frequently allows us to identify the set of skills that a favourable in combination. For example, I might not enjoy planning events THAT much. However, if only 10% of my work is event planning and the remaining 90% are tasks that I enjoy more, then I am happy to take on the event planning.
When you are looking for job postings, ask yourself the following questions:
The same job title and responsibilities will widely vary depending on the type of company you are going to work for, the size of the company and the size of the team within. I started my career in the startup world. As a contractor, I already worked for around 15 different startups. This allowed me to gain a huge range of experience and be given responsibilities that a larger company would not have in store for entry-level roles. However, at the same time, those opportunities come with lots of expectations. So ask yourself those questions:
- Would I like to work for a startup or larger company?
- What would be the difference in my job working for a startup or larger company?
- Do you enjoy working in a team or are you the lone wolf who likes to keep communication minimal?
- Do you want to work from 9 to 5 and not have to think in the evening or outside your working hours about your job or does your job define you and you live and breathe your work?
- How much structure e.g. vacation days do you want to have within your role?
- What career aspirations do you have and can the company you are looking at cater to those aspirations?
Furthermore, you want to be looking carefully at the skills and other requirements for each role. At smaller companies, you will likely have to wear multiple hats and be able to adapt on the go as new situations emerge.
- What skills are required by the role?
- What skills are you able to learn within the role?
- Do you see yourself doing the work described for several years?
And lastly, once you have identified the type of roles that intrigue you, you can already think ahead:
- What can you do now to prepare for the role?
- Who is currently holding a similar role whom you could look for guidance? There are lots of people who are posting their journey publicly on their Twitter account and/or blog. Also, many people (especially from academia) tend to write books on their careers.
- How do you think the role will evolve over the next month? What skills might be required then? How can you find that out and potentially prepare yourself?
How does what you already know influence your learning path?
I would always suggest building upon your existing knowledge as much as possible. This refers back to the book by Cal Newport “So good they can’t ignore you”. If you are wondering how to get really good within a subject area or you are considering a career change, read the book.
When I wanted to get out of the blockchain space, I did not simply look for a completely new job in a completely new industry. Instead, I thought about
- What skills do I currently have that are applicable across multiple roles and industries?
- What industries benefit from a similar knowledge to that which I acquired in the blockchain space?
- How can I make the most out of my current profile?
- What unique value can I bring to which types of roles and which types of companies?
You want to build upon everything that you have worked towards already. So if you have spent lots of time familiarising yourself with machine learning (ML) models and you want to go into DevOps, think about your existing skills, even if they are not directly related to ML e.g. problem solving, algorithms, programming language, anything that is technically specific. Next, you can look at other people within the DevOps space with experience in ML and see what they are working on daily.
Where do we go from here?
If you are going through this blog and you work towards the questions I’m posing, either in your mind or by writing your answers down on paper, you should be able to identify some of the things that you could be doing right now to develop your skills. These steps might be based on any gaps that you identified in your current learning journey or any skills or goals that you would like to work towards.
Next up I would try to ask the following questions:
- How can you surround yourself with people who can help you grow? I don’t mean messaging random people online whom you have never met but attending events and hackathons, putting yourself in situations where the chances are higher to meet those people.
- What resources do you need that you currently don’t have access to? E.g. if you think the only way to learn a skill is through a paid course, but you can currently not afford it, how do you make that knowledge from the course accessible to you? In many cases, you can find the same information somewhere else in a different format. For example, many online courses are based on free resources that are less structured and take slightly more time to find.
I want to give a special shout-out to ARMO for sponsoring this content. Content creation takes a lot of time and I want to keep my content freely accessible to everyone.
ARMO is bringing the future of developer-driven Kubernetes security, today. Their patented technology and tools fit natively within the CI/CD pipeline and existing development tools, assuring DevOps, DevSecOps, and developers that every Kubernetes’s cluster, container, and microservice is born and remains secure, from development to production and from configuration to run-time, every time.
What’s my path so far
I mentioned at the beginning of the blog post that I would be sharing more about my own learning journey in the DevOps space. I will divide this section into two parts:
- What was my journey like this far?
- What skills have I acquired in the process?
Again, this is not a direct recommendation and path to follow for everyone in the space — this is just the path that I happened to take based on so so many different influences such as work, community, personal time, things I happened to read etc.
What was my journey like this far?
I did a YouTube video a while ago in which I detailed my journey this far. Here is the video:
I might do an updated version soon.
What skills have I acquired in the process?
I will further divide this section into different parts and just summarise the technologies that I have worked with throughout my career.
In my first degree
- My degree was business and computer science focused; thus, I had several programming classes. However, those were focused on Java
In my first contract work in the blockchain space
- My job was to summarise whitepapers of various blockchain projects, explain their tech in an understandable manner and discuss the research of the tech in relation to the blockchain space. This work allowed me to gain lots of technical know-how.
- Additionally, someone I worked with would edit my writing before it would become finalised; he was so thorough in his editing that my technical writing skills improved by a lot.
Internship in Software Development
- I was doing a 4-month Internship at a “normal” company. During this time, I was part of their internal team that developed and maintained their intranet. I learn PHP, specifically Symfony from scratch.
First role as Developer Advocate
- The project was using Typescript and Rust
- Also, I learnt React to make my demos pretty
- Additionally, I learnt lots of community building, time management, project planning, among many other skills
First role in the DevOps space
- Docker, Kubernetes, CI/CD, Helm, Kustomize
- Using various cloud providers
- Additionally: Public speaking, more technical writing, documentation writing
First role as SRE
- Lots and lots of Terraform & Helm
- Lots of Sysadmin
- Some Go
On a very very high level that is pretty much it. I am not saying that you have to learn any of those technologies to get started in DevOps, those are just the main technologies that I have been learning about and using 😊
I think this is as much as I have to share or recommend for now. When I get questions to give career advice, I can often not go into more detail without spending hours with that person. Everyone is unique and everyone has unique aspirations.
I hope the questions I would pose myself help you to potentially find more clarity.
If you liked this blog post, please share it online — or let me know. I would love to hear from you!