
Ask HN: Specializing in DevOps vs. Full Stack Dev - helloworld0088
My current role is &quot;DevOps&#x2F;Platform Engineer&quot;. I write a lot of glue code that hooks different Cloud services together. CI&#x2F;CD, Docker, Config Mgmt, etc. It&#x27;s fun and it pays the bills.
Recently, I&#x27;ve enjoyed learning Ruby on Rails outside of work.<p>I like the fact that everything is contained in a monolithic application VS tiny microservices scattered across different cloud providers. It&#x27;s less mentally taxing I believe.<p>So I&#x27;m curious about salary&#x2F;job growth of DevOps&#x2F;Platform engineers VS Full Stack Web Devs. Does one pay more than the other? Does one have more or less competition?
======
jameshush
There's DevOps Engineers who make more than full stack ones. There's full
stack engineers who make more than DevOps. There's frontend engineers who make
more then DevOps. There's backend engineers who make more than frontend
engineers.

The people who make the most money: 1\. Take the most responsibility. E.g. At
my company there's a lot of "simple" tasks (literally tickets like "change the
font color from one shade of grey to another shade of grey") that are very
high impact because we work in the AdTech space. If the page stops loading for
IE11 we lose thousands of dollars a minute. We're responsible for not only
"simple" style changes but _making sure those simple changes never cause an
outage_. Because of the extra responsibility we have, we're paid above market
rate for seemingly "simple" tasks. Taking more responsibility doesn't
necessarily mean more work hours. But boy does it mean more opportunities to
deliver bad news if something breaks.

2\. Work on tasks that have more financial leverage. Getting great at
operations means you can figure out ways to cut a company's infrastructure
costs by 50% or more in some cases. Getting great at frontend/fullstack means
you can figure out ways to increase conversion rates by 50% or more in some
cases. Both are important. Neither requires you to necessarily learn a cutting
edge technology.

It took me a while to figure this out, I'd jump from one hot framework to the
next. These are what matter the most in my experience.

------
sdwedq
It depends on if you are a builder or a tuner. If you enjoy building stuff
stay away from DevOps. It feels like endless config changes and fine tuning.

If you enjoy tinkering with stuff, DevOps is awesome because there are 1000s
of small settings you can play with.

If you like control, programming is the way to go because you can pretty much
do anything. In DevOps, if developers didn't expose some setting, you are
s.o.l.

~~~
rmdashrfstar
I wouldn’t say DevOps does not include “building stuff”, but you’re building
certain kinds of stuff, like systems to manage CI/CD for projects, deployment
environments, promotion of versions, releases, security scans, collecting KPIs
on CI/CD (which provide management with more accurate visibility onto the
velocity of a project), etc.

Sure, you’re not writing the application, but you’re doing a ton for the work
around it to make sure it runs.

------
aprdm
I actually end up doing a lot of both working in a company with a huge
infrastructure but small number of developers.

I would recommend to start solving some of your own problems in the devops
space with some REST APIs and frontends :), maybe a self service web UI for
developers to create VMs with some of the stack already there and
configurable? (Think Heroku)

I have worked in the past 5 years sometimes as 100% React frontend for a
medium size project, sometimes as 100% backend developer architecturing
effective data structures and data access patterns and sometimes as 100%
devops setting the Ci/Cd/Ansible/Docker workflows... Worth noting that in the
beginning of my career I worked with digital signal processing in FPGAs and
embedded Linux.

I dunno, I feel it is all the same thing. "Specializing" do you mean learning
a particular framework? Frameworks change all the time... otherwise, they all
run in computers with OSes, CPU, Memory, Disk and I/O.

I would recommend learning the underlying technology and then you can quickly
learn anything (literally).

------
tilolebo
What about putting these skills to use for your own benefit?

Asking because I am myself an infrastructure engineer (I don't like the
"DevOps engineer" title) and I am slowly getting tired of being so far away
from "the product".

I have taken a different approach and I'm trying to find and start a
meaningful side project that could generate revenue and could slowly become a
full time job.

I thought first that acquiring fullstack skills and working as such for a
company would give me more joy, but I figured I would probably get also bored
after a while.

