DEV Community

Cover image for Notes On The Job Market For Frontend Programmers
Adam Nathaniel Davis
Adam Nathaniel Davis

Posted on • Updated on

Notes On The Job Market For Frontend Programmers

My regular readers (both of them) may remember that, at about this time last year, I was hired at Amazon. But this year, on January 18th, Amazon jettisoned 18,000 people. I was one of them.

Although this was a severe blow to my mental health when it happened, trust me when I say that I'm not upset right now. Not at all. Sh*# happens. But it does mean that I've been wading through the job market now for the last few months. And what I've found has been... interesting. To say the least. The following are some of my observations for the (occasionally surprising) ways in which the job market feels very different than the last time that I was actively looking for a job.


Image description

Disclaimers

Let's get some disclaimers out of the way. First, I'm a very senior dev working out of the US-based job market. I've been doing this for a quarter-century. So I don't claim for a second that these observations will apply to other "levels" of experience, or that they'll apply to other countries.

Second, although I've been actively looking for the last few months, I can't possibly assume that my experience will mirror that of other devs. Even if they're, like me, very senior, and they're operating, like me, from within the US. So obviously, your mileage on these observations may vary.

Third, I've primarily become a frontend dev (by choice). So it's perfectly possible that my experiences may not map to those who are "backend" devs, or devops specialists, or... any other "flavor" of devs.

Finally, I wanna make it clear that this post isn't me whining about the job market. There are still plenty of jobs out there. And believe me... I'll be just fine. But it's a little surpising (even, jarring) to see how things have changed lately.


Image description

Knocking on doors

I've grown incredibly spoiled as a senior dev in the last decade or so. The last coupla times I moved jobs, I barely had to apply anywhere. I was constantly hit-up by recruiters who always wanted to know if I was interested in new opportunities.

Whenever I even thought that I might be interested in a new role, all I needed to do was to simply ANSWER the many inquiries that I typically received from recruiters. The stream of recruiter inquiries was near-constant - whether I currently had a good job or not. But lately I've found that the pipeline of unsolicited recruiter inquiries has slowed to a trickle.

To be clear, I'm not claiming that I never receive unsolicited inquiries from recruiters. But it definitely has not been the unfettered waterfall of solicitations that I'm accustomed to receiving. And if all I did was sit back on my couch and wait for someone to contact me, then I'd probably be sitting here with little-or-nothing to do - for a long time.

