Choosing Your Technology Stack
- MLT

- May 21, 2020
- 3 min read
Updated: May 6, 2021
Having trouble choosing your technology stack for your next software project? In order to help you in this process, I thought I would share a three-part series rationalizing the ‘technology stack’ that was used on Missing Link Technologies’ Prescriptive Decision Support System (PDSS) Project.
This IRAP funded project consisted of the following modules:
Core Acquisition Services
Core Data Services
Administration and Reporting Web Services
Data Analytics Pipeline and Big Data Services
I encourage you to take notes from our experience to help you choose the best technology stack for your upcoming project.
Part One
In this article, I will be focusing mainly on Core Services and how the ‘first level’ technology stack was chosen.
1. Define Highest Level Core Deliverables/Objectives
Must Run on Small Hardware such as Rasp. Pie
Must Run on Linux and Windows Operating System
Must be runnable in Cloud and scale both horizontally and vertically
Must be runnable in hybrid Cloud {public + private}
Support for leveraging key Apache Foundation Software
Must be of ‘Enterprise Quality’ - Centralized build - Automated execution of Unit Tests - Continuous Integration - Artifact versioning {Publishing and Retrieval}
Strongly typed language with clearly defined abstractions
Supports implementation of SOLID principles
Relatively easy to deploy
Minimize licensing costs
Provide good optics for company {external partners/academia}
Extensible with a clear pathway for handling fringe cases.
Supports creativity and experimentation without introducing unnecessary risk.
Able to implement stated business requirements.
2. Reflective Thinking
The first thing to notice is that the deliverables/requirements that I’ve listed are contextually relevant to my role as Chief Software Architect. My primary objectives are to ensure that our technology choices are fundamentally sound and contribute to satisfying the stated objectives.
The developer in me wants to list things like tail recursion, implicitly typed variables, all exceptions are unchecked, of instead of instance of…. but these nice to haves do not really contribute to stated objectives. Having said that, I am sympathetic to developers as 50+ % of my work hours are still devoted to writing software. For what it’s worth I will do my best to keep things progressive and interesting in other areas of development!
3. Technology Stack Part 1 – Decision Time
This is perhaps the easiest decision to make. In my professional opinion, the only 2 valid choices for enterprise server-side development are Java and C#. One could make a case for C++ and VB.Net but they were immediately discarded as not being relevant.
This winner is Java Open JDK 1.8!
Bummer, as C#, especially DotNet Core 3.0 is a superior development experience….is like Java + Maven but better and gone are atrocious project file, solution file, and confusing NuGet package junk. I also much prefer using the free visual studio code over the heavy and clunky Visual Studio for Professionals.
The rationale for choosing JAVA Open JDK 1.8:
By far best support for Apache APIS
Great driver for Maria DB
JDK Runs great on Raspbian
Alpine Image for Docker is top-notch
It is a better language choice for Academia. {this is changing though}
Statically Typed Language
Junit + Maven + JFrog + Git Lab is rock solid.{msbuild users never complain about maven}
Configuring Apache Stuff prepares you for configuring Kubernetes stuff
Encourages use of Linux Operating System
Simplifies runtime requirements as many supporting services are written in Java as well
Free IntelliJ IDE is quite good.
Can program in Scala and Kotlin which compiles to java byte code
Identified Risk Areas
Oracle’s new JDK licensing model may be problematic but MLT should be ok if we do all development, testing and production releases using OPEN JDK 1.8
Developer complaints
Stay Tuned for Part 2
In Part 2 of this series where I’ll define the next level of technical requirements such as which database technology(ies), MQ, DI container that we are going to use within our growing technology stack.
Chief Software Architect
Missing Link Technologies
Find this article on published on LinkedIn




Personalized merchandise can help local teams build recognition within their communities. custom sports products can include items designed around team colors, names, logos, or seasonal events. These products can be useful for players and supporters alike while creating a stronger connection with the organization.
Finding a nearby printing option can make ordering branded clothing more convenient. apparel printing near me may be useful for local businesses, schools, clubs, and event organizers who need coordinated garments without making the ordering process unnecessarily complicated.
이용 과정이 간단하고 업무 설명이 명확해서 부담 없이 시작할 수유흥알바 관련 후기도 많아 참고하기 좋았고 실제 근무 환경도 설명과 비슷해 만족스러운 경험이었습니다.
전문성과 친절함을 동시에 안산출장마사지 느낄 수 있는 서비스였습니다. 서비스를 통해 피로 회복과 편안한 휴식을 함께 경험할 수 있어 만족스러웠습니다.
Clean commercial spaces create a welcoming atmosphere for both employees and visitors. Investing in commercial building cleaning services helps businesses maintain a professional appearance while supporting a healthier workplace every day.