Avantages
Frugality. You will know exactly how much revenue your team is making and how much you are spending and learn to optimize it. You will own products and systems and feel like you are involved in projects that have several times more engineers in competing companies. Compensation is good. People are smart. Development is as agile as Java stack allows. Management is very technical.
Inconvénients
Frugality. From the desks that were previously doors to displays that will hurt your eyes to laptops that are not much more than bricks. Brutal workload. You will always be behind on all projects, no matter how good you are. Shifting requirements. Anything you need to do may change tomorrow. Zero positive reinforcement. Again, no matter how good you are, you are always behind and management will make sure you will know that.