Of course, this is not shocking. Not only did Amazon jettison a huge swath of highly-qualified engineers. So too did Meta, and Google, and Microsoft, and Twitter, and... a whole host of other huge tech companies. In January, I read an estimate that 60k+ tech workers had been dumped into the market. I assume that, at this point, that number is actually much higher. (In fact, an article that I just read on Time today pegs the total number at 275,000. That's no drop-in-the-bucket.)

I've also noticed that many would-be employers have frozen hiring. When I first started putting myself "out there" again, I talked to one recruiter who was looking to fill three very-promising and high-paying roles. But before he could even submit me to any of those positions, all three companies informed him that they're putting a hold on their staffing ambitions.

I also wanna be clear that I'm not griping about this. It is what it is. And in the long run, I'll be... just fine. But I certainly empathize with anyone who's found the job market to be, umm... challenging lately.


Image description

Stratification

I've noticed a rather odd "stratifying" of the job market these days. I remember a time, not too long ago, when it seemed like most of the "senior frontend" jobs that I saw advertised all fell within a certain band. Specifically, the US market seemed to value most senior devs somewhere between $100k and $130k.

Yes, there were always outliers (like, the big FAANG companies that offered far more). But for most established companies that needed frontend help, it felt like they were bunching their offers together in a tight band.

But now, that "band" seems to have been blown to smithereens. I've seen numerous job postings that advertise comp in the low-to-mid 200's. I've also seen many posts that advertise jobs in the low-to-mid 100's. Heck, just yesterday, I was looking through job postings and saw a listing for a "senior" frontend dev - requiring eight years of solid experience - that purported to pay "$50,000 - $80,000".

And yes, I know how privileged this may sound to some folks. I have many friends, in completely different career fields, who would kill to have a job that offers $50k-$80k. But for senior frontend programming help, that just feels outright... silly to me.


Image description

The employee/contractor disconnect

I'm accustomed to contract work paying a premium over regular fulltime employee work. The assumption is that contractors are treated as more "throwaway". They often receive fewer (or... no) benefits. And they're usually the first people let go when a company decides to tighten its belt.

The trade-off is that contractors usually receive a higher hourly wage. But that trade-off seems (from my perspective), to be "broken" now.

I've been talking to companies about potential fulltime jobs that range in the mid-to-upper 100s. Yet every single time someone has contacted me about a potential contractor role, the rate has been anywhere from $80/hr (on the high end) to as low as $55/hr (on the low end). Why in the world would I consider being a contractor at a rate that's equal-to or less than what I can get as a fulltime employee??

(Side note: It's borderline-comical to me that I've been contacted repeatedly about a frontend contracting job at Amazon. They specifically want someone with prior Amazon experience. But they're steadfast in offering a maximum of $80/hr. Every time someone's contacted me about this "opportunity", I've told them that I'm simply not interested.)


Image description

The return of college degree requirements

As an entirely self-taught developer, I've always had a certain disdain for companies that wanna use a 4-year-degree as a filtering mechanism. Luckily, for the last 10-15 years, this has hardly been a problem. Because most companies were desperate enough for programming talent, and because most were understanding of the fact that some people have learned all of this stuff without ever going to college, nearly all open positions stated that you needed a computer science degree, or "equivalent experience". But lately I've seen far more companies that have a 4-year-degree as a hard limit to entry.

(FWIW, I actually have a degree. But it's an Associates degree. In electronics.)

To be clear, I'm not claiming that there aren't still plenty of opportunities for the self-taught crowd. And I'm not claiming that anywhere near all online applications require you to have a Bachelors in Computer Science.

And I also understand that, when your applicant pool starts to grow to epic numbers, you look for any way to filter out candidates. But it's still disheartening to see the number of companies that are falling back on this lame non-indicator of developer skills.


Image description

TypeScript snobbery

I've also noticed lately what feels like a growing sense of snobbery when it comes to TypeScript vs. JavaScript. It seems that there are more hiring managers who look down their nose if you don't sing the praises of TypeScript.

For the record, I can absolutely do TypeScript. (Yes, I'm on record as not being one of TypeScript's fanboys. But I've done plenty of TS work before.) But for whatever reason, it seems that nearly all the code I've been writing in the last couple years has been JavaScript - not TypeScript. So when I was in a recent coding interview where I was tasked with cranking out a small solution in quick order, I asked if I could switch from TypeScript to JavaScript.

I only asked this because I had a limited timeframe in which I needed to crank out the solution and I just haven't been writing much TS lately. The interviewer did allow me to pivot to JavaScript. But it was pretty apparent that it didn't sit well with him. I've had several other similar interactions from others lately, so now I don't even mention JavaScript much anymore. Because doing so seems to immediately mark me as being somehow "less than".


Image description

Sea of applicants

More than anything, it's just apparent to me that there are a lot of people in the applicant pool these days. While the US unemployment rate is currently quite low, it's clear that the unemployment rate amongst developers must still be fairly high. This is evident to me from the (many) job postings for which I'm extremely qualified.

At the risk of sounding arrogant, the simple fact is that I have a stellar CV. I have a solid CV/portfolio site (https://adamdavis.codes). I have a long history of tech blogging on this site (https://dev.to/bytebodger). I have a boffo GitHub presence (https://github.com/bytebodger). I have numerous NPM packages that I've written and maintain (https://www.npmjs.com/search?q=%40toolz). I have full-fledged React apps that I maintain "in the wild" (https://www.paintmap.studio/ and https://www.spotifytoolz.com/).

Nevertheless, I frequently apply for positions that are soliciting "senior React/frontend devs". And yet I find that, mere hours (or minutes) after submitting my application, I receive a form letter stating that I'm no longer under consideration. Although I know better than to waste any mental energy trying to dissect exactly why I was eliminated from any particular job posting, sometimes you can't help but wonder, "If my CV wasn't enough to warrant even a follow-up conversation, what exactly were you looking for??"


Image description

C'est la vie

If any of this comes across as woe-is-me hand-wringing, believe me: It's not. I'll be just fine. And I am talking to companies now about putative future roles. But it's definitely interesting to me to see the state of the current job market.

Of course, these things are cyclical. And a few years from now, everything will probably be right back to where it was. But you may find some value in the insights I've been gathering over the last coupla months.

Take care out there!

Top comments (21)

Collapse
 
tohodo profile image
Tommy • Edited

From personal experience, probably the best single advice to getting hired in tech when it's overflowing with Amazon, Facebook, Google, and Microsoft laid off developers is to go vertical (i.e., proficiency in niche languages & platforms). I would argue that hiring managers get so many superstar resumes these days that your resume doesn't matter no matter how stellar it is because a ⭐ in a sea of 100k other ✨ is still just another ⭐.

Jobs are much easier to come by if you have a specialty. For example, you are a Solidity guru who can whip up blockchain apps in your sleep; or you not only know Lua, you are intimate with the Roblox flavor of Lua; or you have built e-commerce sites for big brands on the Magento, SFCC, or Shopify Plus platforms; and so on so forth. Be the surgeon's scalpel, not the Swiss army knife.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

I don't disagree with your sentiment in any way. But I will point out that this highlights two competing (and possibly "equal") theories on how to make yourself valuable in the workplace. These theories are the "generalist" versus the "specialist". Neither approach is "right" or "wrong". But they both have benefits (and problems).

In the world of frontend devs, I'd argue that being a JS/TS/React "expert" probably makes you a "generalist". Because those technologies are massively used. So when you concentrate on those skills, you're concentrating in a fairly "generalized" skill set. The benefit to this is that there are a ton of jobs/employers out there who are looking for those skills. The downside is that there are also a great many other people who share your skill set and are competing with you for the same jobs.

If you concentrate on more "esoteric" endeavors (e.g., blockchain or Lua), you're going more down the "specialist" road. The benefit to this is that you have a very specialized skill that many others cannot match. The downside is that, at any point when you find yourself wanting/needing a job, there may not be a ton of options out there for you.

Years ago, I gained a lot of expertise working on Sitecore (a .NET CMS). Since that time, I've had soooo many recruiters reach out to me looking for someone with Sitecore knowledge/experience. In this case, it didn't really help me much because, honestly, I don't really like working in Sitecore. But it's definitely a "specialized" skill set.

To be frank, I don't know that either path is "better". They both have pluses-and-minuses. But this isn't meant to downplay your point. I get it. It can indeed be powerful to have that kinda "specialized" knowledge. But I don't know that either approach is a "solution" to the problem.

Regardless, I sincerely appreciate the insightful feedback!

Collapse
 
tohodo profile image
Tommy

Hi Adam, thanks for your thoughtful reply. The reason I commented is because after 20+ years in tech, I have noticed a stark pattern: I almost always get rejected for generalist roles that I apply for (even ones I spend serious effort on for the cover letter), and I never seem to have a problem getting offers for specialist roles that I didn't even apply for (they come via recruiters).

Again, this is just from my personal experience, but I know which camp I prefer: the specialist camp. It is more practical, for it facilitates landing a job in a relatively short timeframe, which can be a literal lifesaver if you are in dire need of money fast. Even if the specialist roles offered to you are not to your liking, it sure beats being unemployed.

Thread Thread
 
bytebodger profile image
Adam Nathaniel Davis

Haha, I totally see your point. But I also think a key part of your response lies in "I almost always get rejected for generalist roles that I apply for" and "I never seem to have a problem getting offers for specialist roles that I didn't even apply for".

Whether you're going the specialist or generalist route, there's always a much better response when you're not the one trying to get their attention - but instead, they're coming to you. That's why the job market feels so different to me now. Because even though I'm swimming in the big pool of talent (meaning: JS/TS/React folks), previously I didn't have to go out and submit applications. Recruiters contacted me. And in those cases where I said, "Yes", they then promoted my resume/candidacy and I was far more likely to at least get an interview.

But now, the supply of recruiters blowing up my inbox seems to have mostly dried up...

Collapse
 
krisdover profile image
Kris Dover

Funny how a lot of what you've described matches my recent experience with the Software Developer job market here in NZ. Contract work has mostly dried up and while permanent roles are paying more than they used to (mostly due to inflation), contract work seems to be paying less. We've also had layoffs here. I myself got laid off last December and went from being in demand by recruiters to worrying about where I'd get my next contract. I eventually landed on my feet but it was a rough ride. Hope things work out for you too mate.

Collapse
 
ecyrbe profile image
ecyrbe

Take care Adam, i wish you the best and to find a fulfilling job as soon as possible.
Here in Europe those jobs ADR are the norm.
But we have everything with it: health care, life insurance, pension retirement, unemployment compensation...

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Yes, this is a good point. Salaries in the US tend to be far higher. But the benefits are far lower.

Collapse
 
aarone4 profile image
Aaron Reese

Your experience mirrors mine. Not a FAANG employee but a specialist in a very narrow market: probably one of only 4 people in the UK who really know this niche product and are prepared to contract. Since Xmas the market has been just crickets... And I am in a recession-protected market of social housing.
Like you say, it will likely come back but whether it takes 3 months or 2 years, who can tell

Collapse
 
serenityh82 profile image
Serenity Hutchinson

Hi Adam. I love this article. I'm an entry-level web developer and I was wondering if you have any suggestions for someone like me who is entering the workforce. I also love your portfolio.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

Entry-level is tough. Most places don't have the patience or the bandwidth to deal with "junior" devs. (I've often been on teams where every developer had at least 5 years of experience.)

Aside from the obvious advice that you simply need to be persistent, I'd say that it's also critical that you do everything you can to ensure that you're not seen as "junior". Now, you may be thinking that this is useless advice because you can't just make up a rich work history out of whole cloth. So to some extent, it's unavoidable that your experience will be deemed as "entry level". But you must strive to show that your knowledge is not entry level.

When I've encountered "junior" devs, my first instinct is to find out what kinda coding they do in their free time. What kind of projects have they built on their own? What activities do they do that keep them learning new languages / techniques / patterns / etc.?

That may feel a little unfair. Because some people think, "Well... I haven't really built anything yet - because no one's hired me yet." But if the only coding exercises you've completed are those you received as class assignments, or in coding camps, then there's a good chance that you'll simply drown in the environments I'm accustomed to working in.

In fact, I wrote an entire article that talks to this. You can read it here: dev.to/bytebodger/one-crazy-trick-...

Let me be absolutely clear here. Some of the sharpest coders I've met had little-or-no "real world" experience. Their resumes were sparse. But they coded all the time. They thought in code. Hell, sometimes they dreamt in code. Those are the diamonds in the rough who can bring massive value to a dev team even though they have little "experience".

I hope this helps (somewhat). Best of luck to you! I'm sure you'll get a foot in somewhere.

Take care.

Collapse
 
akcumeh profile image
Angel Umeh

I had the same question as Serenity and I’m very grateful for your response. So, constant practice it is, for us? How much of continually coding do we need to do to get noticed? It’s been a sea of rejection mails, and all I’ve done is wonder: I’ve been coding for more than two years, how much longer before I’m good enough to get to a “junior” role?

You also mentioned this interesting point: “What kind of projects have they built on their own?” We are still talking about beginners here, right? They should have somewhere to start from right? I’m curious as to how beginners should be designing things on their own without any influence or ideas from “questions from courses or coding camps”. In the absence of real-world experience to sell themselves, what else is the determinant of their abilities, besides proof of their understanding of the languages involved with those projects from coding camps? (Noting that lots of people are self-taught these days)

I’m curious though, you said that you’ve seen juniors who are so good they “dream in code”: does this mean the tech world is expecting every beginner to be that good? There are many indications out there saying that the answer to that is yes.

Thread Thread
 
bytebodger profile image
Adam Nathaniel Davis • Edited

So, constant practice it is, for us?

I wouldn't personally call it constant "practice". I'd call it regular "coding". Maybe that's semantic. But the word "practice", to me, conjures images of doing nothing but coding exercises. I'm talking more about building stuff. Stuff that will result in a usable/workable site/app/product/whatever.

How much of continually coding do we need to do to get noticed? It’s been a sea of rejection mails, and all I’ve done is wonder: I’ve been coding for more than two years, how much longer before I’m good enough to get to a “junior” role?

I don't have a perfect answer for you. When you're self-taught (as I am), breaking into that first "official" role can be difficult. For me, I took a job as a "web content editor" (meaning that I wasn't specifically hired to code), and then, once I was on-staff, I was able to show them that I could solve some of their problems by... writing code. But the path everyone will take will be different on a person-by-person basis.

Part of the intention of saying that you should be doing more coding is to demonstrate your skills. From that perspective, you may also need to craft a resume / portfolio / etc that doesn't highlight your work history, but instead highlights your projects / skills. There are examples of these different types of resumes on the web. Granted, I'm not claiming that will magically open doors for you, but when you have scant experience and (hopefully) lots of skills, the key is to de-emphasize your experience and emphasize your skills.

You also mentioned this interesting point: “What kind of projects have they built on their own?” We are still talking about beginners here, right? They should have somewhere to start from right? I’m curious as to how beginners should be designing things on their own without any influence or ideas from “questions from courses or coding camps”.

This is the critical point of my "Write more code" article. Beginners can design things. They can build things. And in building/designing their own stuff, that's how they cease to be beginners. Sure, the code they write may be far-from-ideal. And their design "instincts" may be lacking. But that doesn't mean they can't build things.

You don't need someone to show you how to build an app in order to build an app. What you "need" is some problem you want to solve or some feature you'd like to build - and then to start building it. If it's not on-par with what a 20+-year vet would build, that's fine. Build it anyway.

When I was frustrated by severe limitations in Spotify's client, I used their API to build my own utility that allowed me to manage my Spotify playlists in the way that I desire.

When I wanted to match a digital image to my inventory of paints, I built an online utility that does a ton of image/color manipulation.

Anyone can do these things. You don't to be "senior" to make those things happen.

Thread Thread
 
bytebodger profile image
Adam Nathaniel Davis

I’m curious though, you said that you’ve seen juniors who are so good they “dream in code”: does this mean the tech world is expecting every beginner to be that good? There are many indications out there saying that the answer to that is yes.

No, I don't honestly believe that anyone expects you to "dream in code". But for someone to even be able to contribute on most dev teams, they must at least be comfortable coding. To some extent, entirely on their own. So if someone's considering hiring you, they probably want to know that another dev won't have to sit with you, constantly, for months showing you how to do every little thing. They need to have at least some confidence that you can jump in and figure some things out on your own. (Or at least, know when to ask for help.)

And to be clear, I do understand that, when you're trying to "break in", it may feel like everyone expects you to be a genius up-front.

Keep at it. You'll get there.

Thread Thread
 
akcumeh profile image
Angel Umeh

I am so grateful that you took out time to give such a detailed response. I've learned much. Thank you!

Collapse
 
serenityh82 profile image
Serenity Hutchinson

Thank you. I appreciate your quick reply.

Collapse
 
quinsulonphd profile image
Quinsulon Israel, PhD

Seems like there's more going on from the other side that you didn't touch on, taking the high road. Good luck and happy hunting.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I have considered blogging about my most-recent experiences in more detail. And I will probably do that at some point in the near future. But I've also scrapped a few putative articles because, as I was writing them, it became apparent to me that they probably just sound like "sour grapes". And I don't think it helps me (or anyone else) to write something that sounds like I'm just griping about recent experiences. So... give it a little time. I'll probably put it all "out there" in due time. But for now... I just don't think it serves me to lay all that crap out there.

Collapse
 
vogel_v_4670922aa53654235 profile image
Vogel V • Edited

Regarding some job listings offering as low as $50,000 - $80,000, I'm not surprised. As the number of suitably experienced workers looking for jobs expands, the economic motivators and pressures inherent to a capitalist system are going to start to push down salaries, sadly. And some people will feel the need to accept them.

Collapse
 
corners2wall profile image
Corners 2 Wall

Don't worry :)))))

Collapse
 
westim profile image
Tim West

I will politely disagree with your take on percieved "TypeScript snobbery." The language has passed 10 years old, has huge benefits for large teams, and is generally more popular than JavaScript at this point. There are certianly features of TypeScript which I dislike & avoid, but there's a difference between pointing out TypeScript's specific weaknesses in an appropriate context and outright avoiding TypeScript entirely.

At the risk of sounding arrogant, the simple fact is that I have a stellar CV.

I'm going to gently push back on this. Your professional track record is excellent and the blogging is impressive. That said, there is some to be desired on the public side:

  • The 22 NPM packages are all relatively trivial (here's an example for why this is potentially problematic). None have been updated in the past year. None come with type definitions (yes, this matters to my teams; see above).
  • The deployed sites seem to follow most best-practices according to Google Lighthouse benchmarking, but I don't think they demonstrate senior-level technical complexity. To be clear, I'm not advocating for needlessly-complex apps. The simplest solution to the problem/need is generally better. I'm merely suggesting that these sites don't demonstrate the full technical capabilities of a senior-level engineer.
  • The GitHub presence is almost fully redundant with the NPM packages & 2 deployed sites, so I wouldn't consider this a separate achievement.
  • Education, which has already been discussed in this article.

I know this is harsh, but I believe the above could actually detract from your overall application. I would recommend doubling-down on your paid professional achievements on a resume.

Good luck with your job search!

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

There are certianly features of TypeScript which I dislike & avoid, but there's a difference between pointing out TypeScript's specific weaknesses in an appropriate context and outright avoiding TypeScript entirely.

I think you've missed the point. When did I ever say that I avoid TS entirely??

As for the observations on the NPM packages, deployed sites, and GitHub repos, I gotta say that if those things detract from someone's opinion of me, then I'd never ever wanna work for them anyway.

There are many very strong devs who don't have any NPM packages. Some don't even have public repos. But now someone's gonna hold those things against me because what I do have out there isn't complex "enough"??

As you've pointed out, you don't build overly-complex stuff just for the sake of saying that you've built complex stuff. The tools I have publicly available are relatively simple. Of course they are. They perform targeted functions. I can't for the life of me fathom how someone would, in good conscience, hold them against me. But if they do - then good riddance to them.

Finally, I'd mention that, while spotifytoolz.com and paintmap.studio aren't large apps, that doesn't mean that they're simple. The logic behind them is robust, given their targeted functions.

As an example, if this "detracts" from my overall application - github.com/bytebodger/color-map/bl... - then I really don't know what else I'm supposed to show. No, it's not in TS. (Newsflash: Code doesn't have to be in TS to be a solid example of your skills.)