Web technology excites us, as does seeing the impact it has on people, processes and interactions. We take pleasure in understanding the people in an organisation, their hopes and their frustrations – and how technologies can help. That means we're relentlessly searching for the best way of doing things, looking 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 are continuously trying new things and integrating them back into Drupal. The range of technologies we work with in our technology stack is a testament to that:
Our evolving Technology Stack
Our abilities come from a firm foundation of experience with large open source platforms. These include:
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 try to build systems which are robust as the underlying technology changes. 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 in the middle
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. These are all part of our daily vocabulary. This is part of our quest to find the right technology solution for the right situation.
Our evolving Development Stack
Development processes, coding and project management are all part of turning our 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. This has led us to a development stack which looks a bit like this:-
Continuous training of the team
Coding is about people and better code is about always learning and stretching ourselves. We have our own way of sharing and improving one another.
Monday tech talks – keep us all abreast of the latest in technology, technology fundamentals or great ways of doing things
Solving problems is more than the solution – we help each other solve coding problems, but always try to stop and talk about the underlying reasons something does or doesn't work
Training development – we run training programmes for our clients (on things like Drupal module development) and then use similar time outs for the team
Stretching ourselves – whether it is doing a project which drives our knowledge forward or running an internal project which improves our own processes, everyone on the team is responsible for more than just their day-to-day work.
Great technologies which help us work
Our search for the better way of doing things has led us to some fantastic technologies which underpin what we do
Git and version control – helps us manage our code, our websites, our development to staging to production processes (just as it would in any large company)
Aegir & Drush – two key components of Drupal to help manage a wide range of websites sensibly and professionally
Scripting languages and virtualisation – to help us manage our growing environment
Effective development environments – such as freely choosing our preferred IDEs (Sublime & Eclipse are among our favourites), sharing environments with Vagrant or using simple technologies like Rsync and SSHFS.
Great ways of working with others
Our view of technology is about collaboration and the long term. We work with (and train) many internal IT teams in the technologies we love. We follow the designs from designers and we talk to project managers, communications officers and marketing teams. We work with other technology companies who integrate with us or vice-versa. This means having effective ways of communicating and tracking information, sharing development work and talking about best practices.
Our use of technologies like GIT, Vagrant, Redmine (to track support requests) and more have come from the need to work with those outside of our team. Our approach to projects (which is broadly Agile) is built from the need to flexibly work with organisations who are similar or quite different to us.
Get in touch!
We can work with clients, suppliers and partners in a wide variety of ways. Get in touch to discuss your brief, and we’d be happy to have a techy chat with you!