I'm not good at selling myself, I don't live in a tech-hub city, and I'm probably mediocre at my job. I feel good about the work I do and do have strengths but I'm not proving to be a competitive candidate for the work I want.
I'm spending my free time acquiring better skills so hopefully this will change for me.
The take-away from the post (and vid, linked at bottom) is that most people should be mediocre. It's not a bad thing. Take pride in having reached that far.
As for the selling issue; you're aware of it, so that's obviously a good thing. Next is to put together some kind of promo that you can live with. A portfolio site, some blogging about what you've learned etc.
Sure you'll get decent opportunities if you keep skilling up and making folks aware of your current abilities.
Regarding non-hub city: remote work an option? Biggest local companies?
EDIT: Just saw you've seen the post linked to above already. And you're probably more experienced than I'd understood from your comment. I'm tempted to say you might only be bad at selling yourself because you self-deprecate too much. But that's another assumption!
Thanks for taking the time to respond, it's helpful.
I do tend to self-deprecate. I'm really working on not doing that anymore. I've come a long way but the past few weeks have been really discouraging. I interviewed for some jobs and got turned down. The sad thing is, after talking to the devs that interviewed me, I was pretty certain that I'm more competent than they are. I was turned away because I'm "obviously not passionate about front-end", whatever that means... Interview process was long and I wasted a lot of time.
Then I came to this place where I realized I'm writing lots of framework code, and not really understanding Javascript as well as I thought. Heck, I've forgotten more about Javascript than I can remember.
Anyway the most discouraging thing is that I can become as competent as I have, and still have a very difficult time getting work. The people I am contracting for are very, very happy with my work (probably because they're getting a good deal).
EDIT: I'm really good at cranking out work. I'm a workhorse. Some days I can put in 8 - 10 hours of solid coding if I need to, and my bug count is pretty low...really low. But I'm terrible at remembering specific technical knowledge. A lot of things, I internalize and practice intuitively. I get in interviews and they start asking "gotcha" language questions and I just choke. Then I leave and kick myself because I knew the answer all along, but I couldn't remember it during the conversation. So I need to get better at interviewing, build a better portfolio, learn new frameworks, keep working so I can eat... Sorry for the sob story, it's just rather daunting at the moment.
Lots of job interviews don't involve gotcha language questions. So it's worth spending some time filtering companies based on how they interview, if there are some interview styles you don't like.
Also, you may be underselling yourself by focusing too much on specific technical knowledge.
I'm happy to do a resume review (which is often a how-do-you-pitch-yourself review) - been doing a bunch and people seem to find them helpful. Email me at itamar@codewithoutrules.com. May answer with delay, but will answer.
I'm spending my free time acquiring better skills so hopefully this will change for me.