I'm an intermediate dev, masters degree, 9 years experience, non-FAANG, higher cost of living area (not SV, NYC or NVA), and work with obscure tech and proprietary tools.
You might suck, but it seems more likely that you're getting ripped off by an employer who hopes you don't know what your skills are worth.
Are you on LinkedIn? Do you ever speak with recruiters about other opportunities? That's a great way to get a feel for the 'market rate' for your skillset in your area. When's the last time you changed jobs?
Yeah, this is my situation. I am AWS certified and started working on a team that uses it, sort of. So maybe I can transition off of there in a year or two because the subject matter sucks.
Programming is programming no matter the language, don't let anyone tell you otherwise. They are all just tools. If you have a masters degree you should be able to pick up anything proficiently in a matter of a few months, just grok the existing codebase as much as you can.
The programming part is easy to pick up. The tools and ops parts are more difficult, mostly because there are so many. And we are a 'microservices' shop (read distributed monolith). I don't get to read/work a single system or language. One sprint/day I might be in ECS Java, the next might be Python Lambda, then no code stuff like Splunk and Tableau. There are a bunch of minor and bureaucratic tasks too.
The real problem is I deal with this sort of stuff. I started doing analysis about modifying a system to provide a new field to another system for the purpose of reporting. After spending a day looking at it, they pulled the story because they didn't actually need that field. And this isn't a one time thing - pulling back work. Then they give me BS stuff. They wanted me to increase the code coverage on an app that we were going to transfer to another team. The target percentage - 100%. It was already at 97% line 98% branch. Why am I wasting my time on this miserable task?
Dude run from your current employer. I actually transitioned into software dev after working as a Mech Eng after 2 years and I started at $120k. With you experience I feel like you could do way better.
So while some employers require X years of (specific tech), many, MANY don't. They expect X years of development. Broadly. Can program and are AWS certified? Start looking. And if there's nothing in your area, look remote. You can hit that salary and solid benefits (no pension) in most metro areas (I hit it with 5 years dev experience, and only a bachelor's, back in 2015 in Atlanta, for a non-tech company).
You are almost assuredly more desirable in this market than you think. Consider making finding a new job your new hobby.
Glassdoor's market rate/comp tool says I'm actually making market rate for the area. One major downside to switching is that it involves more time to come up to speed, like putting in extra hours. I can't really commit to that because I have to watch my kid as soon as i log off of work (after 8 hours).
Glassdoor's tool is not very useful I've found. It only even somewhat works for salary, since it doesn't require bonus or equity incentives (which is sufficient in some markets, not others), leading to deflation of total comp. It also doesn't track things like overall years of experience, or how long a person has been in a position. All of those matter, as internal raises have tended not to match the market's increase; the lower end of the market is filled with people who have been in their position a long time, the upper end of the market is people who have job hopped recently, style of thing.
The past couple of jobs I've had I came in at the upper end of Glassdoor's reported salary, for the specific company even, even when I had relatively few years in the role, and without negotiation on my part. And Glassdoor didn't at all represent bonus and equity properly. Levels.fyi did a much better job of it (but has fewer data points for non-tech companies).
I have never worked extra hours to come up to speed (and in general haven't put in extra hours, though I've sometimes had to work weird schedules due to working with people across timezones), and have pretty consistently been a high performer.
I'd still recommend just doing some searching. Worst case, you validate that your current comp is the best you can get. Mediocre case, you find you could get paid better, but not doing anything you feel comfortable taking. Best case, you find something that is interesting and exciting and will pay you better.
"I have never worked extra hours to come up to speed (and in general haven't put in extra hours"
What kind of job do you have? I thought extra hours were normal in tech?
I have looked around. This area (Philly region) seems to be pretty terrible for tech jobs. There are some higher paying ones, but they tend to be niche.
Every place I've worked I've seen the same thing. Work/life balance is stressed as being important, BUT you will totally end up working extra hours if you cave to implicit pressures others set on you (oftentimes the business, product, etc). Someone will try and schedule you for a meeting at 5 PM, or say "we need this by next week", or whatever. And every place, I've said "No". Sometimes it's "I can't make that, I have to be home", sometimes it's "That isn't what we committed to this sprint" or even "That's what we committed but the sprint has been broken because (other thing)". Occasionally it's even been "Hey, we ran into something unexpected; even though we committed to that it isn't going to happen by that date".
On call pages happen; I always take time off the next day. As a manager, I -tell- my team to take time off the next day if they get paged.
Even where I am now, where I will have meetings scheduled at 7 AM, and 6 PM, routinely, I just close my laptop up in the middle of the day. Sometimes I'll even book time pre-emptively just to prevent people from trying to schedule me straight through (and thus leading to a > 8 hour day).
Etc. The perverse thing is that by doing this people actually get a -better- impression of me. There's an element of confidence; couple that with the fact I do deliver, and they don't question it or push back on it. And ultimately even if they wheedle enough I say "okay, fine, yeah, I have to talk to the guys in China; 6 PM meeting it is", I just book time 9-5 for my own stuff, or (when in the office), leave at like 3 so I can get home, unwind a bit, have dinner, and take that call, and still only work 8 hours.
I can't speak to Philly; you might be right. If you're tied to the area, consider remote. If you're not tied to the area, consider looking for things outside of it.
I've found that if I only work 8 hours they will say that I'm not getting things done fast enough. It makes sense if they are comparing you to people who work more. I know one department where the tech leads all work 10 hours consistently.
I was once in a discussion about how to get to a senior dev position (after filling the role of senior dev for a year and tech lead for another year). I was told I had to work an extra hour per day. That's a 13% increase for a 7% raise and a role with higher expectations...
First, a great deal of research shows that working past 8 hours of day for long stretches actually -reduces- overall output compared with working 8. Now, to be fair, the bulk of this research was done on physical labor, not mental, but interestingly, what research -has- been done on mental found the same thing, except the actual hours was more like...6.
Second, you're working at a place that actively -encourages- you to work unpaid overtime. That sees it happening and rather than saying "what can we do to prevent this and not risk burnout" instead says "good. Keep at it". If you're salaried, you're effectively getting paid a lower hourly rate for the work you're doing. So...not to beat this horse again...but...look for another job. It doesn't sound like the pay is great, it doesn't sound like the environment is great. The only thing keeping you there is a belief you can't get anything better; maybe that's true, maybe it isn't, but it certainly will be true if you don't at least look.
Get yourself on Linkedin. Find a tech focused resume writing service to help you with verbiage, both for your LinkedIn profile and your resume. Let recruiters know you're looking on LinkedIn (https://www.linkedin.com/help/linkedin/answer/67405/let-recr...). Start looking for roles in your area, and remote (and in any area you'd be willing to relocate to). That sounds like a better use of an hour a day than giving it, for the same price (free), to your current company, in the hopes of a 7% raise and higher expectations in the future.
Obscure tech and proprietary tools do translate… if you can translate them.
Programming languages are all the same, so learn 3 or 4 new ones and discover that you can probably write in any language for an interview (then do some in relatively unfamiliar languages for kicks and giggles to practice).
Tech is all the same. Take data in, poop data out. That’s the whole job. The formats and protocols change, but once you starting thinking about your stacks as data-in, data-out, they all start looking the same.
Make video games or hardware drivers from scratch, those are the hardest things to make. Video games from complexity overload, and hardware drivers from interface complexity.
I already know Python, Java, Java for Android, Neoxam script, scripts (bash, bat), and Angular to some degree. I've also used JS, AngularJS, C++, C#, powershell, assembly (Intel), and COBOL in the past. So yeah, stuff translates and it isn't that hard to learn a new language (neoxam is probably the hardest since there is limited documentation and examples).
I don't have any interests in games or drivers. Those aren't applicable in my company either. I am currently working on an Angular site. I will host it on S3 with a Lambda and maybe SQS for a marketing email list. This is tech that we use at my job, and many other places.
I really didn't mean for the comment to come across that way. I fully agreed with "it sounds great because it is great". I just wanted to provide another perspective too.
No, I completely get that. I'm just adding some of my background to show my thoughts. I know there are other areas and other people that command higher prices.
Learn the skills for the job you want, claim you do that stuff on your current resume (within reason), and jump ship. Most prospective employers won't push too hard with needing references from your current place of employment. Find your best mate at your last job, edit that portion of your resume, and fill them in on the details.
I've been at the same company for 9 years straight out of college. The company doesn't allow employees to give any references for people who are leaving.
If you're in the US, there is only an -infinitesimal- chance that they'll actually ask for references for a software job.
They'll likely run a background check and make sure your resume isn't obviously lying (they'll confirm start/end dates and title, basically), and make sure you're not a criminal, MAYBE do a credit and/or drug test.
It sucks that I suck. Oh well.