That being said, I’ve also worked at enough places where some nightmare 5 year old monolith is at the core of the business and there just never seems to be enough time or buy-in from management to break it apart and clean it up, and I’d like to avoid making the same mistakes myself.
Obviously the usual good code philosophy stuff applies - SOLID and so on, but are there any good non-obvious tips or even resources (books, talks, blog posts, etc) that you guys know of which address the approach of writing a monolithic program you expect to eventually break up into well defined micro services?
I’m trying to figure out how to avoid having too many micro services in my team right now.