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
C# / C++ / Windows
Typescripts / React / HTML5 / CSS
Python / Bash / PostgreSQL / SQLite / LevelDB
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.
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