We always build reusable tools -- It's just what we do. Over the years, we have found that when you try to get too far ahead of the problems in front of you, you wind up with a swiss-army knife that doesn't really do anything well. Thus, we have have built a set of focused products that are building blocks for solving larger problems. This has left us a set of in-house technological capabilities that are much larger than you would expect from a company our size.
Because we usually service our own software, we are sensitive to the human labor required to learn, use, and support our tools. Our demanding clients require that stuff works so we build robust tools. We are accustomed to problems that generate 100s of million records per month (medium data, if you will) with a set of variables that is frequently changing. We handle this volume of data, with years of history, on a single server.
At present, we have product offerings in two different markets built off the same core technology.