Having been involved in hiring at multiple points in my career, I get the opportunity to review quite a few developer resumes. One thing I've noticed as a perennial issue is that developers tend to view their titles as a static, or at least something that only goes up and not down.
In software development, things change at a sometimes break-neck pace, frameworks come in and out of popularity, we get new and different tools and processes, etc. As a result, developers are having to pick up new skills all the time, and sometimes this results in a shift in their focus. Where once they were a desktop developer, now they build web apps. Where once they built web apps, now they build mobile apps. That's great. Change is something to be embraced, and switching development areas can actually spur creativity and job satisfaction.
There's just one problem: your title needs to change accordingly. If you've spent the last 20 years building desktop applications, you might have amassed a glorious title like Lead Senior Software Development Engineer Supreme with Cheese. That's great. You worked hard for that. But, if you've now switched to web development, you're a Junior Developer. Ouch. Really? Yes, really. Some of that previous experience may be applicable, so maybe you're not starting off at zero. There's just some career shifts that are too drastic to say that you still have 20+ years of experience. Some of those shifts would be:
- Desktop to Mobile
- Desktop to Web
- Web to Mobile
- Mobile to Web
Those are all pretty obviously dramatic shifts, but here's a few you might not think about:
- Web Forms to MVC/Core
- WinForms to UWP
- Cordova to Xamarin
While we're talking here about things that seem pretty similar (It's all web, or it's all desktop, right?) the fundamental differences between the approaches are just too large to still consider yourself a "Senior" anything after the switch. Maybe you don't fall all the way to "Junior", but you're definitely not in expert territory any more.
My organization was actually bit in this way before. We brought in a guy who had 15 years of web development experience - with Web Forms. His resume was impressive and from all outward appearances he looked like he could really bring some value to our current project - in MVC. Guess what? That didn't happen. As the most senior MVC developer at the time, I had to spend a large portion of my time training this developer and even more time reviewing his code. The project he was responsible for suffered so much from his newness to MVC that it was eventually scrapped. Now, the problem here isn't the developer. Don't get me wrong. The problem is that we needed a Senior MVC Developer. We instead got a Senior Web Forms Developer, who turned out to be a Junior MVC Developer. Because of the experience deficit, the workload requirement was far too heavy, and he was basically destined to fail. It was our fault for hiring him, but, and this is important, he had fault in not realizing that his title had changed. He should not have claimed he could handle the role of a Senior Developer, because given his specific experience at the time, he could not.
Consider this a cautionary tale. As an organization, be wary of the "Senior" Developer. Make sure that their experience lies in what your product actually needs, not just that they have some generic impressive amount of experience. As a developer, be wary of the title-bump trap. Your experience is important, but realize that experience is relative to particular areas of skill. You've been a developer for 20 years, but you've been working with MVC for 1 year. If you apply for a job that requires MVC you have 1 year of experience - not 20. Realizing this will save you as much pain as it will the organization hiring you.