| The biggest issues are always soft stuff. Salary isn't a big deal -- once you have a senior dev salary, a few grand extra doesn't make a difference in lifestyle. A good developer can always leave and go to work for the big guys (Google/Facebook/NetFlix/Amazon). The reason they don't is that it's hard to make an impact at a big company. Company size doesn't matter. Some big companies have small groups that do cutting edge stuff, and some startups are run like big companies and/or have bad managers. People don't leave companies, they leave bad bosses or bad cultures. Company reputation matters when trying to find a place to work. But once you work there, the outside perception doesn't matter as much (because you're working to change it, in theory.) The 'rules' really matter. If a company has a dress code, a punch clock, or requires a specific college degree, they are cargo culting. You can assume that they have no idea how to treat knowledge workers. The best piece of advice I ever got was "don't be the smartest person at your company". If you aren't surrounded by awesome people, then you will be brought down to their average. (See also "the Dead Sea Effect" for IT.) |