Full-stack DevOps is one of those titles that many recruiters and job post listings throw around with large salary tags attached to them. Then you click into one and find yourself swimming in a sea of acronyms. You’re not quite sure if it’s a really bad joke or if the recruiter is just trying to cover every programming language and cloud service provider in existence.
This leads you to wonder: what exactly do I need to become a highly effective full-stack DevOps developer?
Key Skills for Full-Stack Developers
- Cloud computing
- Cloud-native applications
- Cloud applications with Node.js and React
- Containers, Kubernetes and OpenShift
- Python basics for data science
- Django application development with SQL and databases
- Microservices, serverless, OpenShift
- A high-impact full stack portfolio
Starting With the Basics: Cloud Computing
Everyone knows what cloud computing is...but, at the same time, they don’t. Cloud computing can be one of those mysterious, vague tech functions that seems more complex than it truly is. Essentially cloud computing means you know how to do things with at least one of the key cloud service providers. AWS is the biggest and most popular on the market followed by Microsoft Azure and then Google Cloud. There are also other providers like Digital Ocean and IBM Cloud.
While the way their services are delivered may differ, the key concepts such as regions, availability zones, data centers, virtualization, VMs and networking are basically the same.
So what do you actually need for the basics of cloud computing? Here’s a learning graph to get you started:
Putting a simple app on AWS is one thing. Knowing how to use AWS inside-out is another.
(Pro-tip: it doesn’t have to be AWS—it can be any cloud provider like Google Cloud and Microsoft Azure. I just say AWS because it’s the biggest and most likely easiest to get a full stack job if you’ve got AWS experience).
Here’s the overview guide:
Cloud Applications With Node.js and React
Containers, Kubernetes and OpenShift
Containers deal with the process of auto-deployments. Manually uploading your app into the cloud will not make you a true full stack developer. When you do that, it’s like saying that you know how to code after watching a 15-minute video on YouTube.
The main things you need to know are basically Docker, Kubernetes and OpenShift. Why these three things? Because they are the most popular orchestration services/methods currently used throughout the industry.
Here are the containers, Kubernetes and OpenShift knowledge points you need to be an effective full stack developer.
Python Basics for Data Science
Python isn’t a fad. Sooner or later, if you’re a full stack developer with DevOps skills, you’re going to encounter Python in some form—if not in AI programming, then for data science purposes or microservice scripting.
You also need some sort of actual compiled language. Python is the easiest to pick up and use. In fact, Python is a funny language because it’s both compiled and interpreted.
Django Application Development With SQL and Databases
In a nutshell, Django is web-based Python. While Django isn’t a requirement for full stack DevOps (you might be versed in Java or the C-family), I’m using Django as an example because you need at least one other backend programming language with a database that isn’t Node.js
Microservices, Serverless, OpenShift
These are more than just buzzwords. When building apps, we usually learn how to build in monoliths. Microservices and serverless shift how things are structured for a cloud-based environment.
OpenShift is basically container orchestration—which you’re going to need be have familiarity with OpenShift if you want to automate the deployment of all the little itty bitty microservices you (or someone else on your team) creates.
A High-Impact Full Stack Portfolio
If you’re new to the software development scene, you’re going to need some sort of portfolio piece. Rather than create several discrete pieces that hardly show off your skills, make one epic project that combines everything you know.
The point is to create a halo effect around your application when pitched against other developers after the same job. Look at it this way: who would you hire? Person A who has 12 basic projects that anyone can do or Person B who has one project that shows depth and skill?
Personally, I’d go for Person B. Why? Because I have evidence Person B can actually do everything they say they can do. In contrast, Person A might have a bunch of acronyms and keywords on their resume but they’re not actually demonstrating they can manage complex, nuanced projects.
So go and make something epic—or if you’re going to make a to-do list, it better be a proper one with authentication, database connections and a killer interface.
* * *
This is only a guide. There are 101 different ways to market yourself as a full stack developer. However, these skills will provide you with the depth and breadth needed to become a highly effective full stack developer. Anyone can put an app on the cloud nowadays so becoming proficient in these skills will help you stand out in the crowd.