Here are the problems I had in the company and they could be common in other early-age startups as well. So always be adviced when joining an early-age startup.
1. Both the CEO and CTO are not from a technical background.
I found this to be a big problem because they didn't have the experience and knowledge to manage the software development. The development since became inconsistent, it can be changed by one customer asked for one feature or they read one paper somewhere. And every some time we seem to revisit the task we had previously.
Because they are very little involved in the development, their ways of judging engineers' performance became mostly checking for hours, and their way of helping you improve became pushing you stay longer hours in the office.
2. It is true that the first batch of engineers all left/got laid off by the company.
And they got laid off without any notice beforehand. It's bad because the people who got laid off usually work under a certain immigration visa. Becoming unemployed will be a big trouble for them to retain status. And there's no work transition so those who stay have to figure out code written by others themselves.
3. They do share sales pipeline with engineers. But they've been overcommiting to both customers and engineers. Therefore engineers wouldn't trust how well the sales goes when the customers want something we cannot deliver.