Ah, no, I don't really want to discuss philosophy in earnest. Many people I consider friends are struggling to find a place in the world where they're valued in a way that makes them a living, and I don't think this conversation will help them. Good day.
I have a few scattered thoughts about this, and I'm not sure I have a single thesis in this post, but I'll type up some of my experiences and hopefully it'll be helpful in some way. I have also been doing DevOps for 10-100 person engineering orgs for around 5 years, and I have also felt stagnant, interrupt-driven, and generally frustrated by perfectly capable engineers waiting on me to make them a database while I'm busy trying to keep their applications executing on computers.
I'll apologize in advance for talking about myself a lot in this post, I'm not sure exactly where you're at career-wise, and I don't like to be prescriptive about generalities, but hopefully something about my own experience can be helpful to you or someone else.
Thought 1: Norms become exponentially harder to change the longer they exist.
I did a poor job of setting the right norms when I started my previous job, and it resulted in a completely unsustainable environment where engineering was 100% focused on development goals, and I was responsible for keeping the product afloat. I consider this my mistake, because I was the one explicitly hired to handle that problem, and the way I handled it was by creating a single point of failure - me.
I don't consider that job a complete failure, I delivered on the things I was hired to build. But by the time I realized my mistake, it was already The Way Things Are Done. I didn't have the skills to change it, or even the words to explain it yet.
These days I generally try not to ops anything I didn't dev, and I expect the same from my colleagues from day 1. When someone asks me for a database, I say "Sure, let me come sit with you and we can walk through creating one." Which leads me to thought 2:
Thought 2: It's harder to teach someone to fish than it is to give them a fish.
But the corollary about eating for a lifetime is still true. It's usually faster for me to spin up a new database, but if I do it, I'm robbing the team of a chance to learn how their new database works. I am neglecting my responsibilities as a senior engineer when I don't take the time to teach.
I've been at my current employer for about a year and a half, and it's paid off - engineers routinely write infrastructure code, build their own containers and CD pipelines, and deploy new services to production. They use some of my tools to do it, and I make sure to take the time to help them be successful with them, but I make sure that they're the ones pushing the buttons. The payoff is in quotes like this, which one of my colleagues shared in our engineering channel today (paraphrased):
> This is long overdue but I wanted to give a shout out to @edwards for the ops tooling!!! I was able to deploy a new API (staging AND production) in minutes which, if I did manually, would have taken days. Thanks for iterating and giving us the tools to build things that Just Work. I have easily spent days on this in the past, especially things like connecting load balancers to services. And, with Cloudformation, we know we can easily recreate environments in case something goes wrong. Amazing stuff!!
Thought 3: Soft skills are harder than hard skills
No part of a computer is magic, and at some point you just sorta figure out how they work, and the mystery and awe of it fades out completely, and the job you're left with is giving rote instructions to an army of perfectly obedient, _ruthlessly_ pedantic children. They understand nothing and they don't sleep.
The difference between a junior engineer and a mid-level engineer is the breadth and/or depth of their technical knowledge, but the difference between mid-level and senior is how well they communicate that technical knowledge, and how they collaborate with others. This doesn't necessarily mean management, but it does mean a big adjustment in the coding/collaboration ratio. (These days I probably delete as much code as I write...)
One of the biggest changes I've made over the past year or two is in how I view my own responsibilities. I am not responsible for production, that isn't sustainable, and it doesn't scale. I am responsible for making sure _the entire engineering team_ is empowered to handle production. I made that decision when I started my current job and it's paid off tremendously.
Said friend checking in here. Spend some time watching "how to be a youtuber" youtube and it'll make the role of AI and ML much more obvious in the content you consume. Content creators have to appeal to an algorithmic curator in order to be placed in front of an audience. And that algorithm is constantly trying out new genres and creators on its audience. This technology is VERY good at showing you the things you want to see. [1]
"Like and subscribe" isn't a meme, they're positive signals to an AI curator.
Boundless isn't developing new technology, it's applying this same attention harvesting technology outside the content industry. I have no doubt that Boundless will have great success, because the demand side of the attention market is very strong.
[1] This is how I ended up in "how to be a youtuber" youtube in the first place, for the record.
For sure. If I'm dealing with a junior engineer, I take a much more hands-off approach. It ends up taking longer, but that's ok, because usually, the net long-term benefit of that engineer getting practice at self-directed research is much higher than the output of the task itself.
On the other hand, if I'm dealing with a "senior" engineer who's doing that, I'm actually less worried about whether there's been sincere effort. It's just the other side of the same coin: They've offered their learning opportunity to me, and I'm happy to take advantage of it.
In addition to that, I like to try to answer every question I can at work, even if I have to just go Google it myself. Telling someone you don't know and they should just Google it is robbing yourself of an opportunity to 1) learn it yourself, and 2) explain it to someone else (which is a GREAT way of making sure you really understand it).
Plus, people seem to like it when they ask something, and you help research through it with them. They come back to you again, which gives you another free opportunity to share someone else's learning, and you quickly turn into that person who either knows everything, or knows where to find out.