The work of factis research rests on three important principles: technical expertise, detailed knowledge of the user domain, and an agile development process.


Broad knowledge in all areas of software engineering is our foundation for successful work. The focus of our technical expertise are programming languages, operating systems, networks, and databases. For our daily work, we use technologies that allow us to deliver robust, high-performance, and bug-free software in a short amount of time. We put an emphasize on open standards and open source solutions.


The backend of our product Checkpad MED is implemented using the functional programming language Haskell. Haskell offers type safety and very good support for writing concurrent and parallel programs. We have accumulated 200,000 lines of Haskell code so far.

Scala / DICOM / HL7

In Checkpad MED, we also use the functional and object-oriented language Scala for collecting and processing data obtained from various clinical information systems. Scala is an ideal choice for this task because it is an expressive and type-safe language that allows for seamless integration of Java components to access DICOM and HL7 systems.

Objective-C / Swift / iOS

The iPad app for Checkpad MED is written in Objective-C. New components are developed in Swift.

C# / C++ / Windows

The Windows app for Checkpad MED is a Windows Universal App, implemented in C#, C++ and C++/CX.

Typescripts / React / HTML5 / CSS

We realize moderne web-interfaces using HTML5 and CSS. Instead of Javascript, we use Typescript, because static types scale better in large projects. For user interfaces, we program in react.

Python / Bash / PostgreSQL / SQLite / LevelDB

System-level scripts are written in Python or Bash, for persisting data we use PostgreSQL, SQLite or LevelDB.


Our servers are powered by the Linux distribution Ubuntu Server and the virtualization solution docker. Linux is an open source operating system offering both scalability and adaptability.

Domain Knowledge

Technical expertise is necessary but not sufficient for developing good software. Profound knowledge of the user domain and a good sense for the problems the software should solve is equally important. Over many years, we collected experience and knowledge of the workings of the health care sector, with a focus on process and quality management.

Development Process

Good software needs developers that identify themselves with the software and have fun designing, developing, and testing it. Thus, each of our developers is involved in all steps of the development process, ranging from design over implementation to testing. We rely on the Scrum methodology to adjust quickly to new requirements. In general, we share the values of agile software development:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan