As it usually is in the 1st quarter of a new year, technology predictions and forecasts fly around the social streams. I’ve decided to join on this venture and provide some transparency on which technologies I’m currently using, as well as what I would recommend one invests in for near future. My hopes are that it provides some guidance for those curious on where they stand at the moment and what direction they may embark on for this year.
A Bit of Context Before I Begin
To understand this article, you first need to understand how I work. Part of my job is to assist companies and dev/ops teams to adopt the new and sometimes scary. This is what I do and what I live for. But this does not mean I just go off saying that everyone needs to start learning “machine learning” algorithms to produce custom artificial intelligent flows within their organisations (Say that 5 times fast 😎). While that potentially classifies as bleeding edge, it’s not realistic to start with and requires some serious skill. There needs to be a growth path to these kinds of offerings, and there is a lot one can learn and implement in the interim that will add tremendous value.
So, it’s vital you understand the following:
- My core focus is to find that middle-ground in new tech that businesses can adopt without too much red-tape and that teams can skill up on in a fairly short amount of time
- I don’t usually recommend full-stack platforms, but rather fragmented solutions that are platform-agnostic and integrate well with existing environments
- I also don’t recommend 1 framework over another if both provide excellent capabilities and are easy to use (e.g. ReactJS, AngularJS, VueJS)
Technologies and strategies I’m already using in the real world
Microservices, Containerization and Kubernetes Clustering
These tools and methodologies are very hot right now and are getting stronger. I started skilling up on containerization and microservices around 2 years ago. With Kubernetes gaining serious ground, everything aligned to form a powerful solution for many business environments, whether on-premise or in the cloud.
I highly recommend skilling up on all 3 as they are going to form the basis of many application deployments in the future to come. What’s more is they are not platform-specific and can run on major operating systems. For more detailed information regarding this tech, reference my Istio Blog Series.
A good understanding of DevOps is a must. It syncs up with Microservices and Containerization to form and end-2-end strategy for automating and managing distributed applications. For those new to this, I recommend starting with the theory and then moving on to the actual tools that make up the workflow and automation.
- The Phoenix Project – A Must Read Book which is also available in audio format
- Another great book by the same author is the DevOps Handbook
Integration, Integration, Integration
Learn to integrate with everything. Understand the basic principles of HTTP Requests, JSON, GET vs POST, authentication, etc. Most on-prem platforms are being upgraded to support an API first strategy, so now is really the time to get this under your belt. Agilit-e and Node-RED are brilliant tools to make adopting this technology a short and enjoyable process.
ReactJS for UI Design
As mentioned before, I don’t usually play one framework against the other if both provide awesome value. In my case though, I chose ReactJS as my go-to library for creating user interfaces for web browsers. If you’re currently using AngularJS, VueJS, or the like…great stuff (no real reason to move). These libraries/frameworks ultimately provide you with the means to create blazing fast user interfaces, which is what you want when you start deploying your applications to the cloud.
Cognitive User Experiences
If you know how to integrate with services like IBM Watson or Microsoft’s Luis, you can now start upgrading your line of business applications to better the user experience and automation around these applications. AI Bots can start managing many of the tasks that users face every day, and it’s easier than ever to adopt this technology.
This is, in my opinion, a great innovation in the API world. GraphQL sits on top of your current API layer and provides the flexibility to perform advanced queries that ultimately join together 1 or more of your existing APIs. The process for achieving this is relatively simple and it doesn’t require much rework of your existing Apis, if any at all.
If implemented correctly, you could even empower your users to interface with your apis, to perform advanced queries that can provide them with a result they’re looking for, that does not require you to create a new API every time there’s a new requirement. Obviously this is generally speaking as each environment is different, but hopefully you get the point.
Application and integration security
This is a no brainer and needs to be a skillset to be taken seriously. Too many applications are being developed without the required security measures. Now that many apps are either moving to the cloud, being containerized, or integrating with 3rd party services, it’s imperative that these apps are exhaustively and constantly tested for vulnerabilities.
Technologies and strategies I am busy adopting for the near future
Also informally termed as Internet 2.0, Blockchain will soon mature to the point where it will be used by many entities and it won’t just be for cryptocurrencies. A great example of this is Hyperledger Fabric. At Agilit-e we’re already busy with Blockchain strategies to provide various solutions to businesses and customers. More articles on this to follow.
Formless User Experiences
This one has me very excited. We already have clients investing in taking users out of capture forms and into a cognitive environment guided by AI bots. Formless UX will change the way business is done and will elevate the level of efficiency within line of business applications. Watch this space!!!
This is becoming easier and easier to learn and take on as time passes. Soon developers will not only make use of existing services (e.g. IBM Watson), but will have the skills and tech to easily develop their own machine learning algorithms and patterns that are strongly focused on the solutions they provide their customers and users.
IoT (Internet of Things)
Your AI bots are soon enough going to need contextual awareness to allow for better decision-making. Integrating microcontrollers, sensors, actuators with your applications is gonna be a must. We have access to the technology…the knowledge is freely available…the hardware is cheaper than ever…the time is right to start understanding IoT and using it in the real world.
A Final Note for learning Technology
Be careful what you spend time learning and try to avoid competing technologies. For example: If you know a web framework like ReactJS and are considering learning Angular instead (or vice versa), I would advise that you rather invest your time and effort exploring different/non-competing technologies. Both React and Angular are brilliant. Don’t worry about which one’s the best as the differences are usually minor.
Rather scale your skillsets across different areas that ultimately complement each other. In my case, a summary of what I am proficient in is:
- ReactJS (For User Interfaces)
- NodeJS (For developing most of my Microservices)
- Containerization (Docker)
- Clustering (Kubernetes)
- Service Mesh (Istio)
- Integration (Web APIs, MQTT, GRPC)
- Integration Flows (Agilit-e, Node-RED)
- DevOps and Automation
- Cognitive Computing
- Cross-platform Mobile Development
- IoT (primarily using bluetooth)
- Swagger/OpenAPI Specifications
- Python, ECMAScript, Java
- and so on…