Why DevOps Skills Are So Valuable…
There’s a growing demand for unique people who can write code, automate services, and navigate, vSphere, Amazon, Azure, and Google cloud stacks. And the demand is only going to keep increasing!
Let me introduce you to the DevOps Engineer.
The cloud trend has become intense.
More IT infrastructures have evolved into hybrid clouds that include VMware vSphere and/or another on-premise private cloud technology, as well as public cloud SaaS, IaaS, and PaaS resources.
If you found this page because you’re looking for information about becoming a DevOps Engineer, you’re in the right place.
Here’s why…
Because in this study guide, we’ll review a well-rounded list of the best DevOps skills.
Look, for a couple of decades, our IT world has been changing — moving from extensive hardware-based systems to hyper-converged infrastructure with software-defined intelligence.
The traditional SysAdmin role has changed and a different breed of IT talent is needed if you plan to advance your business or career beyond the typical IaaS (infrastructure as a Service) model.
Now, if you’re a Hiring Managing looking for information or a Systems Admin/Developer looking for guidance like I said, you’re all in the right place…
DevOps Career And Skills
We’ll cover what it takes from end to end.
In a moment, I’ll share what I’ve discovered through my trials and tribulations over the last decade and give you the details on the best 11 DevOps skills.
Stick with me, and I will share the secret recipe of skills that’ll help you identify elusive DevOps Engineer talents that can successfully get your applications running “RIGHT” in the cloud and build a CI/CD pipeline.
To keep this list fresh for 2022, I added the 11th skill and updated the FAQ at the end of this guide because blockchain and Deep Learning are now disruptors that we need to consider as opportunities.
I’ll also warn you upfront; it takes a lot more than knowing VMware vSphere and Linux to make the list…
My Own DevOps Definition
Let’s start with a clear and concise DevOps definition.
“DevOps is the culmination of behaviors, community, culture and technical talent colliding to improve user experience through tools, technologies, trust and people.”
How was that for a DevOps definition? And here’s where you can find a concise DevOps strategy…
Share your thoughts in the comments.
Creating A Perfect DevOps Engineer Job Description in 2022
Look:
Before we get to the meat of this post, let’s figure out what a DevOps engineer job description should consist of:
First, let’s begin with a DevOps Engineer job search. Go ahead, check them out, then come back.
Do you see what I see?
They’re all the same job descriptions except for a few unique scripting skills.
I plan to give you the secret sauce if you stay with me until the end. Here we go…
11 Best DevOps Skills To Look for in Job Applicants
#1 – An Impeccable SysAdmin
Must be a senior level Windows/Linux Administrator (Either/Or/Both depending on your shop) with 5 – 10 years of experience. Why? Because they need to be able to build and administer servers in their sleep. But that’s not the only reason a lot is riding on someone to automate server deployments because this is a big problem in most IT shops.
#2 – Virtualization Experience
Must have 3 – 5 years of virtualization experience with VMware, KVM, Xen, Hyper-V, or whichever hypervisor you run in your private cloud. Now, they may never get involved in the day-to-day support of the infrastructure work. Still, they darn well better understand it because most public clouds are running multiple flavors of virtualization.
#3 – Broad Technical Background
Along with virtualization experience, they must understand storage and networking. Why? Because gone are the days when network and storage are silos. It would be best if you had people who can design a solution that scales and performs with high availability and uptime. Applicants also need to understand fault tolerance and failure domains so they’re not putting all the eggs in one basket.
#4 – Scripting Guru
Have I said they need to be able to script yet? Terraform, Bash, Powershell, Perl, Ruby, JavaScript, Python – you name it. They must be able to write code to automate repeatable processes. But we’re not stopping there because they also need to be able to code to RESTFUL APIs. That’s right. If you are going to replace manual processes such as assigning IP addresses and DNS reservations, someone needs to write some code. And here’s another excellent resource on RESTFUL web services.
#5 – Borderline Developer (more is better)
Have I said they need to code in Java, Php, C+, C++, .NET, ASP? No, I am not repeating myself. I am talking about writing scripts that will fire off and orchestrate the complete deployments of DEV, QA, and Production environments via tools such as Chef, Puppet, CFEngine, or other tools of this kind. Why? Because gone are the days when someone installs Windows or Linux from a CD. Nowadays, you fire off a command that shoots out a server build, then trigger another script that installs applications, then licks its lips and shoots off yet other scripts that do configurations and validation checks. Who do you think is going to write all this code? Not a SysAdmin. DevOps Engineers will.
Some would argue he/she doesn’t exist but I disagree. The DevOps Engineer is a new emerging role you soon won’t be able to be without.
#6 – Chef, Puppet, or other Automation Tool Experience
I think I already mentioned automation tools such as Chef, but there are others such as Ansible, Fabric, and GIT that all have their place on the keychain too. Finding a DevOps Engineer with all this talent will not be easy or cheap. But let’s keep going while I have your attention.
#7 – People Skills
There used to be a free pass for people who were geniuses, but they couldn’t get along with anyone. Call them JERKS or other four-letter words, but they were tolerated because nobody else could do what they did. Not the case in today’s world. Fault tolerance and scalability happen at the people level too. And it would be best if you had people others can go to for assistance without someone taking off their head with insults. Do your best to find people who can communicate with emotional intelligence (basically, they stay composed in stressful situations). This segues into the next DevOps skill related to being human…
#8 – Customer Service
If you have watched Gene Kim’s video on YouTube, you have heard how important the feedback loop is. Finding people with all the technical skills listed will be hard enough, but now I am adding customer service to the list. Here’s a thought. If applicants have owned a business, then they are probably good at customer service. Finding people who care and can drill down into a conversation with the developer or customer is key to solving problems. It does take a unique person to listen to feedback, especially when the developer or customer calls someone’s baby ugly. I wish I had a dollar for every time a developer blamed my infrastructure for why they were late on a project or why their app was slow.
#9 – Real Cloud Experience
We’re almost there. The ninth DevOps skill – you want experience deploying applications in Amazon AWS, Google, or Azure. Real examples that measure successes. Why? Because there’s a shortage of people who understand IaaS versus PaaS; stateful versus stateless, and something is known as loosely coupled apps. It’s no longer about fork-lifting existing servers and applications to the cloud, now it’s about designing and deploying applications using the “best of the best” Amazon, Azure, and Google have to offer. We’re talking about doing what the people building clouds are doing, which is leveraging software-defined data centers to code true PaaS environments. We’re talking compute, networks, and storage resources at the developer’s fingertips.
Number 10 – Someone Who Cares
So as we come to the last skill, which is dear to my heart, I want to say it’s not common. Why? Because most IT people are – well – IT people and want to be left alone in a dark corner. Finding someone with all these skills is rare and worth every dollar. But now, I am talking about someone who cares and can mentor others. Someone willing to share their ideas and scripts with the team. Someone who can lead people and get people thinking together about solving problems. Far too often, the real issues with IT are because IT people don’t talk, or should I say, they don’t listen!
(Updated) #11 – Unselfish
Adding Unselfish as a DevOps skill is long overdue, but it’s finally here. Let me share what Unselfish means to me, and then I’ll explain. An unselfish person will share their ideas, but when it comes down to meeting the customer’s request, even if it’s doing the work differently – they’ll do the job. Here’s why this skill is essential. Sometimes, you need someone that flows with the plan. More times than not – it becomes a contest of wills to get the simplest things done. Mind you. Most DevOps-minded people are brilliant, which probably plays into their stubbornness in following the plan.
I get it, your idea is better but it’s not what the customer or business wants right now.
I find myself far too often caught in the middle of too many innovative ideas that are far too complex. Can you relate? Steven Johnson calls what I’m looking for – “adjacent possible.”
So when you’re looking for the ideal DevOps candidate to hire on your team – yes, you want to best person to do the work. However, if it comes down to picking the person who can do the adjacent possible – or someone who always wants to argue about doing it the most innovative way and then makes sure everyone knows their idea is better – well, go figure. Unselfish is a vital DevOps skill, especially if there’s more than 1 person on your team.
The Search is Over or Should I Say is Just Beginning?
These are the 10 11 DevOps skills to look for in applicants while you screen resumes and people for the elusive DevOps engineer position you have posted on Dice or LinkedIn.
It won’t be easy to find applicants, and you will most likely need a strategy to create the right set of DevOps interview questions.
Why?
Because there aren’t many managers or recruiters around with the right mindset to write them…
…and even less who understand what DevOps is.
The other option is to develop DevOps skills in-house, which in some cases is less disruptive.
The $ecret $auce (Hint)
Finally, I want to cover what a DevOps Engineer’s salary may be.
Let’s look at this salary graph.
On the top end (we’re talking seasoned), the range might be a little low, while on the low end, the range is excellent.
DevOps Salary Graph Compliments of Jet
Think about what I just covered in this post.
We’re not talking about a network or server engineer who might take anywhere from 85 – 110K.
Look:
We’re talking about an elusive skill set not many people in the world currently have.
Finding someone with 6 out of 10 of the skills listed above would be a prize!
So now I am going to share the secret sauce.
How important is it to you to do things right the first time?
Or should I say, how much are you willing to pay to do it a second or third time, or until someone gets it right?
You see, what I have learned in the last 7 years is businesses can always afford to pay twice, yet they never understand the value of spending enough for the right people to do it right once.
Championships are won by the right people and leaders who leave it all on the field or court when it counts most.
Rule of thumb:
A DevOps Engineer Salary is more than enough but less than having to pay twice or three times the amount to do the same work over…
Better yet, sometimes, people with the best DevOps skills don’t necessarily cost the most, yet they bring the most value to the team.
Something Special Just For Windows Admins…
If you’re a Windows SysAdmin and you’re not sure where to start, check out my NEW Ultimate Guide for Microsoft DevOps.
More Useful DevOps Guides:
- Please read all about my DevOps Journey in this Free DevOps eBook
- DevOps Toolchain: Download 3 Free Tools Used By Pros (Ansible, Git, Jenkins)
- RESTful Web Services Tutorial with Example
Last update on 2024-12-02.
DevOpsebook.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com, Amazon.co.uk, Amazon.ca, and other Amazon stores worldwide.
Mary Townsend says
My company has been pushing me toward a DevOps career for the last year. Here’s the problem with your requirements: DevOps is likely to be the dream for large corporations like mine, but no large corporation has allowed people to follow career tracks that combine the above skill sets.
Career path siloization (you are ops or you are dev but not both) became totally institutionalized in the early 2000’s due to Sarbanes-Oxley and other regulatory frameworks where “separation of duties” was a central concept. The person who does it all was regarded as having too much power, too much potential to cause trouble undetected by others.
At the same time CMMI expectations tended to create narrow processes doable by people with specific skills. Finally, people with only a few skills were cheaper.
So where do we find people with the necessary skills? In my case I had been a technical DBA and logical/physical database designer, then a data warehouse architect, then a project manager for data warehousing and business intelligence/analytics, then a digital marketing applications project manager/business systems analyst. That’s actually a very good background for DevOps, because the DBA roots gave me some server/operational chops and we also needed scripting skills (going back to Unix shells, for example) and modern digital systems kept me up to date with the latest paradigms.
Joe Sanchez says
Hi Mary,
Thanks for sharing your thoughts. In my post I am speaking from my own experience(s) dealing with a few large companies I’ve worked with that tried to institute DevOps for their service delivery strategy.
Our challenge was always finding the right set of skills, and since I was managing on the Ops end, we were all more SysAdmin than Dev. What I learned is it really does come down to the specific need for what is going on: systems automation, code release and deployments, building and supporting apps in the cloud, bug fixing, etc.
The one skill we found we could not do without was “good communicator”. The whole concept of DevOps really does hinge on feedback and communication. More importantly, listening.
Per your comments I could see how your broad skill set could also be very important for DevOps. Have you checked out my eBook at: http://www.DevOpsebook.com where I go into all my experiences with more details?
I think if your company wants to invest time and training into your DevOps career it’s well worth the investment.
Thanks,
Joe
Chris H says
Very interesting post. I actually have many of those skills, but they have come at a price.
When I was first starting out in my career, I had the good fortune of working for a smaller company that allowed me to wear many hats. As time went on, I found that there was more to the system as a whole, and dove into development in addition to engineering and security.
Fast forward almost 20 years, and I have bounced around several companies, each with a particular skill or bit of knowledge I was trying to compile for myself to know more about the bigger picture.
I now have skills that allow me to do everything from infrastructure engineering, software development, full stack architecture, etc. The only piece that I am light on is AWS and Puppet and I am currently in the process of learning those on my own time.
I decided early on fresh out of college that I did not want to get “pigeon-holed” into a particular specific area (i.e. networking, or sys admin, or only development) but rather wanted to know about as many different things as I possibly could so that I could understand all the layers involved. There have been many very smart folks I have worked with that are extremely bright in their one area of expertise….however trying to get them outside of that into something else is very difficult because they do not understand how other technologies other than the one they use works. I am not saying anything bad about these folks, just that I saw that early on in my career and made a choice that I did not want to end up in that same boat because I felt there was too much to explore to allow that to happen.
So back to the “price” I mentioned that comes with obtaining these various skills over time. I worked a lot (and I mean a LOT) on my own time at nights and weekends to educate myself in areas that interested me, which in most cases led to subsequent employment where I could solidify those skills I was learning. I also have many employers on my resume, which to some may appear as “Job Hopping”, but to me each was a stepping stone to further my knowledge and understanding of technology, which again, led to subsequent opportunities. The other price to pay, which really should apply to anyone in technology today, is that it is a constant learning process…and by constant I am talking about CONSTANTLY keeping up with the trends in the industry, looking for what skills are hot, or up and coming, and trying to obtain those skills to stay at the top of your game and move forward out of your comfort zone, and is not for the faint of heart!
I also wanted to make a comment about Mary’s post. I also have been in large corporations that were trying to implement “Agile” and “DevOps/CI/CD”. It was very difficult to get past the silos and to find folks within the organization that had a broader set of skills because of the silo structure. The bigger companies I have worked at tend to want DevOps functionality, but are extremely slow (or resistant) to changing the organization as a whole to support that effort and be successful. In my opinion, it would serve large organizations far better that are coming from a silo structure, to have DevOps teams that consist of technologists from the various areas of expertise, and then allow them to cross-train each other over time, hence allowing the sum output of the team be greater than the parts.
Joe Sanchez says
Hi Chris,
I can totally relate with not wanting to get “pigeon-holed”. This is the key – I think – that makes for the diverse skill-set many hiring managers are now looking for. Not that we don’t need the SME but there does come a time, especially with agile and DevOps, when only seeing a problem from one perspective does get in the way of finding the ‘best’ solution.
Excellent feedback, thanks for sharing!
Surabhi Banuru says
Very Good Article!
Verizon is hiring Devops Engineers.
Contact me at [email protected]
ossi soderstrom says
Hi Joe,
I have been working in one of the Storage Vendors for 3 years now and unfortunately they’re not pushing people towards the new market trends such as cloud/big data and related skills needed for them. So as i started reading all kind of blogs about what skills one should learn, i am feeling terrified to be honest.
One needs to learn Linux, puppet, chef, openstack, vmware, networking and scripting to be successful in the new era of cloud. I am wondering how can a person learn all of these technologies, how long would that take in your opinion, and as one needs to learn all of these technologies, can one actually become a master of them or will one just touch base with each of them?
Let me know what you think.
Regards,
Ossi
Joe Sanchez says
Hi Ossi,
Thanks for the great feedback. The fact that you are aware of this means you are at least thinking about it. I mentor system admins all the time on this and my recommendations are always to keep learning, stay engaged and learn to communicate WELL with customers. My suggestion for you is to learn to support web services and APIs. This is where the challenges will be as more businesses try to take their apps to the cloud. As for how long it will take, that depends on where you are starting from. Lynda has a very good online training for web services. I suggest checking out the free 10 training. Here’s a post I wrote on this topic. https://www.devopsebook.com/online-devops-training-for-beginners/ Feel free to stay in touch and let me know how you are doing…
Joe
ossi soderstrom says
Hi Joe,
Thanks for your reply. This is where it gets confusing to me, i am mostly an infrastructure guy helping customers setup their storage and perform for them the luns and replication solutions if needed..etc So for me the next step would be to learn virtualization which i am currently doing by studying VCP. Afterwards i was thinking to head towards either VMware’s Vrealize suite or check out the equivilant in Openstack. I guess all what i talked about so far would be considered part of the cloud’s Iaas?
What about what you’re talking about, the APIs..etc, is that more of coder’s/developers job? What kind of jobs do they have when they learn Cloud API’s..etc? And are those skills for an admin or a developer?
Me myself, i am not a huge fan of coding as i tried java before, however as i know automation is important i was hoping to learn scripting at least.
Hope you can clarify to me.
Thanks!
Ossi
Joe Sanchez says
Ossi,
I think there’s still a few years to go before things really change…and converged infrastructure combines server, networks and storage into a single role (as a norm). This is where VMware and OpenStack are going. I would say, somewhere down the road only being a VMware admin, or network admin, or even a storage admin will not be enough. You’ll need to know all 3 technologies.
The whole concept of DevOps on the other hand is to streamline the ops side and get them more involved with helping get products to the market sooner. I tell admins all the time that companies like Google, Facebook and Amazon are not boasting about best of brand hardware. Moreover they are doing it creatively (with code) on low cost hardware and then pouring the dollars into developing new products.
Find creative ways to add value where you are. Be the one the customer asks for by name. And be ready to support web services and APIs and you will be fine.
Thanks,
Joe
martha says
A 7/10 on this list should be a $110k+ position. I feel that your numbers are low. When you are at the 10+ year experience mark, live in a major US city, and are able to demonstrate both technical and people skills you’re starting to chase a unicorn. While I don’t disagree with your list, I actually think it’s a great list… I just don’t think you’re driving home how insanely difficult it would be to find a person who is a 6/10, 7/10, or higher. And if you did – $110k is a steal. Otherwise you are looking to hire junior 2 employees at $65k which is way more expensive when you consider increased cost of benefits (healthcare, retirement, unemployment, insurance, etc).
Joe Sanchez says
Hi Martha,
Excellent feedback and you are right about how difficult it is to find someone with the right skills for DevOps. And as more Ops go towards DevOps, unicorns are getting extremely rare and costly. You are also right on the money with the range. As for finding juniors, that isn’t easy either which is why more companies are opting to train SA’s which in most cases are not cut out to be coders. This leaves us with more Ops than Dev in many organizations.
Thanks for the comments!
Joe
Darwin Sanoy says
I *LOVE* *Borderline Developer* – you nailed me with that. I don’t code in C#, but put me in PowerShell and I can create structured code, frameworks, global logging, error handling, code modularity, self-documentation, coding style, etc, etc.
I would add one more thing to your list as I don’t actually think it is OK to assume of either an infrastructure person or a developer.
This would be a “Systems” headset. I have loved embracing Agile – but at the same time Agile does not naturally result in sufficient (not head over heals, but sufficient) focus on how a proper architecture can create a lot of efficiencies in a solution.
This need is exacerbated by flexible desired state languages like PowerShell DSC, Chef and Puppet. They are rich – but they can benefit from having a “framework” approach to how configuration entities are represented and dealt with by the system so that they are easier to version, update, promote, replace and reuse.
Joe Sanchez says
Hi Darwin,
Good catch on ‘Systems’ although I find many systems admins (non-developers) have a problem with frameworks and systems. Seems we are always looking for shiny new objects (SNO) and ‘Systems’ lack the glitter that keeps our attention.
That said, ‘Systems and Frameworks’ are exactly what DevOps is about because they create efficiency, reduce friction and increase speed because there is a known or perceived outcome; versus 3 different SAs doing the same task, 3 different ways.
I love your enthusiasm Darwin, thanks for the comment!
Joe
Darwin Sanoy says
TrackBack Link: https://www.linkedin.com/pulse/devops-skillset-borderline-developer-darwin-sanoy
Swapnil Soor says
Hi Joe,
A very nice description of DevOps roles & responsibility, I agree all the hiring managers would love to have all the skills in one person only, still I have some confusion regarding the various roles in the industry should get converted into these new profiles or still they will be required. Along with this new role category employees.i.e. DevOps Engineer.
IT Admin, Build & Release Engineer, We used to have support engineer etc. apart from development all these are also technical roles with necessary skill set.
Does this mean going forward companies will have only DevOps Engineers only and carrying responsibility of all other roles, IT, Systems, Build, Release, & Support or there will be only few person called as DevOps.
Thanks!
Swapnil
Joe says
Hi Swapnil,
Great question.
The world of IT has changed and lean/agile/cloud are ushering in new needs that the old traditional IT role(s) are not able to handle. DevOps is just an adaptation of new tools and methods to meet these new needs.
Here’s some examples of the problem(s) we need to solve:
1. Building environments one task or ticket at a time. This is no longer acceptable! We need automation to roll new environments out, fast.
2. Release processes where someone is manually backing up files across 10 webservers, then doing copy and paste of new code into a folder, and then running beyond compare – only to find the next day that one of the updated servers is causing a problem in the App-pool because it didn’t update correctly.
3. And then there is the classic haggling that goes on between Dev and Ops teams about building VMs, IPs, VIPs, DNS, Database connections, etc.
All these issues and more are going on every day because of silos and a tradition mindset, which BTW in some places will never change even though smaller lean/agile companies are eating their lunch.
Swapnil, to answer your question – No – I don’t see DevOps engineers replacing the traditional roles although I do see the new skills noted above (especially the people skills) becoming requirements when hiring/replacing existing staff.
Here’s what I see happening as more companies embrace DevOps…
Somewhere in-between the extreme and do nothing there is a place not as focused on the DevOps hype where managers and staff are realizing (and talking) about the ‘need’ to pull their Ops and Dev teams together and figure out creative ways to solve problems using tools, systems, and automation.
The companies that figure it out will end up calling it DevOps.
Thanks,
Joe
Sean says
Hi Joe, great post here. Assuming someone followers your 10 Rules, where would you reccommend they post online to find good DevOps Engineers? LinkedIn? StackOverflow? other places?
Best,
Sea
Joe says
Hi Sean,
Excellent question!
I posted my positions on our company website and then linked them to LinkedIn. This way, when applicants click the link at LinkedIn they are brought to my job post. It helps remove the distraction from all the other jobs and banners on LinkedIn.
This formula has worked well to get some good candidates.
Here’s a little more helpful information…
As far as the job title goes, I don’t use ‘DevOps Engineer’ on the job description because most applicants are not familiar with it and many highly qualified candidates will skip over these jobs while skimming job listings.
Instead, I used ‘Advanced System Engineer’ or ‘Automation System Engineer’ because these titles have familiar words and sound more important than ‘Senior System Engineer’. Also, if you are using AWS or Google Cloud, then Cloud Automation Engineer will get more attention.
In the opening line of the job description I note my organization is focused on continuous delivery and DevOps, and the successful candidate is someone who easily adapts to pivots and can change direction as needed.
Then, I write a very clear job description but instead of listing a bunch of skills and requirements, I list what they will be working on.
For example:
The successful candidate will be involved in cool jobs that include: Windows or Linux systems automation, code releases, working across teams to build internal customer relationships, attends morning stand-up meetings, writing bug fixes, writing scripts and cook books for Chef and other DevOps tools.
Then, I ask applicants to submit resumes with skills and experience matching these job duties.
Finally, during the interview I am especially keen while asking questions and listening to the responses for any (and all indicators) that someone can think outside the box ‘and’ can work well with others. Applicants who are technical, creative and can communicate are the keepers!
Good luck!
Joe
Mohsin Khan says
Hi Joe,
My self mohsin khan from india.
Basically I am android developer with experience of 2 yr
and having knowledge of AWS integration, Apache tomcat, SVN Integration and all,
right now I am developer but my inside voice said I can become good devops engineer.
I am here little confuse what to do because i have started my career before 2 yr ago.
please help with this concern.
Is DevOps is next future of IT industry ?
If I get expertise in DevOps Is good fortune for me ?
Please help me.
Waiting for your response.
Thank you.
Joe says
Hi Mohsin,
First off – don’t worry!
Let’s start with your first question:
Is DevOps the future of IT?
Mohsin, I would say DevOps is already happening in many places. Some are making a big deal about it and others are quietly going about introducing it.
If I get expertise in DevOps is it a good fortune for me?
Understanding how to systematically deploy code using automation is definitely a PLUS for you.
Think about it this way…
Anything that improves a service or speed to market of a product, whether it be a Toyota Car or an Android App, is going to be valued. That is why many companies want to use DevOps.
Finally, don’t learn automation because you are afraid of losing your job – do it because you want to add value! This is a mindset change that will help you.
Good Luck
Joe
Mohsin Khan says
Hello joe,
Thanks for your reply,
Its really help me a lot to dive in devops.
I need your help can you please list me out tools for implement devops.
or which tools you are using for implement devops.
your help will be highly appreciated.
Thank you.
Joe says
Hi Mohsin,
We are using Chef, Ansible, Git and Stash but I suggest looking through DevOps job listings and taking notes on what other companies similar to yours are asking for. Focus on what is required.
Here’s a link for you. https://www.devopsebook.com/new-job-opportunities/vmware-engineer-jobs/a/jobs/list/q-devops
Good Luck!
Joe
Shahebaaz Shaikh says
Hi Joe,
Awesome! article, Lots of doubts are clear about DevOps.
Currently i am working as a build and release engineer(18 Months Exp) working on Jenkins, svn, Weblogic Administration, some Linux administration, I am looking forward to get entry into DevOps, so i had questions, It would be very helpful if you could guide me a bit:
– Is learning Linux(by joining Red-hat certification course) necessary to get good hands on Shell/Perl scripting and then going for Chef,Puppet or i can directly jump to SHELL/Perl and Chef,Puppet.
– Can Red hat Linux Certification help me move towards DevOps or can it be useful when using Chef,Puppet for Automation or can it play a major role in DevOps.
You advice will be of great value.
Thank you.
Joe says
Hi Shahebaaz,
Looks like you are already building a list of skills!
As far as your first question, CERTS always look good on resumes but managers want to see or hear proof of experience. What I mean is this. How would you answer a question in an interview that goes:
“Give me an example of a time when you had to work with a Dev team to automate the release of code updates to the sales page?” And “What tools do you use?”
Or
“Tell me about the last time you had to debug code and then write a bug fix?”
Do you see how DevOps is not system admin work?
So to answer your first question, if you can get both the Red Hat CERT and develop good scripting skills do it.
However, if you are already fluent with Linux, then dive into learning scripting. Also, focus on learning the tools that are going to be relevant to the companies where you want to work.
Your second question is pretty much the same thing as the first. Yes, a CERT will look good on a resume but hiring managers want proof of experience.
Chef or Puppet and Ansible are good tools to learn and they all will require scripting. This is a good place to start.
Here’s a tip!
Look through job listings and take notes on what hiring managers are looking for. Don’t waste time or money on training that isn’t relevant.
Here’s a link for you to search DevOps jobs. https://www.devopsebook.com/new-job-opportunities/vmware-engineer-jobs/a/jobs/list/q-devops
Good Luck!
Joe
Cameron Monte says
Hello Joe,
Thank you for sharing your knowledge and thoughts and wisdom with us. Clearly you are very passionate and have a thirst for learning.
I was wondering what are the best types of AWS architect and MS architect courses available in your opinion which provide the best value and relevant certifications.
If anyone has 6/10 or 7/10 skills or higher and you’d like to live and work in Australia, in Melbourne or Syd I know of a few companies that would pay very well (AUS is pretty expensive but also the pay is higher) please feel free to contact me.
Joe, if you could assist with my question or point me in the right direction, it would be appreciate.
Best wishes.
Cameron
Joe says
Hi Cameron,
Excellent question! Although I’m not sure if I have a clear answer. Here’s why…
When you look at all the cloud classes going on they are all about Azure or AWS whistles and bells. But my experience dealing with the IT and Business end of cloud really comes down to understanding where to start.
If the goal to move to the cloud is to save money and the plan is to forklift the existing servers and apps from on-prem to the cloud, then someone has not counted the cost – but that’s another topic!
In the case of IaaS, you just need an Ops person with basic AWS training who can set up a VPN tunnel and spin up VMs or V2V the existing VMs. Most basic AWS cloud training courses cover this.
On the other hand, if you are dealing with PaaS, then it gets a lot more complicated because now you are dealing with web services that are technically not running on VMs and this normally requires a deeper understanding of software define resources. More advance AWS cloud training cover web services.
Then, there is Docker which is another skill set altogether on both the infrastructure and platform levels. Look for AWS training specifically for Docker container.
However, if you’re just talking about building VM instances and access, then the basic AWS training will cover it.
Now let’s go a little deeper…
There are always data and user authentication requirements that take deep levels of AD and LDAP experience.
Then there is security compliance which is always important.
And scalability, which takes a seasoned understanding of capacity management.
Finally, data and bandwidth management – will the data be store in the cloud? If not how big of a pipe do you need?
All of these items tend to get over looked until the project has started.
Cameron, this lays out a standard framework that will hopefully help you decide.
I know Amazon offers their AWS online training at a very reasonable price, and here’s a post I did about training from Lynda which is also a good starting place:
https://www.devopsebook.com/online-devops-training-for-beginners/
Please let me know what you choose?
Thanks,
Joe
Shailender says
Hello Joe,
Its great to know what the industry wants and what is needed from an individual when I read your article and it gives an insight of where we should focus in order to be a successful devops professional.
To give you a brief introduction I have 8 years of industry experience and I have exposure to programming languages like Java,Ruby and Shell.I have experienced the traditional software development approach as well as the new Agile methodology.I have worked in big corporations as well as small companies and I felt that I can feel the difference in the working style
I have very little exposure to the networking concepts and virtualization in my current role and will this effect my transition for the devops role?
Also I would like to know if it is the big corporations or the middle and small companies that are more intersted towards the devops role?
Regards,
Shailender Kumar
Joe says
Hi Shailender,
Your first question is very common coming for the Dev side of things. I wouldn’t worry much about not knowing networking or virtualization if you know how to code and communicate. There’s still a Dev side to DevOps that requires a lot of coding which you seems to have covered.
I’m going to say, “It depends” for your second question. You see, companies, Big and Small, are trying everything to squeeze out more productivity from their resources. DevOps and Agile, right now are the best ways especially if they embrace it and have good leadership that can get the transformation to happen. It’s not an easy transition, especially for older companies that are hung-up on traditions or power struggles.
My suggestion for you is to always be looking for opportunities to be helpful and find ways to make systems or processes run faster using code (automation). And if you get the opportunity to join a DevOps group, keep your mind open because it will not be the status-quo, and you will be expected to act on your own without someone holding your hand.
You might also want to read my new post. I cover briefly about “How to become a DevOps Engineer”.
Good Luck Shailender!
Joe
Srinivas says
Hi Joe,
Thanks for sharing your thoughts on Devops. Your article is really good.
I am srini having 7+ years of Experience in ITO, I have worked on windows,AD,Vmware virtulization and vmware VDI also have a fair knowledge on Storage , Cisco UCSand networking..
1. Now Do I need to learn Linux to learn devops tools( the Traditional windows admin always find difficult to learn Linux?
2. How about scripting language Can I go with Python or power shell, does tools like puppet, chef support these scripting languages .
3. How has Microsoft came up with their answer for devops? I know they have TFS for release management and azure for cloud, Do they have any other tools for devops?
Thanks,
Srini
Joe says
Hi Srini,
Looks like you’re more on the Ops side based on your skills which is good because earlier comments were from guests more on the Dev side – this brings the balance. DevOps is for both Dev and Ops skills.
Now let’s answer your questions…
First off, yes – I would say “learn Linux” because Linux seems to be the natural choice of most new startups and its open source, which makes it attractive to big shops too. Saving money is always on every manager’s mind.
Next, Puppet has its own script language and Chef uses Ruby. But don’t worry because there are 100s of cook books and configs already available and most admins with basic scripting skills can tweak them as needed. Powershell, on the other hand is the definite choice for Windows admins.
Finally, interestingly enough, Azure is now hosting Red Hat, and Red Hat recently acquired Ansible so MS is opening the doors to DevOps though Linux. Also to note, MS is working on ways to allow Docker to run on Windows. So basically Azure will soon be a hybrid of Windows and Linux which for practical purposes is good.
Here’s my recent lesson on DevOps Training Courses that will interest you. Edward, who is a DevOps Engineer, does a very good introduction on DevOps tools used for deployment automation and continuous delivery. The course is perfect for a SysAdmin or Developer just learning about DevOps…
Many thanks for your comment Srini, good luck!
Joe
Srinivas says
Thanks for your reply and suggestions Joe,
Rahul Thacker says
Hi Joe,
This post was highly educating for a student like me, about to set foot in the IT industry! I am genuinely passionate about pursuing a career in DevOps.
I would really appreciate it if you could give me an idea on how to chart my course in order to become a DevOps professional.
Thank you!
Kapil says
Your article is very interesting and clear about the requirement of the devOps engineer. Thanks !
raj says
Hi Joe,
Thanks for your time and swift response
.
I am raj having 6+ years exp in .Net(C#,Asp.net) Developer.my TL assign me DevOps related work.i am new in this process.they do not have any idea and video configuration.we are depend on another team who have all details .but they are not ready to share in immediate.
I would like to know about my future & career in DevOps Developer. should i continue ?i am not sure about this technology and technical issue in future.can i continue in DevOps ?
Wasper says
Very very accurate article on DevOps skill set.
Peter says
Hi Joe,
This article and others on your website are probably some of the best I have found with regards to the DevOps movement, career and skills related to it; and it’s a big plus to include some articles relating to the Microsoft side of it.
My question for you is this. What about companies that do not develop software in-house where all the servers or VMs are static; configured once and the only time when you touch them again is monthly patching or upgrade (i.e. application, OS) that only happens once every few years. There are tons of organizations like this. To me, DevOps seems to be the movement only for companies that develop software or develop them in-house.
Even for big enterprises, where there are always things that can be automated to increase efficiency and reduce human errors, but I can’t imagine bringing the ENTIRE infrastructure under the DevOps methodology as there will always be some and many legacy system that need to be manually configured and plus they are static. For example, let’s say I want to keep MS Exchange server on-prem due to legal requirement. Why the heck would I need to automate deployment, configuration, or implement CD/CI of the Exchange server as I would not be re-deploying them on a frequent basis or any at all.
TL;DR question. Is DevOps practice good only for organizations that develop software? Does it also apply to static core infrastructure that does not need to change frequently?
Joe Sanchez says
Hi Peter,
You make some very good points, especially about static environments that don’t change often. And, for most part, I would agree with you that DevOps isn’t needed everywhere. I also see the value of having stable, predictable, services such as Exchange that don’t need CD/CI. Regular CUs and patches will do, right? I’d also say a lot of the DevOps buzz is fabricated to generate attention because it’s cool to stand in front of a conference full of techs and talk about automation, and it sells books and software.
Over the years I’ve had my ups and downs with DevOps, and the chaos it creates, and the problems it solves – kind-of a love/hate relationship. Which is why I can say, in the end, if all is working and you’re not using DevOps – good for you! But if things are not working and you’re using ITIL or some other form of framework, then DevOps may help. But that is, if DevOps is introduced properly with the right use cases and messages. Otherwise, DevOps will not work any better than what may already be in place.
The real reason why I support DevOps, or web-scale, or hyper converge innovation is because – well – life isn’t static. All around us, things are changing. So whether you work somewhere where they’re using innovation or not, my suggestion is to always be evolving your skills just in case tomorrow your day job is flipped upside down by a buy-out, bankruptcy, or new leadership who likes buzz, and now someone at the top is mandating a culture change that includes, yup, DevOps. If this happens, you will be ready!
Listen, even becoming SysAdmin with great PowerShell skills works to put you in the top 10% of the talent pool…
Peter, I hope this helps you?
Thanks for your comments.
Joe
Peter says
Thank you Joe for the quick reply. It’s very nice when the author does not abandon the discussion.
Anyway, I don’t see many DevOps discussions about whether it applies to core static infrastructure that does not change at all. So, this whole thing kind of not make sense to me. Sure, if you have a web business and are constantly updating your code, than it makes a lot of sense as you need to test it and roll out to live web servers. Or you are a software company that needs to constantly update code, then DevOps sounds great; but otherwise, I don’t see it being useful to many organizations with static operation infrastructure and/or ones that do not develop software. Some aspect of DevOps is very useful and productive (i.e. automation) while other (i.e. CD/CI) does not make sense.
I am a senior Windows / infrastructure system engineer guy who touches all aspect of the infrastructure stack, except for the “Dev” part; and I do find DevOps fascinating (especially “Infrastructure as code”) as evidence in me happening upon your website. In fact, I have decided to take the DevOps road and this website has such great resources.
Since DevOps are mostly focused in the Linux world, I am thinking about transitioning to the Nix world. In your experience, do you think there will be a lot more demand for Nix engineers? I read your other article about the Windows DevOps with PowerShell skills, but from my brief job search in local market, it seems that DevOps are mostly in the Nix camp with skills such as, shell scripting, python, configuration management (i.e. Puppet, Chef, Ansible), and then PowerShell thrown in at the end, in the same job requirement.
I don’t know if skill in the infrastructure stack (compute, network, storage), Windows services, and PowerShell is enough anymore.
On another note, what do you think about Project Management skills in addition to technical skills for infrastructure related career?
Your thoughts would be greatly appreciated.
Joe Sanchez says
Hi Peter, Please see Christopher’s response. We’re on the same page. Also from a Windows perspective, Windows Nano and Docker for Windows are going to be game changers soon. Keep that in mind while you focus on your DevOps skills.
Christopher D Haubner says
Hi Peter,
As a technology professional who has been on both sides of the pond, and has managed ‘static’ type systems that are long running, etc., I can offer this as maybe a reason.
If that system has been so long running, and config changes are made, small tweaks, etc….if those are ‘manual’ changes, what happens when that system goes down and needs to be rebuilt? Without some sort of automation, how would you remember all of the little things that were done over time to that system? You might have a really good, strictly followed, policy of documenting everything, which is a good practice anyways, but where is the backup for that to compare your docs to your end build to make sure they line up? Also, depending on how many of those ‘static’ changes were made, how long will it take to go through said documentation and rebuild that critical server/system compared to an automated process?
I am just trying to play devil’s advocate with your question. Also, I would assume that with a critical server/app you would want to have a backup somewhere correct? Would that not imply that you would need to make those ‘static’ changes in at least 2 spots thus increasing the probability of configuration drift?
So I guess it might not be the automating of the system install and app install (i.e. Exchange in your example), but rather the configuration and customized details that are not part of a monthly patch or base application install….the bits that are tinkered with to correct issues, fix bugs, etc. that all system admins do over time.
Also as I write this response, I think a bit more that the real benefit in those situations would possibly be more configuration management (i.e. Chef, Puppet, etc) and automation maybe more than automating the entire infrastructure. If there is truly nothing more than install os, install exchange, assign ip, etc…then you have a valid point. However that said, I would bet you have some customized config changes that have been made over time that you would prefer to automate than manually have to re-apply them…but I could be wrong 😉
I used to think the same way about software development and frameworks and why I would want to use a framework even for the simplest thing of writing hello world to the screen. I came to realize that it is not necessarily about using a framework, but rather providing a consistency to what I was doing so I could minimize winging it with spaghetti code, and to allow me to build upon it should I need to.
Being in IT, it is always a matter of ‘when’ something will arise (i.e. downtime, issues, failures, etc) not ‘if’, so always good to be prepared and plan ahead.
I love these discussions because often times there is no right or wrong answer, and not to sound like a cliche, but sometimes ‘it depends’ 🙂
Just my 2 cents 😉
Peter says
Hi Christopher,
Thanks for the response.
I know what you mean with regards to configuration drift or changes on even “static” servers and DevOps practice of config code versioning is really great. For the type of traditional or operations-only organizations, it’s a tough sell to migrate IT practice to DevOps. Why do the extra work just to have configurations management/versioning when you hardly touch the servers again at all? On top of that, change of culture requires lots of education and buy-ins, management commitment, etc. tough sell…I am speaking from a generalization perspective. But don’t get me wrong, I am convinced about DevOps and am taking steps to get my feet wet in the Nix / DevOps pool. It doesn’t hurt to know both world. 🙂 Lots of learning for sure.
This is what I think will happen. Organizations that develop software or Linux only shops will surely migrate to DevOps. While the Windows ones which are operations only will just stay put and use a mix of DevOps practice for automation and still refer to manual configuration.
Steve Goldsmith says
I’m thinking of going the DevOps track for my future career because I have most of the skills you mention. I come at it from a developer’s perspective since I have about 30 years doing everything from principal engineer to Sr. systems architect to CTO. Over the past 10+ years or so I’ve been building my own infrastructure (hypervisors, storage, guests, app servers, databases, applications, CI, Zabbix monitoring, etc). The last 5 years I worked for a MSO and we really filled an unofficial role of DevOps since we developed the code, built and managed CI servers, built/tuned the VMs and databases, monitored the systems and handled tier 3/4 application support.
I make good money doing back end Java EE/Spring development and I still enjoy that, but I’ve also found I like IoT development and building IoT devices, smart cameras using Computer Vision/Machine Learning, etc. https://github.com/sgjava/motiondetector If I go into DevOps I will most certainly be doing less development in the traditional sense. What advice would you give to someone that loves development, but likes to have some control over the entire infrastructure?
Joe says
Hi Steve,
Wow, you’ve done it all!
Two things come to mind reading your comment:
#1 Stay away from the run of the mill company that wants to keep doing the same old thing and expects a new result. I see this with Dev teams all the time because of a lack of vision and no strategy from the top-down.
#2 Startup that wants creative people who want to change the world as we know it. IoT is just starting and there’s too much opportunity for smart and creative people to do…
If I had your skills I would be diving head first into virtual reality and A.I.
Steve, did you see these 2 posts, yet?
https://www.devopsebook.com/jobs-in-virtual-reality/
https://www.devopsebook.com/best-jobs-2017/
Looks like you’re already going in this direction so I would find a company where you can do what you love doing already.
Thanks!
Joe
Christopher D Haubner says
Steve,
Sounds like you have a lot of background / experience in many areas and have run the gamut of full-stack all over the place 🙂
I too have done a lot of varied IT related activities as well, many the same as you. I have found that working for small, or even startup companies fills my itch to undertake and drive decisions on the entire stack….and keeps my hands wet in all the areas I love to play in! I too have been involved with IoT and it is an awesome area to be in….so much to learn, and unlimited application of things to do with it…fascinating to me.
I would agree with Joe’s comments on #1 whole-heartedly! You would only get frustrated and end up moving on as your craving to learn and apply new things would be hindered..at least that has been my experience in that area. I worked for a company that wanted DevOps….but the culture was not conducive at all to the implementation of it…so being the flag holder that was trying to implement DevOps practices and workflows, I was constantly met with a brick wall of “No, not going to do that, we have always done it this way and no need to change”….which is equivalent to nails on a chalkboard to me…
As for A.I. and Virtual Reality, those are areas I myself would like to delve into over the next couple years…so much potential!
In any event, it sounds like you are a life long learner, and love technology in general, and have a passion for it. I would say try to work with small/start up companies, or if you have the urge, start a consulting gig and freelance to do what you want 🙂
Keep on keeping on!
Joe says
Times are changing and we need to keep up! I am looking forward to where VR and A.I. will take us and I don’t plan to just be along for the ride.
Steve Goldsmith says
Thanks for you and Joe’s input. I’m only apprehensive about smaller operations because I had a bad experience with a neurotic CEO that wanted to put a camera on me and have me use one of those realtime time trackers as a CTO. That lasted about one week after he told me this and the funny thing was he never came into the office before 12 PM and had no reason to micromanage me after a 2 year track record of positive reviews and performance raises. I did like the fact that I ran the VM infrastructure, did R&D, coding, set best practices, helped bring clients on board, etc.
My personal experience with larger companies is separation of concerns, frameworks (COSO, PCI, etc.), configuration/release management, etc. is paramount. I’m OK with that if it makes sense and you are not a slave to the process because I’d rather be coding or learning something new than filling out approval forms. Also, I faced the same thing with best practices with developers. It’s hard to get a set of rules for static code analysis or code coverage when maybe they never existed before and are not understood or appreciated. You end up spending a lot of time to improve quality just to have the developer @Ignore all the rules.
I’m finishing up my current job next week and taking off a couple months to retool, so that will give me some time to ponder what’s next. I’m already adding tiny OLED displays to SBCs like the $9 CHIP that can be used for realtime feedback in my Computer Vision projects. I’ve been getting pretty good at Python (not at the same level as 20 years of Java), so I may be able to leverage that at a future job.
Joe says
Steve, I checked out your link and you are doing some cool stuff.
On a related topic, I spoke with someone this week who attended Dockercon and he was explaining to me how one of the presentations he watched was about a software engineer who was using a raspberry pi cluster running Docker containers to demonstrate how Docker scales. The demo would light up LEDs as the commands were entered to add and remove containers. Doing something like this would definitely shock them in a job interview for DevOps.
Good Luck!
Steve Goldsmith says
I’ve worked with a lot of different SBCs one of them is the Pine64. I’m running some ODROID XU4s bare metal to handle Zabbix and my security systems, but I have room in my home rack https://plus.google.com/111947832302572567526/posts/gnUFQ8xxM4Y I may consider a docker cluster, but as with most SBCs memory is limited. I used Zabbix at home to monitor my deep freeze and beer fridge in the garage. It will text my wife and I if the power goes out 🙂 I also monitor all my smart cameras and VMs. Thanks again for the words of encouragement.
Michael Gorman says
Salary stuff is way off for California (Los Angeles), and astronomically off for Silicon Valley(Its about double). Otherwise actually a great piece that I find to be very accurate.
Joe says
Hi Michael,
Thank you for the excellent feedback.
I’m glad to see that DevOps job opportunities and pay have grown since I wrote this post years ago.
I would expect Los Angeles and Silicon Valley to have the most use cases for the role. But I think nowadays with all the VCs and startup incubators across the country, the demand is spreading. In Phoenix, I see DevOps job posting all the time.
Good to know these skills are still on track!
Thanks again!
JS
pooja tawade says
Hello Joe,
I am Pooja from India, working as a system admin from last 1 year.
I have basic knowledge of Linux, AWS.
I want to become DevOps engineer.
for that, from where I should start?
will I be capable of learning devops tools with such small experience?
please guide me.
Thanks.
Pooja
Joe says
Hi Pooja,
Thanks for the comment. I’d start by focusing on what is needed by the company or team you are currently working with because there are always opportunities to help automate and improve where you are. Also, learning AWS and Azure are good skills but they need to be applied to real needs and requirements. If you’re looking for quick options for training, this post is helpful and focuses on 3 technologies that are widely used in DevOps https://www.devopsebook.com/devops-toolchain/. Also Docker is another technology to learn. https://www.devopsebook.com/devops-toolchain/. The good thing, nowadays you can get very good training on Youtube for free and on Udemy for very low rates.
Pooja, hopefully this helps you.
Thanks,
Joe
jimmy says
Hello JOE,
I also want to become DevOps engineer. I am currently working with small company as computer network engineer at California. My skills set include following.
Computer Network
Desktop support
Server installations and configurations(DNS, DHCP, Active Directory, Exchange)
Java and VB.NET (Can develop small application in vb.net)
SQL server and Ms Access
InDesign and Photoshop for graphics
Virtualization (Oracle and VMWare Esxi)
I am wondering how advance these skills needed to become DevOps Engineer? I have learned 60% of skills on my own and did not use on my job.
I want to learn AWS and LINUX, I am wondering where should I start? which services first?
Joe says
Hi Jimmy
Thanks for your question. You have a pretty good skill set going on! Learning AWS and Linux are a good start but I would also throw in Docker. I think containers will someday replace the need for VMs – not that people will stop using virtualization. But that more containers will be used moving forward than VMs.
There is a good training course by Sai in this training guide that covers The Complete DevOps Engineer and it has step by step video that goes end to end what you should consider learning. Please check it out. https://www.devopsebook.com/online-devops-training-for-beginners/
Jimmy, please let me know how it goes?
Thanks,
Joe
savanrajput says
Hey , thank you for sharing this useful content , highly appreciate.