Vantaggi
Good pay and good benefits.
Good work-life balance; management is understanding to a riduculous degree.
*Heavily* incentivised to learn new skills / pursue new research areas. Paid to learn new skills on the job. I really want to emphasize how nice this is.
You are able to involve yourself in as many projects as you can handle, and more. Even if you're an intern you can get meaningful code in the codebase.
An intern's dream, more or less, since none of the cons really affect you if you plan to leave after a summer.
Svantaggi
The codebase has some 'scars' that there is no money to fix. 'Scars' are unreadable, hard-to-maintain, poorly documented pieces of nominally working code. They were written either by bad developers or scientists new to programming.
While there are really knowledgable people, there are also some incompetent ones, and if you're competent than you'll have to help clean up their messes. If you're incompetent (or inexperienced) you won't be warned and can accidentally take on more responsibility than you can handle.
Management can be lenient to a fault. It can be annoying when you're trying to collaborate with someone who is working remotely or taking so many days off without advance warning.