We believe that technology solutions must work for the people who use them. We relentlessly search for the best way of doing things and look for best practices and the most promising technology solutions around.
We pride ourselves on being a Drupal shop that is open source to the core, and we draw huge inspiration from the creative and powerful open source solutions around us. This means we continuously try new things and integrate them back into Drupal.
Linux & virtualisation. We run a large number of Linux servers, some virtualised. Our Drupal management systems integrate with these servers.
Apache, MySQL & Postgresql. All of our websites are served by Apache which we configure and extend. We work fluidly between 2 big open source databases – MySQL and Postgresql.
PHP & Advanced PHP. Drupal is a PHP Framework and we develop extensively on this widely used language.
Java & Apache Solr Search – We appreciate and code in a range of other languages. Our original roots were Java and we work with some Drupal enhancing technologies to provide advanced search for example.
Enterprise Service Buses – We look to build robust systems which can work with multiple technologies. We use middle-ware to help with integrating Drupal to other systems like Sharepoint.
NodeJS – When we're working to performance enhance Drupal for high loads, we turn to NodeJS to help read data in a light-weight, quick response way.
And lots more: SOAP, RESTful interfaces for working with APIs of all sorts; Oauth, LDAP, Shibboleth, CAS and WebAuth for authentication; XML, XPath for data interchange; and much more.
Development processes, quality coding and project management are all part of turning out a useful and successful technology solution. There is no one size fits all for working with clients, but we continuously draw on past experiences and new best practices to do this well. We're proud of how we do things and humbly know we can always learn more from others.
Continuous improvement requires us to be always learning and stretching ourselves. We work together to solve problems and take the time to talk about the underlying reasons behind the approach we take. We learn from every member of the team and teach what we know to others. We regularly share interesting developments in technology and challenge ourselves to find better ways of doing things.