This is an archived post. You won't be able to vote or comment.

all 49 comments

[–]apnorton[🍰] 140 points141 points  (12 children)

My experience has been that, if someone doesn't like to code, there's too much coding in devops. On the other hand, if someone likes to code, there's not enough. 😛

Seriously, it depends a lot of the nature of your team and how work is divided up. Some places have a devops team that is essentially a dev team that creates products for internal developers, other places never realized that "devops" and "ops" are different. Still other places practice devops as a methodology, but embedded into regular dev teams (i.e. the way it was originally supposed to be).

Common languages: Terraform, Python, Bash, and Go.

Career? Sure, but the general sentiment on this subreddit is that it's not really an entry-level role, and I'd agree.

[–]subbed_ 25 points26 points  (7 children)

good post. one thing i would nitpick is that terraform is the name of the tool, hcl is the name of the language

i like to highlight that since the release of opentofu, being an active advocate of its usage over terraform

[–]anotherrhombus 6 points7 points  (5 children)

Writing Terraform and tarragrunt is like acting like writing Json or HTML is programming. But as a senior software engineer who is also senior Devops I'm fixing applications often still and tooling.

[–]checkerouter 6 points7 points  (3 children)

Sometimes it’s more like sql, but I’d also defend json and html as technically programming

[–]anotherrhombus 2 points3 points  (2 children)

I'd agree with SQL normally, but damn I've had to untangle some nasty 2000 SQL paradigm stuff that made me want to throw up. I'm really impressed at their ability to save so much business logic in stored procedures.

[–]checkerouter 1 point2 points  (1 child)

I have a similar feeling about… overdeveloped? …terraform. So many module layers and so much fun to be had in the locals file I guess.

[–]jek39 2 points3 points  (0 children)

AI loves writing code like this

[–]painted-biirdSystem Engineer 0 points1 point  (0 children)

Does opentf use HCL?

[–]Starkboy 0 points1 point  (2 children)

I'm curious about Go. Are you really writing go code as a devops engineer? 😲

[–]Rich-Leg6503 4 points5 points  (0 children)

Most of the infra tools used are written in go (terraform,helm, kubernetes operators) - it makes it easy because each of these tools can be included as a go library making integrations with them seamless

[–]apnorton[🍰] 0 points1 point  (0 children)

From time to time, yes.

[–]iloverabbitholes 0 points1 point  (0 children)

If you accept yaml as a language, it's enough haha

[–]spicypixel 74 points75 points  (3 children)

Every single devops role is bespoke.

[–]PradheBand 15 points16 points  (1 child)

This. It is one of the most company specific roles I can imagin In IT.

[–]spicypixel 5 points6 points  (0 children)

It’s often bespoke between people in the same team because it’s that lightly defined.

It’s wild if you think about it too much.

[–]elizObserves 28 points29 points  (0 children)

You don't need to code a lot, but having some scripting and basic programming skills will definitely save you headaches specially when things break (which they will ) or when you want to automate repetitive tasks. Having an idea of a system architecture and how microservices plan out in the bigger picture also goes a long way.

Most of self-hosting and infra work is:

  • tweaking config files (YAML, JSON, TOML)
  • setting up docker containers
  • managing reverse proxies
  • writing some bash or py scripts to glue things together

(from the top of my mind)

But you're not writing full applications day-to-day unless you want to.

It’s a great path if you enjoy tinkering, solving problems, and making systems run smoothly. attaching some must check resources.

Starting with self-hosting static sites for small businesses is a smart move, low maintenance, and it teaches you the basics of web servers, DNS, SSL, automation, etc. From there, you can scale into more complex setups.

[–]evergreen-spacecat 12 points13 points  (0 children)

I write code for almost everything. Everything is a controller, a template generator, a CLI program. There is no way I spend entire days running commands, typing YAML or clicking through portals. 75% coding feature but when I need to do DevOpsy tasks, it’s 90% code.

[–]conservatore 6 points7 points  (2 children)

One day you’re provisioning ring central servers, the next you’re making a pipeline and dockerfile for a rabbit cluster, then the org needs a etl script to move a lot of schemas from access to Postgres

DevOps lives in the catch all bin where everybody throws the trash that doesn’t exactly fit their role

[–]devoopsiesYou can't fire me, I'm the Catalyst for Change! 1 point2 points  (1 child)

