Software Development Technologies

Open Source

Most of our products are built on top of open source technologies such as Linux, JavaScript, Python, MongoDB, PostgreSQL, and Erlang.
 

Frameworks

Our current applications are full stack javascript apps based on Meteor. They use MongoDB for data storage.

Many of our applications are built using the Python-based Pyramid framework.

 

SQL and NoSQL Databases

We have used a variety of databases extensively, such as PostgreSQL, MySQL, Oracle, SQLite, as well as a number of NoSQL databases such as MongoDB, the Zope Object Database (ZODB), Erlang’s Mnesia database, and various simple key-value stores such as Berkeley DB (BSDDB).

 

Rich User Interfaces

Our user interfaces are platform independent and responsive JavaScript and HTML5 based interfaces that provide a rich user experience. We have also built interfaces that can scale down to highly unreliable and low-quality network environments, which makes them ideal especially for mobile applications and for conversion into native iOS and Android mobile apps, e.g. by using PhoneGap.

 

GIS

Many of our applications have a strong geographical focus. For such GIS applications, we use a variety of resources and technologies, including Open Street Map, UMN Map Server, PostGIS, the Leaflet and OpenLayers JS libraries, and we support a variety of exchange formats, such as KML, GeoJSON, shapefile etc.


Hosting Technologies

Ubuntu Linux

We usually host and develop our software on Ubuntu Linux machines.

 

Redundancy

We use DRBD to provide redundancy in case of hardware failures, as well as nightly incremental offsite backups to safeguard our clients’ data.

 

Automation and Virtualization

Our deployments are partially automated using a complex Ansible setup (including our own Ansible plugins), and a variety of setups use virtualization, both in production as well as for testing and staging. We use a number of tools for virtualization, including KVM, QEMU and libvirt as well as VirtualBox.

 

Debian Packages and Automated Deployment

Much of our software is deployed via our own automatically built Debian packages. These are also deployed automatically to testing environments whenever a repository check-in is made.