Pros
Podfather has mostly felt like a family. Many employees stay for much longer than the industry standard (for software engineers), largely because the company feels like it genuinely cares for staff and implements policies that genuinely help them. The accumulated benefits (when it comes to flexible working, work/life balance, self-development, and job security) are quite attractive. It's small enough that there isn't too much bureaucracy and I feel top-level decisions are made at a human level. There is a sense of continual improvement in practices and policies. Things do go wrong, mistakes are made, but every time some hardship has hit the company, they have managed to bring us out the better for it. For a dev there is zero sense of crunch, pressure to do overtime, undue pressure on speed of individual output, or anything like that. A blameless culture for incidents and mistakes, and you're supported by extremely helpful seniors, good code review, robust CI and devops infrastructure, etc. It's a robust business, >20 years old but still evolving fast, with a sustainable model: it sells b2b, offering a product that's useful to an industry removed from any tech bubble; and it turns a profit month on month with no outside investment. The problems and challenges that come with developing the software are interesting and offer plenty of opportunity for growth. As a developer you have the freedom to define the implementation of features, working fullstack and collaboratively with a small product and design team, where everyone listens to each other.
Cons
The MD occasionally gets far too involved in low level details regarding implementation and organisation of work. His interest is mainly in the sales and business side, and his collaboration with the product and dev teams sometimes does not feel like it values their autonomy and expertise. That said, at other times we are left alone to set our own direction. His involvement used to be tempered by another director who had much more of an engineering-oriented angle, and generally understood people in a remarkable way. But this picture has changed. As an engineer, you'll be working on a massive legacy codebase. Great strides have been taken over the years to modernise where possible, and newer areas are pleasant to work on. But there is an unescapable core of spaghetti code and technical debt. This can be embraced as part of the challenge and interest of the work, but it has driven certain developers away. Similarly, the product has a history of endless bespoke work and so there is a great deal of fragmentation in some areas, and the surface area of features is huge. But again, over the past few years the focus has shifted significantly to a unified product focus. As a large legacy system, slowly modernising, you might not be exposed to the latest and flashiest in technology, nor the newest practices. This can be a benefit too: you'll be honing fundamental, transferable skills rather than cushioned entirely by some framework. The incorporation of proper product and design teams is still in its infancy (or maybe adolescence). They are doing their best with the huge surface area but I'm sometimes frustrated that this side of the development pipeline isn't quite as developed. I'm sure this will come with time.