1) Bad management, surrounded by "yes-people", lacks any kind of social skills. CEO has a bit of a childish personality. It's either his way or the highway, there is no ground between those. He convinced himself that he knows everything better than his employees. The very second that you start to explain anything technical, he (probably) assumes that you are trying to trick him and just outright dismisses your explanations. Most of the time, he has this "sassy" attitude which seems like he would rather choose to be right over doing the right thing.
2) Technology is archaic and not open for changes, don't expect to work with cutting-edge stuff. There is no effort for refactoring/maintaining the old codebase. New features keep piling up while the rest of the system stands on toothpicks.
3) The company forces you to install an unethical tracking software called Timedoctor, which allows the management to look over your shoulder constantly. It does not matter if you put a great effort or not, just move your mouse and press some buttons for 8 hours a day and you are peachy. This decision allows employees to do the minimum work and spread what they have on their hands throughout the day since finishing your tasks early would mean that "you have worked less than the others" according to their mindset.
4) Roles are not defined properly, CTO works as if he is the lifebuoy of the company and he looks like he is getting older/more depressed day by day. Team leads exist but a shady tracking software is preferred instead of their feedback.
5) Code quality standards are lacking, there are no clear rules about what to use and what not to use. Even if there are rules, developers are not abiding by those.
6) Your salary increase highly depends on your image on the CEO's mind. If you are one of his "favourites", you get 40%. If he has a personal beef with you, you could get 0%.