...
It is a large, but reasonably well-organized, monolith consisting of a handful of core assemblies plus the web project. Our long-term vision is less monolithic and more a federation of independent services working together. We've begun exploring that vision by using a message bus (RabbitMQ) and an "integration hub" to handle integration and process coordination needs.
We use SASS to take some of the pain out of CSS.
A lot of our development utilities are written in Ruby and we use Powershell for some production automation tasks.
...
- "Go slow to go fast". We are interested in long-term stable velocity over time. We achieve that by paying attention to fundamentals, writing clean code, and sweating the details.
- Diversity of thought / consistency of output. We value different ideas and problem solving strategies, but the code shouldn't suffer from multiple-personality disorder.
- Product features should be thin wrappers of business logic around a rich application framework. (In other words, This means we prefer reusable components and patterns over feature-specific "stuff"). We invest in helpers, wrappers, utilities, etc to eliminate as much boilerplate and repetition as possible.
- Automate all the things - ain't nobody got time to be doing repetetive tasks by hand!
- Innovate deliberately. We all love shiny new stuff, but not every task is the right time to introduce brand new ways of doing things. But when it is the right time, then look for the evolutionary leaps and not the incremental shifts.
- "It's better to build half a feature than a half-assed feature." (See #1)
...