Are you glue? Do you keep taking responsibilities beyond the calling of your job where you're sure you deliver value, people appreciate you, even start asking your opinion... and yet for some reason still hovering at some unspoken junior level, job after job?
"You must be doing something wrong," they said.
"You need to get better at CS fundamentals"
"There's a difference between someone who spent 10 years doing different jobs and 10 years doing the same job."
"Maybe you're hoping to advance too fast."
"I don't have a CS degree."
"You've only been working for X years."
"That wasn't a real dev job".
I recently had a mind shift around this dilemma of not knowing how or where to evaluate my skillset, compensation and title. Those of you who know someone who can design AND develop can be thought of like a unicorn. But sometimes they're also told the skillset doesn't rival those of a full stack or backend developer, like you're only half a dev.
If you're like me: You're not not good enough. The responsibilities and specialization are simply not the same.
Want "pixel perfect" design implementations? Performant and robust interfaces? Logs to catch where users get stuck before customers complain? Better outcomes through user testing, feature triage and consistent experience across devices? Front end logging? Want framework-agnostic unit tests? A conveniently deployed single page app? See a solution architect make a questionable architectural decision, have a gnawing feeling it's not right, but you must have just missed something because you have decades less in XP?
These could be considered within the realm of "front end" or UX engineering but probably not something a full stack dev would focus on.
It's taken me a long time to realize these companies may be confused, or they don't value such a specialization. It's not possible to find a one-size-fits-all developer...and for years I thought that a full-stack, polyglot dev was the pinnacle of achievement and rigour. Then I met more devs and they all had different personal roadmaps, some went into devops and others just wanted to round out their weaker skills, some continued specializing just in front end. Some moved into management and bounced back into technical roles.
It also depends how a company is structured and whether they have engineering tiers. Early stage companies want to get the most bang for their buck, so they want a T-shaped generalist who can do some of everything. Larger companies have more room for specialization and refinement.
After talking a ton with recruiters and peers:
Instead of waiting to be told how senior I am and worrying I'm overvaluing myself, I've come to understand that my skills and specialization are valuable in their own right; there are actual job descriptions with them as roles where I wasn't looking besides "front end developer":
Prepend any of these with intermediate or senior and that is my role. 👏🏼👏🏼👏🏼
In previous jobs, I've been acting as that bridge between design and development by naturally gravitating to UX and UI implementation. I find fill gaps between design, dev, business expectations and provide alignment on the product goals.
There is simply no point in applying for full stack roles in attempt to find validation for such work. Time to bark up a different tree 😽
Edit: I have 4 years under my belt in the tech space and worked in roles from dev, design and support and back to dev. I'm going on my 5th year.