------
coconutoctopus
I'm actually a full stack dev with minimal exposure to what you listed above,
ci/cd, docker...I'm also wondering about the opposite. Right now, our small
team doesn't have a devops engineer, so I pretty much have to figure out how
to do some of the devops stuff. It feels way more straightforward and less
stressful than doing full stack work.

~~~
frompdx
> It feels way more straightforward and less stressful than doing full stack
> work.

It is when everything works!

Kidding aside, one thing I like about DevOps work is that it doesn't get the
same kind of scrutiny that other development work involves. Your manager and
product manager can see and interact with a client app, but the infrastructure
component is opaque to them unless they have experience in this area. In my
experience this helps keep the pressure off of you and allows you to work more
autonomously. The downside is that you may not get as much recognition when
brownie points are passed out.

~~~
f00_
worst part is being on-call/responsible any time something goes wrong on prod

~~~
frompdx
True, this can be awful if your org operates globally. This isn't a big deal
in orgs that deal with a single region. However, I will say the worse part is
that when things go wrong, you are first to get a call which can be very
stressful. I still get anxiety when someone uses the :rotating-light: emoji.

------
tonymeng
StackOverflow has some data for this.

TL;DR: DevOps makes a bit more than Full Stack.

DevOps:
[https://stackoverflow.com/jobs/salary/results?l=San+Francisc...](https://stackoverflow.com/jobs/salary/results?l=San+Francisco%2c+CA%2c+United+States&ed=1&ex=1&ff=1&dr%5B0%5D=DevOpsDeveloper&tl%5B0%5D=)

Full Stack:
[https://stackoverflow.com/jobs/salary/results?l=San+Francisc...](https://stackoverflow.com/jobs/salary/results?l=San+Francisco%2c+CA%2c+United+States&ed=1&ex=1&ff=1&dr%5B0%5D=FullStackDeveloper&tl%5B0%5D=)

------
m23khan
first off - you can't and shouldn't equate RoR line of work (monolithic
architecture) as definition for all of full stack dev work out there. More
often than not, full stack dev work encompasses microservices for your backend
and a separate frontend app running their own frameworks (e.g. Javascript +
React for frontend while Python + flask for backend).

What you ought to say probably is that you are enjoying web development but in
a monolithic environment -- nothing wrong with it, I just wanted to clarify
concept in your mind.

Secondly, I too transitioned from being a DevOps engineer for 6 years to
working as a Developer. My take is: Money depends on the job - both can
command more money than the other but I would bet that if you are thinking
about contract work, then DevOps would probably pay you more.

In terms of competition, there is more 'intense' competition for Dev jobs --
at least here in Toronto, Canada. Why? Because as a Developer, you are
expected to know things like data structures, basic algorithms, big frameworks
(spring boot and react are pretty large frameworks in their rights). Then,
there is increasing usage of coding tests before you even land an interview.

You don't do coding tests typically for DevOps jobs and even if there is, it
is not intense -- you don't have to do SQL, you don't have to do OOP, etc.

Also, DevOps tooling are getting so advanced that majority of work is getting
pretty simplified -- your 'tech stack' may only consist of yaml files (albeit
for different tools) along with some python 'glue'/automation code. Heck, even
in depth OS knowledge is not that critical now for majority of DevOps jobs
ever since docker and k8s stole the scene. Finally, even the whole part about
'assisting and building CI/CD pipelines' and 'creating CI/CD relate framework
for Devs in organization' and 'debugging build failures' and 'strategizing Git
structure' is quickly moving towards Developers themselves doing all that so
you are just a fancy tool admin in many cases. This ultimately will cause you
to loose out on many modern proper software development skills and practices.

Up until couple of years ago, knowledge about a major cloud provider (e.g. AWS
or Azure or GCP) and knowledge about usage of the SDK / creating templates
would have been your saving grace and would have made you stand out -- but
now, Devs are doing that more and more and they are more capable of doing so
not because they are necessarily smarter than DevOps folks, but because of
plethora of info available on internet plus such abstracted/simplified
controls available via these Cloud providers in terms of SDKs and highly
usable web consoles.

Finally, one thing that I felt personally regarding the job situation was
that, in every company, the ratio of dedicated DevOps folks to developer would
STRONGLY be in developer's favor. Sure, there is more competition for Dev
roles but there are a whole lot more jobs in the market for Devs as well as
compared to DevOps.

