I'd say the first clue is a CTO who penalizes you for being an hour late. Programming is like factory work. I'd also suggest that junior programmers start at a larger company, to get the experience needed to be a better programmer.
As for working hard early on without extra pay: welcome to the world of how to make big bucks, if you're lucky. I did that for several years, and the end result was being selected to join a startup that was successful, in which I had significant equity, and which we sold twice, bought it back twice, mergd it, then sold it a third time.
But, it is a fact that sometimes you run into bad managers, and people who wil blame you for their failures. That is often the sign of a broken corporate culture - one you should leave ASAP.