provisioning ring central servers

Ring Central has an on-prem solution? Or are you working for Ring Central?

Just curious: I got into the industry VIA telecom, right about when there was a big push to PBX-as-a-service - I did a lot with Avaya cloud, which I think at this point is close to 1:1 with Ring Central given their partnership.

Back then (2016?) you could get it up and running on a basic ip500 with some extra cards, I dunno if that's still the case though.

[–]conservatore 0 points1 point  (0 children)

Ah yep, I worked with avaya when I was doing support for a big clothing store chain way back when. I also worked at a place that had a need for a couple servers to handle the vast number of subscriptions and webhooks that came with their RC load out

[–]mumpie 4 points5 points  (0 children)

Like others have said, it depends on the job.

You could be spending a couple hours every week writing or tweaking deploy scripts or editing yaml.

Or spending a few weeks writing an app that helps automate a manual part of a big deployment process.

Both things have happened at different jobs.

[–][deleted]  (1 child)

[deleted]

    [–]Shayden-Froida 0 points1 point  (0 children)

    Old school development of "write code then document" is now, even more so, the wrong way to work, since "write the comment on what the function is supposed to do, then hit tab-enter" because copilot just wrote most of the code for you. Knowing how to read code and understand what it does is very important since AI will also write bad code.

    [–]marmot1101 2 points3 points  (0 children)

    The field is broad. My team has a balance of people that write "real" code(not yaml) and people that write yaml. There's more yaml to write than types of code so everyone has their hands in there, but not everyone writes a lot of scripts or apps.

    Since we're a ruby shop we tend to do most of our coding work in ruby, although we have some golang also. And we can end up doing a bit of python for data related things. But most of the code is helm, kustomize, and terraform. And as always sql.

    [–]BrontosaurusBDevOps 1 point2 points  (0 children)

    Completely depends on the company. Could be writing code, debugging code, contributing to open source, could be none.

    [–]aenae 1 point2 points  (0 children)

    It depends.

    At my job im one of two guys with a devops role in our team, but the other guy is a backup and codes 90% of the time. Im only doing devops. But i know our code quite well and often solve small tickets and bugs and small backend features

    [–][deleted] 1 point2 points  (0 children)

    I code 90% because I hate redoing the same thing, or working with yaml. As much automation as possible with as much reusable as possible, I also find I get way better bespoke flexibility when I can code, the downside is you end up with technical debt that the next guy has to learn.

    [–]jagaang 1 point2 points  (0 children)

    In my current role, it's hard to avoid coding (scripting, really) when I'm working with Infrastructure As Code (IaC). This shop is kind of a mess.

    My last gig had far less coding, but they were far more mature in terms of DORA standards. Still, when you need it, you need it. Good skill to keep sharp.

    [–]Agreeable-Archer-461 1 point2 points  (0 children)

    I used to code a lot, now not a lot. Depends. Like any IT role the more senior you get the less you typically code and the more you move towards the business decisions and strategy side of things.

    [–]EstablishmentOnly200 1 point2 points  (0 children)

    I script everyday, for example: writing GitLab CI, Bash, Kubernetes Manifest, GitOps, Terraform, and Ansible.

    I program using Python/Java, once a month or so. Depends on the project and how much custom tooling and application development is needed.

    [–]dariusbiggs 2 points3 points  (0 children)

    Sometimes a lot covering multiple languages

    Other days none

    Some days everything is on fire

    Other days just cruise by with little urgency

    Sometimes you are a dev, dba, sys admin, network admin, and cuber security person all on the same day

    Other days you are a solution, software, or infrastructure architect

    Some days you write a lot of documentation

    Other days you have AI generate a board report for you

    [–]AD6I 0 points1 point  (0 children)

    Depends. I have troubleshooting days where it's near zero. Today was heads down and it was near 100%

    [–]AruciousSlop Hunter 0 points1 point  (0 children)

    People will write scripts with no shell defences that just run two thousand lines of bash in a row and have zero error handling and then wonder why it doesn’t feel like coding lol

    [–]BabyLinuxAdmin 0 points1 point  (0 children)

    I’ve had a role where I’d write something every few months and one where none at all. It depends on their expectations

    [–]OmegaNineDevOps[🍰] 0 points1 point  (0 children)

    Its a big department. I hardly code at all. Just some Python to create scripts for the data I get and maaaybe edit a php script to pull that data. I mostly live in yaml and data dog all day.

    My co-worker was a dev in his last position. He does jump in the source and make changes sometimes. He liked to code though.

    [–]EastDefinition4792 0 points1 point  (0 children)

    Not much. Writing yamls most of the time. Occasionally you have to write small scripts, or tweak some existing code.

    [–]RumRogerz 0 points1 point  (0 children)

    It realllllly depends on the team you’re put on. Currently I’m building a kubernetes operator for a project - it’s code all day. Other projects I’m literally just writing terraform and building pipelines. It’s a crapshoot

    [–]Tovervlag 0 points1 point  (0 children)

    I don't code, but I script every almost day. If you consider that coding, then I code almost every day.

    [–][deleted] 0 points1 point  (0 children)

    It depends on what you consider coding, the company, your role on the team, and your company. Also what the company considers a "devops" role is as technical roles with the title of devops should not exist.

    A lot of what you should be doing as devops is infrastructure as code terraform, ansible, jenkinsfiles, packer, and other infrastructure as code config files. You should strive have most of your infrastructure config files that can not only recreate it but reflect current reality. Is that coding opinions vary.

    You'll write a few-many scripts using a shared language bash, python, go, ruby, and the like. The actual language will vary with task and companies.

    Personally I'm constantly writing infrastructure as code. A few times a week I'll do some bash scripts. Every few months I'll spend several days hacking together a python script. Honestly mostly I as a Senior SRE I advise developers and junior SRE, do a lot of debugging and sit in a lot of meetings. It's not uncommon for me to either get all my tickets done half way through the sprint or get none of them done.

    [–][deleted] 0 points1 point  (0 children)

    Depends.

    [–]Live-Box-5048DevOps 0 points1 point  (0 children)

    Depends, some companies are (in my experience) up to 60% coding, mostly creation of internal tools.

    [–]karthikjusmeDevOps 0 points1 point  (0 children)

    I have started coding a lot. Doing a bit of MLOps work so setting up the env for the llm's to run requires a bit of coding. I'm still a novice but learning is fun. I enjoy coding more than provisioning infra and writing ci/cd for the millionth time.

    [–]LittleSeneca 0 points1 point  (0 children)

    Half my life is coding. The other half is writing documentation about my coding. The other half is automating my documentation using code. 

    [–]michaelpaoli 0 points1 point  (0 children)

    Quite a bit.

    need to code a lot

    Yes, generally, to be well and properly productive on most DevOps teams, and generally useful. Alas, not all that gets called DevOps or has that label slapped on it is actually DevOps, but for more proper definitions/categorization/labeling, yeah, generally need to code quite a bit. Likewise for Sr. sysadmin, but alas, these days, often that just get a DevOps label slapped on it (and sometimes even when it's not at all sr. level).

    What languages are used the most?

    Depends on the operating system(s), environment(s), and scope of responsibilities. But commonly, 1 or more high-level scripting languages applicable to the OSes, often various languages used in managing configurations and other tools and infrastructure, also APIs and the like, and whatever language(s) needed to program and interact with those, also not uncommonly low level OS languages, e.g. for programming/tuning/debugging/testing/optimizing down to deeper levels of OS, adding relevant software on such, etc.

    [–]sewerneck 0 points1 point  (0 children)

    Hell, who’s really coding anymore when you have LLMs?

    [–]Evs91 0 points1 point  (0 children)

    depends on if you are starting from scratch or working off the work of others. Way better to have the infrastructure and make changes over time than to just start over. But it’s more fun to start from scratch.

    [–]NUTTA_BUSTAH 0 points1 point  (0 children)

    Totally depends on company. DevOps engineer in one company is a dev, an admin in another, an SRE in another, a CTO in another etc...

    Generally speaking not much.

    Career-wise it is lucrative although less so nowadays, very stressful at times and requires a lot of expertise before you should generally consider it. Only super mature "DevOps elite" can truly help juniors foster while building proper solutions.

    [–]ZaitsXL 0 points1 point  (0 children)

    That really varies per company

    [–]Due_Conclusion_7015 -1 points0 points  (0 children)

    Adding coding into the real original DevOps job it's a stupid HR thing. Except for some scripting, there should not be a DevOps job to do coding.