We design software with focus on robustness, consistency, security and extensibility. Our software development process meets the PCI DSS quality level. We rely on manual code reviews and clever automation in testing and controlling.
Efficient and agile processes are the motor of modern software creation. To ensure flexibility in development without sacrificing clarity and goal-directedness, we rely on Scrum and Kanban as our software development methodology.
Our software products rely on a number of established frameworks such as Java, Spring and Quartz for the backend and EmberJS, React, Sass and Bootstrap for the frontend. By using Hibernate, our products also support different relational databases: You’re free to choose among MySQL, MariaDB, Oracle, PostgreSQL and more.
Automation: CI / CD
To accelerate development to your benefit, we use state-of-the-art automation at all times during the development process. This guarantees quick, continuous integration of changes. We have found out best practises in coding and automation that work well for our software projects.
A speed boost for our development: We use Lombok for annotation-based boilerplate code generation and Spring Data Repositories for convention-based DAO code generation. We follow a git flow-based development process. By making use of feature flags and breaking down development “stories” properly, we keep branches short lived. We also automate logging, call statistics and timestamp synchronization, via custom interceptors.
We make use of a variety of automated testing technologies, for revising units, components and security constraints (JUnit, Mockito), as well as specification by example tests (e.g. using Cucumber) and end-to-end tests (e. g. using TestCafe or Cypress). Merges to the development branch automatically have to pass all quality gates (code analysis, tests) before being deployed.
Management of dependencies and build orchestration requires automation to function efficiently. Aside from Apache Maven, we found Jenkins Pipelines to work perfectly for us, also because they support Docker. In addition, we instrument automated database scheme updates using Flyway and static code analysis via SonarQube. CoreWallet based products can be fully dockerized and are easily deployable in any docker supporting environment, including clouds.
Architecture and Integration
Extensibility and good maintainability are key elements of our software. We achieve the best results using clean APIs and a strictly modularized implementation with every module consisting of 3 layers (controller, service and DAO). We prefer proven and secure solutions over novel but non-established technology.
The white boxes below indicate the building blocks provided by CoreWallet. They are easily extensible with your individual product features and business processes.
Via API, CoreExchange can be easily integrated into your backoffice and consumer UI. Alternatively, we also offer white-label UIs for you. Various payment providers and blockchains can be easily incorporated.
At trimplement, we use a monolithic architecture for CoreWallet and our other products, managing a consistent product core with low latency and high compatibility. Due to a strict domain-driven design, typical monolithic weaknesses like difficult maintenance and extendability don’t apply. On the plus side, the monolithic approach has clear advantages for our software projects:
For in-depth information about our technology and our technical specifications, browse through our documentation portals. There you will find information about our UI, APIs, Data Model, Licencing and much more.
Our software products and know-how already empower businesses all across the globe. Your project could be next. If you want to get us aboard, just leave your contact details and the timeframe within which we can reach you. We will reply as soon as possible.Contact us!