I'm glad you asked because it's a subtle thing, and may be related to me personally. But I would venture I'm not the only engineer like this.

For me, I spent my whole career bouncing against the walls constraining of what an engineer role was supposed to be. I'd push back against requirements from Product Managers and be told I'm ruffling feathers. (Not directly, but indirectly). I'd see QA or Documentation struggling, and I'd jump in to help, and be told later that my contributions there are not appreciated.

I'd see another part of the company do something wrong, bring it up, and be told there's nothing I can do.

I'd have a great idea and be told "that makes sense, but we can't do it for <unsatisfying reasons>"

Amazon, on the other hand, always nurtured this within me. Good ideas reign supreme. Most people I work with have very little ego - they just want to do the Right Thing for customers, and ship great solutions that solve real problems. NOTE: I'm not claiming this is universal. There are plenty of egomaniacal assholes that ruin whole teams. Those horror stories are out there too. But in my experience, working on 4 different teams, in 3 different geographies, they are by far the exception.

My last 3 years in my career before Amazon, I was the tech lead for 3 different year-long projects in 2 different companies. Each we built exactly what we set out to do. Each went into production. Each was a collossal failure. Why? Customers didn't want it. We didn't solve the right problem.

This has NEVER happened to me in a decade at Amazon. The "Working backwards" process is LEGIT. There are notable exceptions (Firephone!), but every single project I've personally worked on has been a monumental success. That's super important to me. I want my work to have meaning. I don't want to write code, exchange it for cash, and move on to the next thing. I want the things I build (mostly AWS services) to be useful to someone.

So, this is what fulfillment means to me:

* I can define my own job description via a lot of Ownership, and work on big problems within my job role (SDE), and outside of it. Despite Amazon's huge size, I never feel like a cog in a machine. I have a lot of power to fix problems I see in my team, org, and in the rest of the company.

* Everything I've built I know has made an impact on people's lives (Developers, and their productivity) and that impact only grows. It feels really good knowing hundreds of thousands of developers are each a little (or a lot) more efficient and can spend more time on interesting problems rather than boring cruft, by using stuff I built.

The "learning and improving" part is interesting. I would unequivocally say yes, and was a huge part of what I loved about the company a decade ago when I first joined. But that part is also as much a curse as is a blessing. Sometimes I actually wish I could just pause and keep doing what I'm doing and be GOOD at it without tackling the next tier of challenges. But it seems that as soon as I get good at anything, I find myself seeking the next level of complexity, and the company is equally happy to throw me into an even deeper part of the pool. So to some degree I always feel like I'm on the edge - always not sure if the problem I'm working on is solvable. At this point I just know that I'll get through it and figure it out in time. And if I don't, I'll learn a lot about why it doesn't work. So maybe I just take this for granted now. It doesn't spark joy day to day, unlike the other 2 bullet points.