Pros
- Benefits: 5 weeks leave, meal vouchers (fully paid), up to 60 days of sick leave (fully paid), private polyclinic with better-than-average waiting times for appointments, on-site stretching exercises 2x/week, Czech & English language classes - Office location: near subway station with a good choice of lunch venues - Office facilities: foosballs, table tennis, bean bags, free beverages, decently sized kitchens - Decent salaries, but not above market as before - attrition would be less otherwise - Friendly and knowledgeable colleagues (in general), not a toxic environment (at least locally) - Relaxed dress code for a bank - smart casual - Paid overtime and on calls (or time off in-lieu) - Work/life balance is generally very good but depends on team/project. Usually not a problem to work from home or leave for an hour or so if you must be somewhere (e.g. home parcel delivery, visit authorities/bank/dentist) - with some notice ahead of time (common sense, not 5 days in advance or the minute you already leave) - A lot depends on the project/team: codebase, clients (understanding or very demanding/picky), team leads in other locations, etc. Could be a relatively smooth ride with little stress except a few days a year during major releases OR could be hell with constant stress, late nights due to messy systems and management who chronically overcommit and underdeliver.
Cons
- Processes and bureaucracy - e.g. it takes several weeks to become productive - have a working PC with access rights and software. And this is just one example - Interaction with other teams (e.g. DBA, IT support, app servers support, other dev teams) - often need to send several chaser emails, otherwise you get ignored. This got progressively worse with time, but you might get lucky and get more responsive people. - Quarterly mandatory trainings that are 90% irrelevant to IT people, are a waste of everyone's time and are mostly there so that the firm would fulfill the terms of yet another plea agreement with DOJ (or whoever it settled with this time). - No budget for any real training opportunities - technical or business, besides the basics, but you can get Pluralsight subscription, which is better than nothing. - Outsourced support to India and Mexico with staff of dubious quality (technical and/or language) and high turnover. Many support people don't know the systems and often don't want to learn. As a result developers on level 2 duty get swamped with issues that should be dealt with by level 1 people. This eats into your deliverables for the sprint. - Change management - God forbid you must coordinate/deploy changes into production or UAT (yes, testing) environments regularly - the effort to document and push it through could easily exceed the actual change you did many times over. Only to do it 2 more times because team 3 out of 5 didn't approve your change in the system in time because you didn't chase them enough. If you are pure developer and only push code to version control then you're fine and spared of this. - Tooling - collaboration tools are a mess, ancient IRC-like clone for chat, disparate (and often broken) systems for online meetings and videocalls. - Feeling like working in silos, little visibility of other teams and your own contribution, but this is supposedly getting better - Limited career progression once you reach AVP - it is a "catch all" position where you can find people with anywhere between 3 and 13 years relevant experience. - No budget for business travel or technical conferences. You can work with teammates daily for years without ever meeting them in person. - Unless you're promoted, you get about inflation level pay rise for very good performance, otherwise below that, if any. - Bonuses vary, but rarely exceed one monthly salary, often below that, if any, also they're paid in April for the previous year so they keep you on the hook longer should you decide to abandon ship