Pros
This is written heavily from a development POV. - Never a shortage of knowledgeable, helpful seniors. There are multiple methods of intra-departmental communication, which helps newer employees become familiar with their duties and improve early on. - I have seen legitimate moves toward shrinking the learning curve for the company. - I have also seen improvements in the development stack. Formerly inefficient programming practices and frameworks are being updated and improved. - Plenty of opportunities for improvement. Development has generally been an expanding department, and many new hires see movement multiple times within their first year. - The work load is reasonable, but due to natural variation in difficulty, completing 100% of assigned work each week may need more than 40 hours. This is more of a way to show initiative than a requirement. - Management is amiable. Initially I had complaints of micromanagement, and now it's less pronounced. - The top of the development ladder is amazing. I've never had a bad experience with the team leads, directors or CTO. They represent and aid the department well. - We heavily use the product we're developing. That innately helps developers sympathize with users and allows them to be familiar with the product. - The CEO has a wonderful personality and is very visible. He updates the company frequently and recognizes standout workers, who span many departments. - The company has started to have mini "think-tanks" and employee-led lectures exploring new technologies and how they can be used in the application. - And of course, ConnectWise's bragging rights. Fully stocked kitchen (lots of junk food, and occasionally healther "dried fruit & nuts" types of things. Plus plenty of fridge food), bonuses, 401(k) with a nice company match, etc. All explained from before employment and I've had no issues.
Cons
I feel there's a lot more pros than cons, but the cons are still very notable. - Though the development practices and tools improve, I frequently see these changes happen in a rush when the current method is failing, rather than just due to the need to be innovative. - Inter-departmental communication still needs work. There's a disconnect between development and (for example) Support and Internal Development that leads to a lot of unnecessary frustration. - Many internal improvements (employee-drafted list of suggestions to improve development & the company, etc.) stop at the planning phase. The suggestions for management aren't being applied. - Daily management, reviews, etc. are pretty lackluster. We're reviewed once a year, and outside of that, we (and our managers) just see numbers that don't factor in potential differences in difficulty / time required. - While there are a lot of potential mobility, it starts to feel more lateral and less like a promotion as the work duties can remain very similar. It becomes more of a change of location. - Starting pay is admittedly not great. And pay doesn't increase immediately upon being promoted. - Micromanagement is still a thing, especially in the lower tier of development. New developers can begin to feel like numbers. - New developers are also put in direct competition, since they're numbers are public to the team and (only) the highest performers receive additional benefits. - I do think that some employees can essentially get blackballed. It seems that independent of work quality, there are a few employees that sit in the same position (even the intro positions) for a very long time and are forced to leave (with their extensive knowledge of the software) after trying to stick with the company and move up for years.