Seems like everyone here will throw the blame around so let me be "that guy". I've never worked at a startup. The smallest company I've ever worked for was +300 people. My current company is +5000, mainly doing software engineering. So I'm not going to emphasize on "this is how startups are" rhetoric in this post. Here is an example - A few months after I joined this company for a tiny project, I was pulled in for a new, very large and very ambitious one which had to be built from scratch. 4 people built the first fully working version in less than a month. It then took us another year to polish and to make it stable: new features needed to be added constantly, we were understaffed and frankly inexperienced for something this big. Mind you, we were motivated and carried on to the best of our abilities, most of us trying to improve and contribute more(I spent years studying during nighttime and weekends and spent North of 2k/year on literature and textbooks). A few years later I got promoted to lead developer, largely against my will - not because I thought I couldn't do it but because I had doubts about my predecessor who, for a number of reasons, never raised his voice just to avoid conflicts. But due to the lack of anyone else having the skills and knowledge, I agreed. While I knew the project relatively well, there were entire areas I had only scrolled through but never bothered to look at what the others were doing. And this is where the ugly part begins: while my predecessor was presumably code-reviewing everything, he was only returning PR's when something wasn't working. He never rejected a PR otherwise, again, to avoid conflict and having to tell someone to do a better job even if something could be done 300 times more optimal. You can understand my frustration when I saw all that - I was crushed. I spent the next year mostly on optimizing what we had and the improvements were noticed by all users - satisfaction surveys went up from "meh" to "AWESOME". Great, right? Wrong. Several developers had grown deep into the "seems to work" mentality and are still refusing to change that. They disrespect the naming conventions of branches, commit messages state nothing more than "fixed", code which you could expect from a 12 year old but not from someone with a university degree and 5 years of experience. Ironically the team is scattered across several countries and they all happen to live in an ultra-liberal country where firing an employee past his initial probation period cannot happen unless they:

1. Offend someone on racial basis.
2. Kill someone (I'm not entirely convinced here).

Adding a key-value pair to a map takes at least 4 "fixed" commits and at least 2 git branches. I have my hands tied behind my back and everyone, including the top management has given up on all hope since they can't do anything about it either. Their advice when I shared that with them: "be an asshole to them and hope they quit". And for the lack of a better alternative, this is what I'm doing. But they are still here.

The reason why I'm telling all this is to have something at the back of your mind to make you think twice. To them my constant irritation with the key-value example above is bullshit and they are doing an awesome job with minor hiccups. There are entire releases where I've had to give up on them fixing their mess and have myself and others re-do everything they've done from scratch because if I let such things into production, there's a potential to break the product for several hundred million people. In particular this sentence does strike me a bit:

> I really just want to go and do something else, anything else, work in a bar or something

Now if you have had such a great contribution in the product, that should never cross your mind. You should simply pack your desk and go work somewhere else, finding a job should not be a problem. Whatever the case may be, your best option is to find another job. Both for you and even potentially the company.