Companies seem to spend countless hours searching the best candidates for various roles, yet in software development many positions are perceived as designated to fill in specific in gaps of a specific project. That means there is no role but there is a job to do in a scope of specific project, or even an iteration. Long term positions in software development are just a thing of a past.
Working in a small team of snipers makes you valuable. In a army of dozens of developers, you're just a headcount. Don't be lured with a job stability or ridicilous perks. After all its unlikely that anyone would care about providing you with a quiet office, comfy keyboard, or even a standing desk. I've been fooled with useless perks or elusive team spirit once or twice. When money comes short, or new investor comes plenty there is no care, there is no stability and there is no job.