Having worked in companies large and small, startups, and being self-employed, each one is just different. They all sucked in their own way and they had good things about them. Even if another job looks like it's "perfect", it's just going to be different (rose-colored glasses anyone?).
So, the key is knowing what's important to you and what you absolutely will not tolerate. Then, find a place that best fits your requirements, keeping in mind that, like engineering a product, there will always be tradeoffs.