A senior dev whom I respect for his technical prowess called me this morning. He called to fret over the meagre 12% raise he got, against a junior dev working under him and got 40% raise — his compensation now totaling 85% of the senior dev supervising 10 other junior devs like him.
I didn’t know how to console him. I gave him the best I could — by listening to him for 30 long minutes.
Then I realized it wasn’t the best thing I could do for him.
This morning I came across a news item about Palitana’s Harmonium reeds that Bollywood movie artists unilaterally applauds. Run by mostly uneducated metal and carpentry workers — this Indian town took up manufacturing them to serve British dynasty in 1902.
Their fortunes turned after world war II, when most British colonies boycotted goods manufactured in Germany, harmoniums included. The 114 year old firm that professes in this art is still leading Google search result for phrase “Harmonium reeds” globally. It is supplying worldwide through amazon too.
Key to their success is not automation, but deep understanding of the craft, improved manually over generations.
That, combined with understanding for industry needs.
Today, despite automating most of the manufacturing, Palitana’s reeds are still tuned manually to produce most melodious tunes - a USP that couldn’t be taken away by 3D printers at least until next 50 years.
It’s a lesson — not in improvising one’s craft, but in figuring out what must be optimized, what must be outsourced to machines, and what must be refined through one’s own passions.
Senior Developer is dying (a definite death)
In programming world, too, craft is being lost gradually. A senior developer is losing his / her edge to:
- Online IDEs (JSConsole and its ilk) — super easy to run your code on the fly. Bye bye clutter of buttons and panes that senior dev went through to make it work.
- Open source repos and forums, without relying upon gargantuan API documentation that senior dev went through to put it together
- Training videos, without relying upon archaic publication books that senior devs could only peek into to get the hold of it — at the expense of his family time during weekends.
True, senior devs always create building blocks that can be used and re-used by junior developers. But the balance in rewards highly tilts in favor of the later.
We are already living in the tech world where experience adds value to the product life cycle, but not to the product itself.
An experienced developer will know where to find resources to make it work — but is less likely to go further than that. Not because of lack of passion, but because of lack of reward and motivation. And it is this later truth that is more daunting, because, let me just say it:
To a company, a senior developer is a box that keeps its marbles together.
Technical reasons behind this are:
- Democratization by internet
- Exponential volume realized from modularization — ability of software to be built on top of each other.
Business reasons are more visible to everyone. A startup employer is more likely to hire a junior dev over senior one who will demand 1.5x-2x compensation. A senior dev is justified only over a team of junior devs — that too on a project scope basis, and only with critical mass of the team.
To keep justifying one’s place as a senior dev, one has to
- Keep optimizing processes — batch files to dockerization
- Keep digging up languages that could optimize something that doesn’t necessarily need optimizing
- Keep inventing mundane tasks within existing products that customers don’t always use
- Polishing soft-skills to remain in good books of Who’s who, something that was originally expected of management & sales people
Financial reward of becoming a senior developer in particular technology is highly unpredictable. Stackoverflow developer surveys of 2018 and 2019 revealed stark contrast in highest paid technologies. Surveys notwithstanding, one can always predict which tech to go into, but one can never predict which tech to become senior into. Obsolescence of technology is always looming.
Of course, popular advices says you can keep learning new languages by spending sleepless nights and precious holidays, but that does not make you senior in each of them.
A guy with 2 years experience in Kotlin can outrank your interview chances even if you knew Java for 8 years, and learned Kotlin in 6 months, if HR isn’t smart enough. Even if you get an interview, salary becomes your Achilles heel.
Developer markets like China and India are huge factories of junior developers who are not holding software degrees — a fact lately replicated by other markets through freecodecamp, codeacademy and hackathon cultists.
Final push towards escape velocity:
It is not age-old wisdom. It is rule of the jungle. Markets can be brutal, and you must bow to demand & supply every time it doesn’t suit you.
When you are no longer valued for the character you play, it is time to change the stage to earn more, or set up your own drama.
Today, a non-tech founder can purchase a booking app template and start pitching to investors. Oftentimes, they hound senior developers to sweat out working demo for them while they create glossy presentations.
The two options:
The names they give you range from offshore contract dev to a CTO. The compensation can range from $500 to 5% equity (of $0 revenue). You will sell your expertise, most probably for the best of the 2 options: $500 in hand, rather than 5% of uncertain future. Off course, as CTO you may get your usual salary, but it may be substantially less than your market counterparts because you are a brick in the base that’s supposed to support the building, not a painted wall to attract the premise visitors.
Later on, you will see several sales executives cruising ahead of your compensation + stocks just because they supposedly bring in the customers.
The third alternative:
What you miss out on is the 3rd option that is never presented. Why not join them as competitors rather than collaborators? Technically, you possess an edge that even a Harvard or Wharton executive is eager to suck upon.
What you miss can be summed up here:
- How to perform market surveys
- How to advertise
- How to get investments
Upon hindsight, above is just some bullshit being taught in overrated management schools. The ultimate questions you need to answer is:
- Will they want it
- Can I build it
Being a senior dev, you are more comfortable answering the 2nd question. Answering the first question takes up the real grind that doesn’t necessarily require going to school.
An oversimplified approach is summed up here, but it has been tried by thousands of successful entrepreneurs.
And you don’t need an entrepreneur tag in your linkedIn profile to attempt it, by the way. Simply nurture your creativity while & before you build it. When you get the right mix of passion and competence, you can make it happen.
It requires building it first, trying to sell it to some 10 people, iterating over it to sell it to yet more 10 people, then showing it to:
- People with big pockets i.e. investors, and / or
- People with huge audiences i.e. media.
And since you have 20 already trusting people, it’s not as hard as it seems.
That’s how you, a senior dev sulking for that 12% raise, can get over it, forever.
** UPDATE ***
Being a doomsayer sounds painful (uncool? meh…) to both the doomsayer and the audience. From some readers’ responses about the article being biased, I felt compelled to supplement the forecasts with some data, especially seeing huge viewership it got in one day after publication.
My primary input for the article was some competent software industry colleagues whom I observed progressing through their careers. The input was also myself who has worked with many different shops (which incidentally employ highest number of software devs against core product firms) as employee as well as freelance, and big product companies too.
I am not a guy who relies too much on surveys, but in the absence of stories that can be commonly connected to, observations can be easily perceived as ‘biased’ — and I do observe it here. So here goes something:
- Software has the highest job turnover — reasons being compensation, or unhappiness with management. Not to mention, those career hoppers finally land up into management — ceasing to be a developer forever. End of pride.
- If not hopping jobs, they become remote freelancers. This is not so new fad nowadays, and they are only increasing. Remote freelancers are mostly no one but senior devs moving for good.
- How star developers aren’t that good when their goals do not overlap with that of management — a medium article with 4.2k claps from a Software Development Director.
- Software Engineering is dead-end career, employability decline at the age of 35 — says Bloomberg. Unfortunately the article is paywalled today, but I saw some interesting number talking about going indie on ycombinator forum post about the article.
But again, those are opinions from ivory towers or surveys —and I don’t give a damn. But alas, reddit also concurs — burnout resulting into ageism fulfilling the prophecy of bias against senior devs.
The happier lot is lucky. I was also one of them. That changed. The change was painful, but it taught me many things, including some super-useful technical skills.
Today I don’t feel happy being a doomsayer, but there is nothing to feel sad about it either. Those are market forces, which, in the long run are being driven by technology. It’s just difficult to see it happen.
Unlike Start Debug or Double click action.