Vantaggi
1. You get to set up an excellent network. 2. No Fixed Time like what you have in services companies. Work anytime you want. Managers are bothered whether you have completed the work or not, within the promised date. 3. The work is stable, and people genuinely care to make it a good quality deliverable. There is no lack of resources, you will get all the help that you want to get the job done. 4. You will get a ton of resources, training, etc. to learn new technology. 5. If you can set up a good rapport with the team, no need to worry about leaves. 6. Satisfactory(this is subject to debate) hike, when joining the company. 7. If you can plan, you can have a good enough work-life balance.
Svantaggi
1. In most of the team, after a couple of months, the work will be monotonous. 2. Very very difficult to switch to another role, or another team, even if the company says otherwise. 3. Almost all teams are understaffed, so, there will be a huge backlog of work. 4. Regarding financial increment, it will be very very discouraging. There will be no appreciable hikes, in the first two years. Then, whatever happens, will be way less than the average inflation. Only after spending 3/4 years, you will start seeing some hike, or stock options, that too, if you are lucky. By that time, your peers would have moved a couple of times and will be earning way more than you. The median salary in the market, for your role and experience, would have increased and you would be lagging. 5. Here the applications are built on some very stable frameworks, which rely on old/matured tech stacks, So, if you intend to grow technically, learn new things, and grow, this might not be a very good place. 6. Even if you learn new technology, it will be extremely difficult, sometimes impossible to implement it, either as a POC in your project or as a new feature to the product, because, the applications/products rely on very old and stable frameworks.