In our work we follow the tried and tested methodologies and processes which allow us to deliver much faster and with much higher quality.
We follow the best practices including SOLID, DDD, TDD, BDD, GoF Patterns, OOP, FP.
When writing software we create testing strategy and automate test suite for all levels and types of testing: Unit, Integration, System, Acceptance, UAT, Regression and Performance. And then make sure that these test are continuously testing the software. On every change.
When preparing releases of the code we make sure that they are less problematic and much shorter. We avoid all those unnecessarily long hours going step by step through a badly written document and just have one-click-deployment. We've automated deployments of many systems using tools like Ansible and Puppet.
We always go a step further in automation and are always ready to ship the software. By including all the best practices and processes we get software into a state where only minutes separate us from writing code to deploying it into production.
Writing software and handing it over to someone else does not work. We've seen it many times before. To make sure that the software is easy to support we take on the pain of supporting it throughout all the stages of the lifecycle. We write it, deploy, monitor and fix any issues that escaped into production.
We are focused on helping your business thrive, whatever technologies are necessary to achieve this goal. But if you're interested to know a bit more of what we've used in the past please read below...
If the code is running on JVM then we should be the people working on it. We've got intimate knowledge of the JVM and have amassed years of experience with languages like: Java, Scala, Kotlin, Groovy.
We have built great UIs on ReactJS and VueJS with both ECMAScript and TypeScript. If you need any work to be done in this area we can surely help!
Full stack development
Our team have got lots of experience building all types of software covering all layers of the application. We can help you create beautiful and intuitive User Interfaces with scalable and easy to extend backend services.
New trends in software creation allow better modularisation and independent, safe deployments of logical units of functionality. They also allow scaling your system and isolating it from the failures of other components. If you're looking to transform your application from monolithic architecture to micro-services, we're the people who can get you there.
Reactive functional programming
With Moore's Law reaching its limits we can no longer rely on increasing the power of CPUs to make our applications run faster or be able to handle more users. We have to instead become smarter about how we write the code to use the parallel processing power of modern multi-core processors. Using immutable data structures, pure functions, lock-free algorithms and reactive streaming with back-pressure allows maximizing the benefits of modern day parallel computing. We will help you benefit from the future of high performance computing.
Distributed and cloud computing
Some problems are easy and can be solved in milliseconds on one machine, some need hours on a single machine. But when split into small, independent units of work and run on a cluster of thousands of machines they can deliver the result in seconds. If you believe your application has reached its limits but your business needs it to perform much better to be able to scale, we can make it happen!