|
|
|
|
|
by cesarbs
3963 days ago
|
|
I'm curious about one thing: what exactly was the source of your work-related stress, apart form the on-call pages? This is something people rarely elaborate on and I think is very important to get a good picture of the place. I see two different sources of stress in engineering work: large volume stress and "hostile dev environment" stress (sorry, I wish I could come up with a better term). The first means just that you have a large load of things to do. Personally I am not that much bothered by it if my environment allows me to execute on that volume of tasks. What often has me going into mad rages is the second type of stress: IDE slowness, random unexplicable build crashes, inefficient engineering systems, poorly designed code that makes it really hard to test it quickly. You get the idea. You have a task to get done and you could get it done if it depended on your competence alone, but the development environment is so fucked up that you constantly battle it when trying to make the smallest of changes. That builds up a ridiculous amount of stress because now you feel like you're lagging behind, and it's not because you don't know how to do something, but simply because the very thing that should enable your work prevents you from doing so. What of those kinds of stresses did you have at Amazon? I'm genuinely curious. |
|
Just a couple of examples. There is an immense amount of pressure to perform and deliver results. A lot of the time I don't even know what we are supposed to be delivering but I can tell there's a lot riding on delivering it. I've seen multiple managers demoted to individual contributor roles for, well I'm not sure what for. Presumably not delivering.
As for my own personal experience, there is the expectation that you as a developer will perform the work of several developers. I am expected to keep up with sometimes a thousand email messages a day, many of which require some action on my part, work on JIRA tickets assigned to me, attend meetings, answer questions from coworkers and fix bugs. But that is not nearly enough. One needs to "deliver results". So on top of the full time job described above, it is expected that I will conceive, plan, organize, and implement new features and new projects that deliver value. And I have to organize meetings so everyone knows about the new project and is aware of the value our team is delivering.
And yes, as you described, we also have to deal with figuring out how to get things done in spite of the incompetence of other teams we are working with.