Vantaggi
Flexible hours to some extent based on you being able to get your work done (although this would be a given in many programming roles). A negative and a positive in one is the freedom to code change requests or bug fixes or add new functionality (given time) in any way you want. I say this could be a negative because standards would make the product much more robust, stable, scalable and maintainable.
Svantaggi
Horrible management, criticise you at the drop of a hat if anything goes even slightly wrong yet hardly ever appreciate it when you do meet your deadlines or think outside of the box to benefit the product. Ridiculous deadlines. I mean, you would think that we were working on life support machines with the deadlines that are handed out for work to be completed. This leaves no time for learning and the general advice is to JFDI (just f-ing do it) i.e. hack to your hearts content but get the job done. Terrible ethos. Leaves many many problems when trying to maintain. Code is horribly hacked all over the place. The build process for customers etc is just a complete mess. Porting involves literally copy and pasting to different versions of RJ, leaving massive room for human error in the process. All-in-all disgusting processes. Absolutely no chance or room for improvement of processes, management will simply not allow time for improvement of software. Very much a "if it ain't broke, don't fix it" attitude here. The hiring of staff for the development of the RJ product is atrocious, interviewers promise you things which they never deliver on and ask you questions about things such as design patterns which are pretty much non-existent in the actual product. Recently 3 people left this department as a result of poor management. One of which had been working there over 6 years+ and was pushed to the brink.