The problem is that everyone notices the terrible UIs, but really good interfaces get out of your way so you don’t always notice how good they are. Hence a lack of recognition for good front-end devs.
For the recruiter, it's probably all just supply and demand. They might not even know what they're talking about, and are just basing it off of some gut feeling they got from an article they read somewhere. If they were having a hard time filling a spot, I'm sure their tune would change.
The worst case of back-end complexity requires very in-depth knowledge of hardware, networking, distributed computing, OS internals, and then knowledge of a couple of languages and CS fundamentals thrown on top.
The worst case of front-end complexity requires learning and writing tooling to make writing desktop replacement apps in a browser a less terrible experience. Tack on UI/UX design, you are still not quite at the same level of complexity.
I don't mean to say that front-end isn't difficult or that it doesn't take years to master, just that back-end is even worse...
So no, being fullstack (that is being mediocre on many things, and excellent in none), I do not consider front-end to be less serious.
I think that opinion takes roots in the apparent simplicity of good ol' HTML vs the requirements of a complex algorithm riddled back-end.
Especially with the rise of complex front-end frameworks, that difference in 'seriousness' tends to fade away in my opinion.
And for the sake of the argument, there's a deeper complexity to satisfying users and clients with front-end (and the fact that everyone's a critic) that back-end folks do not encounter.
However the business logic is nearly all inside the backend and it's where the important decisions are made. So backend developers use to be closer to architects or are the architects. You need a more senior person to do that job.
The frontend is a critical aspect of all user facing systems. Excellence in developing and improving that is very valuable.
Someone in business who talks like that is not serious!
I could re-write an angular front-end using react by using the same back-end API, but if I rewrote the backend I may need to tweak the front-end as well, or go to extra lengths to mimic the API perfectly so the front-end can continue to work seamlessly, which in my experience seems less likely to happen
Backend server side work requires a deeper knowledge of things like Threads, sockets, processes etc. Some knowledge of languages like C etc is generally a requirement.
In general front end work requires knowledge of HTML, CSS etc. which kids do in high school.
Having said that they are both separate skill sets and supply and demand probably plays a part. There are a lot of people who want to be front end people - designers etc, you get to wear cool designer glasses and have meetings about user experience, while sipping lattes.
Back end guys sit with workstations and talk about boring things like sockets and memory usage, so there's less people who want to do this stuff.
Thats probably why full stack developers are more expensive and rarer you need a bit of each.
> Some knowledge of languages like C is generally a requirement
I have never heard of anyone using C for back-end web server code, unless they were contributing to open source tooling. When have you used C for this? I would maintain it's a total rarity and not by any means essential knowledge.
> front end work requires knowledge of HTML, CSS etc. which kids do in high school.
I don't see the connection between "age at which education system introduces basics" and "complexity of the field." This is a curriculum failing more than anything. Do you mean to say that if we introduced databases into the high school curriculum then you would stop considering the back end to be "serious"?
> server side work requires a deeper knowledge of things like Threads, sockets, processes etc.
And front end work requires a deeper knowledge of things like async code, promises, websockets, and so on. Idk, I've worked both sides of the coin and I don't see that the one is significantly harder than the other.
I think the main reason is, as I said, supply and demand. There are more people who want to do front end, I know a lot of graphic designers who are now calling themselves front end developers cause its cool :-).
So imho you could divide front end people into two groups (and I'm painting with a very broad brush), those who fiddle with HTML and CSS and are front end developers, and those who use things like Angular, jQuery etc and know about async etc.
Agents in general try to get the price down, so your job is to put yourself in the second camp as a rare commodity that can do the more exotic things. In my experience many (most?) agents don't have any idea about what they are recruiting and have a check list of HTML/CSS/... - they're a front end developer, I can get them for this much etc. Personally, I'm not sure how to go about this (I call myself a full stack developer, cause its easier to negotiate decent money), but I'm sure someone on HN can give you an angle, good luck.
Edit: one thing I've noticed is adding Typescript to your languages makes you look more serious and gets better dollars, so pop that in if you can
sockets --> web sockets
processes --> communicating btw microservices
memory usage --> app and performance profiling
it sounds like you're comparing a junior (high school-level?) FE to a senior BE.
in my experience FE is difficult because your code is generally running in a lot of different environments and you have to create something that works reasonably well in all those places. oh yeah, and then there's a human who actually uses the product and who knows what crazy stuff they'll do.
maybe a good distinction is that FE requires being comfortable with a lot of uncertainty, whereas BE is appropriate for people who like things 'just so'.
15+ years ago I took multiple programming classes in a rural high school where we were "taught" VB6, C, and Java.