Interesting question, as I just handed in my two weeks notice for my day job of nearly 20 years (so I guess I'm a senior engineer, but I suffer from imposter syndrome and think I still don't know what I'm doing after all this time).<p>I'll second the interesting work and keeping people busy, as the job was boring me to tears. Part of it is on me, as I was having problems giving 100%, and that's unacceptable to me as a professional. But if I was being tasked, I don't think it would be as much of an issue.<p>I'll also second bare minimum raises. It's not about the money, but rather that the Trinity study found that inflation averaged 3% YoY. If salary isn't going up by at least that much, you're cutting my pay every year.<p>While I can sling bits in just about anything and have system administrator experience to boot (running my personal domains and mail servers on the open Internet for decades), I have to insist that my personal development seat is Emacs running in Linux. Apart from the fact of it sucking less, I'm so experienced with them both, it's a waste of my time to force me to use other tooling. I can (and have) cross-developed software for Windows, OSX and vxWorks (and soon to pickup Android and maybe iOS), but I've done it all from Emacs under Linux with no issues. I have no issues learning new SDKs, toolkits, frameworks, languages, etc, I just have 20+ years of Linux and Emacs experience under my belt, it's one of my skillsets that is a feature.<p>And last, I'm never going to work in an office again if I can manage it. No, I don't care how awesome your team or office is, I'm happier, healthier and more productive at home. Other tech firms have realized this[0], figure it out or I don't want to work for you.<p>ETA: Ooh, another big factor is leave. I don't need money, in fact I'm probably a bargain, but I want to work less hours, not more, and in my free time I rescue people off mountains. But this requires I be in a state of semi-on call, able to drop things at a moments notice to go rescue people. I always make up the time later (or take annual leave), but part of what I like about software development is the "episodic" nature, where I can cut to something else for a day or two, then come back to the project fresh.<p>[0] - <a href="https://stackoverflow.blog/2013/02/01/why-we-still-believe-in-working-remotely/" rel="nofollow">https://stackoverflow.blog/2013/02/01/why-we-still-believe-i...</a>