Oh man, everything about this post rings true. I myself am a pretty mediocre developer. But fortunately for me, I realized that tech interviews are complete and total BS. So what I did was spend a whole bunch of time studying whiteboard algo questions, and I became really good at interviewing. I've gotten a couple awesome jobs that I had no business getting (and usually get fired after about 6 month, because I'm a sh…
You saw the flaw in the system and studied so that you could exploit it improve your own situation. Some people may be mad about that, but I'm honestly not. I'm sad that you put effort into practicing interviewing and sound like you're not putting effort into practicing your actual job. You say "I'm a shitty dev", which is a fixed mindset type of thing to say. You identify yourself as your current capabilities, as opposed to a growth mindset where you may say "I'm working on improving my dev skills".
It sounds like touchy-feely pop-psych, but think about it: you saw that getting better at interviews would land you better jobs, so you worked on interview skills, and you got better jobs. Now if you took your current job (and your next one) as a chance to work on your dev skills, maybe you won't get fired after 6 months. Maybe you'll grow in to absolutely deserving the awesome job, and then grow beyond that.
Please think about it. Paraphrasing an Adventure Time character, being a shitty dev is the first step to being a kind of good dev. And we need more good devs and fewer firings.