| ▲ | tmpz22 an hour ago | ||||||||||||||||
Instead we're... listen to this... we're going to take a software developer right. Just a normal developer right. We're going to make them be the database expert right. And the cloud expert. And we're going to put them on call. We're going to have them debug linux logs, and optimize our AWS costs. They'll be there for client escalation work. And big sales calls. From time to time we'll even have them do front end work. And get this. We pay them the exact same. | |||||||||||||||||
| ▲ | zbentley an hour ago | parent | next [-] | ||||||||||||||||
I think a DBA/ops/infrastructure person as an imposed bottleneck is a useful capability in some environments. But I won't follow you as far as "expecting developers to have expertise in how and where their software runs is unreasonable". Like, yeah, it sucks that added DevOps responsibilities etc. don't come with adjusted compensation/time allocation expectations. I'm with you there. But it's simultaneously true that a ton of "just regular developer" people are significant liabilities because they don't understand anything about the environment where their software runs. That liability manifests operationally (if someone's just running integration tests on Windows for their Java business logic changes and don't have any familiarity with e.g. the Linux, container, or cloud environments where their code runs, they're going to be useless when their code breaks in production and operations staff needs context), and it also makes them less effective when writing code--this culture of "developers should just live in business logic and not have to context-switch or fill their brains with other levels of the stack" is what leads to full table scans, lack of awareness of memory use, N+1 query hell, looping microservice dependencies, misunderstanding of what HTTP fields are set on requests that are mutated by load balancers, mistaken assumptions about how many instances of code can run and what concurrency/thread/coroutine behaviors are present, and so on. Those are very common problems, and it's incumbent on developers in every specialty to gain familiarity with how and where their code runs in order to write and maintain that code effectively. If your code runs on Linux in Kubernetes, all of your developers should know how to read Linux system logs, check database sessions/queries issued by parts of the application, ls/grep/cat/strace/ps their way around, interpret k8s/application dashboards, check application logs both in log storage and as they're emitted from a process, exec into a container, restart pods, check deployment liveness, etc. Even if they don't have permission to do those things in production. That was true in 2005 when they deployed their code to IIS on Windows Server/MSSQL, too--just with different operational specifics. That's a low bar that's often unmet, and all sorts of teams suffer from that failure. Those skills can be trained, kept up to date, and hired for; I don't think there's a great excuse for not expecting them. | |||||||||||||||||
| |||||||||||||||||
| ▲ | throwaway894345 an hour ago | parent | prev | next [-] | ||||||||||||||||
A decade ago we would hire them fresh from some Ruby on Rails bootcamp so we could pay them less :shrug: | |||||||||||||||||
| ▲ | WarcrimeActual 38 minutes ago | parent | prev | next [-] | ||||||||||||||||
>Instead we're... listen to this... we're going to take a software developer right. Just a normal developer right. Maybe I'm old, and I am, but I just can't get past this point with such annoying writing. Like if you actually spoke like this people would hate you. | |||||||||||||||||
| |||||||||||||||||
| ▲ | chasd00 an hour ago | parent | prev [-] | ||||||||||||||||
yes, that was the cloud and "devops" promise. ..or what it just another sham? | |||||||||||||||||