Pros
I’ve worked other places and never gotten feedback on whether anyone liked what I worked on, or even if anyone ever used it. That is definitely not the case here. The development approach is very agile (in that we believe we’ll only get to the best product by working in partnership with our customers) meaning we iterate and ship every week. Our support department has a ton of dealership experience and we are use that in-house expertise to make sure off target ideas fail fast so we can spend more of our time on work that matters. It’s very rewarding to get a high priority feature request implemented, through QA, and into production use in under a week. Working with smart people (developers and SMEs) that are experts in their area and always available to help out a big plus. Recent equipment upgrades are nice, as is the choice of OS, and opportunities to go to tech conferences. Meetings are short and kept focused on project work. Great results are recognized and get rewarded. There are a bunch of fun extras: cookouts, costume contests, department decoration competitions, and a holiday party that’s actually fun. The addition of the workout room and gym equipment was nice, as it serves to balance out the free bagels and cupcakes.
Cons
The original system was written in COBOL. We’ve made good progress replacing a bunch of it but in order to maintain backwards compatibility we still have to work around some of its design constraints until it’s completely gone. Even some of the newer code (written before things like Spring, REST, or Bootstrap became widespread) is starting to show its age and could use an update. Vehicle manufacturers always seem to expect us to drop everything to support changes to their backend integrations. Finding time to do interactive testing can also be a challenge when their dev team is based in India or China. We’re not in a position to really say no, so we end up having to rearrange our development plans, sometimes with short notice. We could do a better job hiring. There is always more work than people and it’s disappointing to bring someone smart on, just to have them leave. In my experience, this seems to happen because they’re more used to something closer to a waterfall development process and they never get comfortable with our short cycle time and iterative approach.