I have been looking back over this year’s client projects and internal investigations. A few highlights stand out.

1. Microservices Evolve

Microservices continue to be a popular choice, but we see a growing sophistication. Some of our projects are combining the modularity encouraged by microservices with the ease of a single repository and deployable. We are influenced by Martin Fowler’s MonolithFirst idea and thinking about the Actor Model. Among ourselves, we have used the term “Modern Modular Monoliths.” In particular, we have been using the frameworks from Moleculer and Vertx.

2. Targeting the Cloud

More and more of our clients have have shifted to the cloud. Enterprises are embracing hybrid cloud and startups are using fully-hosted solutions. AWS is the most frequent choice, including many of their integrated service offerings. Many projects are using Terraform for Infrastructure as Code. Even for those projects that aren’t targeting a cloud-hosted environment, almost all are making heavy use of Docker.

Every one of our non-enterprise clients has embraced a cloud-based development suite. Project documentation, through source code management and CI/CD automation come as a service. Most are using GitLab and GitLab CI, with the Atlassian Cloud and Bitbucket being a close second choice. In some cases, we’re seeing both suites in play for Jira and Confluence followed by Gitlab and Gitlab CI.

3. Full stack JavaScript

This year even more of our clients opted for full-stack JavaScript. Most chose React on the front end and Node on the back end. In previous years, this would not have been a surprise with small startups. The change this year is that some mature financial institutions support JavaScript for back end development.

Intelliware has been happy with React and a group of supporting tech including Redux, Saga, and Formik. On the back end, we’ve had a good experience so far with Moleculer.

4. Functional Programming

We’re seeing more interest in Functional Programming, as it makes its way in to many projects via React in the front end or Spring’s reactive stack in the back end. We like the idea using an appropriate library to add immutable collections with supporting functions. This way you can start to migrate your existing object-oriented or imperative code. Consider vavr for Java, rambda for JavaScript, or arrow-kt for Kotlin.

A group of us at Intelliware have been improving our functional design skills by studying Scott Wlaschin’s book “Domain Modeling Made Functional.” While the F# code looks great, we’re more likely to use Kotlin on a project. Take a look at the work by Intelliware alum Mike Wilkes who is translating the F# examples from Wlaschin’s book into Kotlin with arrow-kt..

5. Robots!

As announced, BIONIK partnered with Intelliware earlier this year. It’s always engaging to work on software that integrates with a physical device, particularly in the healthcare space. And everyone likes talking about robots.

The technology landscape continues to change. I’m looking forward to the surprises that 2020 will bring.