A number of years ago, I done a face to face interview with a very senior manager for a mid-level management position. I asked him one of my favourite open questions during that meeting:
“What in your opinion would I be doing right in order to be successful at this role?”.
His response was that he often thinks if the building was on fire, who would be the one or two people he would grab on the way out of the burning building. The implication that in order to be truly successful in his eyes, I needed to join the very short list of indispensable employees.
In reality most organizations are this way, in that they have a very small, private list of indispensable employees. Sadly the implication is that the remainder are dispensable, and therefore can be replaced.
When I look back over my own career, and review the current status of all of the companies I previously worked for, I see that the vast majority are thankfully still in business (the only exception being a tiny start-up that I was one of the last employees of before it folded).
If I was to go further, and actually visit those companies from my past, how many of them would welcome me in for coffee, or even remember who I am? How many of the applications that I worked on are still in production? How many of my previous team mates still remain?
The reality is, my only remaining traces probably amount to a few source control log entries with my name on them, and perhaps the same for a few tickets and wiki entries. Business, like the rest of life, moves on after you leave, and the gap you leave behind will quietly be filled by somebody else. Products will continue to be designed and built, and projects will continue to be delivered.
I only hope any younger engineers reading this will take away that same lesson: you are not indispensable. I do not intend this to be fatalistic, but instead I think it reminds us of how much leverage we have when negotiating with a company, in order to keep your position in perspective and well grounded.