Infrastructure & Architecture
The goal for our infrastructure is always to build up a foundation of reliability and redundancy. We utilize a lot of self-maintained servers, in particular for data storage, with some cloud servers. Our infrastructure is self-administrated, but maintained and hosted in data centers.
Our software architecture is oriented towards supporting modularity and divided into services where possible.
Redefining Edge Case
While this point does not apply to every project in the same extent, when working with large data sets of people data, we have found that we constantly have to redefine the term "edge case" for us.
If your application serves a larger user base, you will inevitably have to be more thorough when thinking about how people will use it. When you process millions of data documents then problems, bugs and runtime issues that rarely occur with only a thousand documents in a development or early stage production environment might become a daily event before you know it.
Thus we know that it pays off to invest a little more time thinking about extreme cases and potential future issues before implementing things too quickly. This way, you can more graceful handle such cases and it is much easier than having to catch up on it a couple of weeks later - when the full extend of a problem might only become clear.