Software
Engineering

The diversity of devices from Cloud to the Edge has proliferated the number of languages, tools and technologies, each of which bring specialized advantages to the context. For instance, increased capability of client-side computing brought in front-end frameworks such as single-page/progressive web applications and the trend to increasingly opt for Microservices has led to emergence of lighter application frameworks. Similarly, better container management tools on the server-side make it easier to build cloud-agnostic solutions and ensure easier management of containers. Along with this, No-SQL databases increasingly contribute to the server-side architecture transformation.

More recent areas of expansion are the low-code/no-code platforms, and AI being used as part of the Dev-Ops cycle.

Due to the sheer number of technologies under the umbrella of Software Engineering, we are covering the tools that are more popular or have gained more traction in 2021. Many tools that emerged during 2020 and covered by the previous version of Tech Beacon are still around.

Software Engineering Invest Software Engineering Invest Software Engineering Invest
Java 11

Java 11 is the second Long-Term-Support (LTS) release after Java 8. With Java 11, Oracle JDK will no longer be free for commercial use, and users will have to choose the implementations they want to adopt. Some of the new features are running Java files with a single command, new utility methods in String class, nested based access control, flight recorder, among others.

C# 9.0

C# 9.0 is the latest release in the C# family and supported in .NET 5. The new version introduces record types, where the “record” keyword can be used to define a reference type that provides built-in functionality to encapsulate data. It also includes pattern matching improvements, fit and finish features, and “init” accessors that can be used instead of set accessors for properties and indexers. Additionally, the C# source generators is the most important feature.

Angular 12.0

Angular 12.0 is a major release with several breaking changes. It supports webpack 5.0. and updates end-to-end testing strategy. This release has simplified Angular mental model with optional modules and reduced the framework overhead by removing legacy. It now supports adding directives to host elements.

ReactJS

ReactJS is an open-source JavaScript library that provides a view for data rendered as HTML. React views are typically rendered using components that contain additional components embedded hierarchically specified as custom HTML tags. React Virtual DOM is a core feature of React that creates fast, scalable web apps. It is SEO-friendly, fast, UI test cases can be created easily, and the components can be reused.

Gremlin

Gremlin, is the graph traversal language of Apache TinkerPop, it’s a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application’s property graph. Every Gremlin traversal is composed of a sequence of steps that can be nested.

.Net Core 5

The .NET Core 5 framework provides a unified .NET SDK experience, with a single base class library (BCL) across all platforms and supports native and web applications across multiple operating systems for developing desktop, web, and mobile applications.

NestJs

NestJs is a Node.Js framework that mainly focuses on developing progressive server-side applications by using cumulative JavaScript. NestJs uses TypeScript, as it is the only programming language that includes Functional, Object Oriented and Functional Reactive components. NestJs offers a modular structure and arranges codes systematically in different modules that makes it easy to use external libraries Also, NestJs utilizes ExpressJs features. Developers can build highly scalable, loosely linked, testable, and easily manageable applications.

Single-spa

Single-spa is a framework for bringing together multiple JavaScript micro-frontends in a frontend application. Multiple frameworks can be used on the same page without refreshing and lazy load code can be used for improved initial load time.

GraphQL 15.5.0

GraphQL is a query language for APIs and a runtime for fulfilling queries with your existing data. GraphQL provides a complete and intuitively understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to develop APIs over time, and enables powerful developer tools.

Universal Windows Platform

Windows 10 introduced the Universal Windows Platform (UWP), which enables the Windows Runtime model to evolve and integrate into the Windows 10 unified core. As part of the core, the UWP now provides a common app platform for every device that runs Windows 10. This package can be installed on a wide range of devices.

Spring Boot 2.4.5

Spring Boot, the most prevalent Java framework, enables developers to build spring applications quickly by taking a convention-based approach. The Spring Boot ecosystem is vibrant as ever and can be used to build microservices-based applications. Spring Boot 2.4.5 supports Spring Framework 5.3.6, reactive web programming with Spring WebFLux/WebFlux.fn, HTTP/2 for Tomcat, Undertow, and Jetty. It has a brand-new actuator architecture and Micrometer-based metrics with exporters.

Istio

Istio is a Service mesh that addresses the challenges of monolithic applications transition to distributed Microservice architecture. Istio makes it easy to create a network of deployed services with load balancing, service-to-service authentication, monitoring, and more, with few or no code changes in service code. Istio provides behavioral insights and operational control over the service mesh as a whole, offering a complete solution to satisfy the diverse requirements of Microservice applications.

Kubernetes with Helm

Kubernetes is an open-source containerorchestration platform. It helps to manage containers, scale-up, and automate deployment. With applications moving to cloud and using containers as a basic deployment unit, Kubernetes comes in handy to manage the deployment of containers and leverage cloud resources efficiently. Helm is a package manager for Kubernetes. Helm Charts help you define, install, and upgrade even the most complex Kubernetes applications.

Apache Kafka

Apache Kafka is an open-source stream-processing software platform developed by LinkedIn. Apache Kafka is written in Scala and Java, and donated to the Apache Software Foundation. It provides a unified, high-throughput, low-latency platform to handle real-time data feeds. Kafka can connect to external systems (for data import/export) via Kafka Connect and provides Kafka Streams, a Java stream processing library. Kafka uses a binary TCP-based protocol optimized for efficiency and relies on a “message set” abstraction that naturally groups messages together and reduces the overhead of network roundtrip.

ELK Stack

“ELK” is the acronym for three open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine. Logstash is a server‑side data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to a “stash” like Elasticsearch. Kibana allows users to visualize data with charts and graphs in Elasticsearch.

Splunk

Splunk provides an easy way to analyze, aggregate, and get insights from machine data. It can analyze, monitor, and search any kind of data in near real time. Splunk has the capability to ingest, manage, and move any data to and from it, and can be used to investigate and explore data across a broader set of functions spanning from IT and security to business analytics.

Grafana

Grafana is an open-source analytics and monitoring solution. Grafana allows query, visualization, alert on data and enables visual representation of metrics. Grafana also allows custom dashboard creation, data exploration, and sharing of dashboards. Grafana supports over 30 open-source and commercial data sources such as Graphite, Influx, Prometheus, Elastic Search, and others.

xUnit.net

XUnit.net is a free, open-source, community-focused unit-testing tool for the .NET Framework. Written by the original inventor of NUnit, xUnit.net is the latest technology for unit testing C#, F#, VB.NET and other .NET languages. xUnit. net works with ReSharper, CodeRush, TestDriven.NET and Xamarin. It is also a part of the .NET Foundation, and operates within their code of conduct.

SpecFlow

SpecFlow is an open-source .NET testing tool that is part of the Cucumber family. It uses the official Gherkin parser and supports the .NET framework, Xamarin and Mono. You can use SpecFlow to define, manage, and automatically execute human-readable acceptance tests in .NET projects. Writing easily understandable tests is a cornerstone of the BDD paradigm. It helps build a living documentation of your system. SpecFlow integrates with Visual Studio, but can be also used from the command line (for example, on a build server). SpecFlow supports popular testing frameworks: MSTest, NUnit, xUnit 2, and MbUnit.

AzureDevOps

Azure DevOps provides version control (with either team foundation version control (TFVC) or Git), reporting, requirement management, project management (for both agile software development and waterfall teams), automated builds, and lab management, testing, and release management capabilities. It covers the entire application lifecycle and enables DevOps capabilities. Each Azure Devops service is open and extensible. Azure Pipelines has cloud-hosted pipelines for Linux, Windows, and macOS. You can build, test, and deploy any language or platform to any cloud.

Dart

Dart is a client-optimized language for developing fast apps on multiple platforms. Mature and complete Async-await for user interfaces containing event-driven code, paired with isolate-based concurrency. Dart has the Ahead of Time (AoT) compiler that compiles the code to a fast, native machine code. With AoT optimized code generation, Dart is used to develop almost all of Flutter.

Google Flutter

Flutter is Google’s portable UI toolkit used to develop natively compiled applications for mobile, web, and desktop from a single a single codebase. Organizations across the world use Flutter as it works with existing code, and is a free and open-source toolkit. Flutter is for developers who want a faster way to build beautiful mobile apps, or a way to reach more users with a single investment. It is now extended to support desktop apps as well.

Native Scripts

NativeScript is an open-source framework to develop mobile apps on Apple iOS and Android platforms. It helps access native APIs from JavaScript directly. The framework currently provides iOS and Android runtimes for rich mobile development and can be utilized in diverse use cases.

Akka & Play

Akka is a runtime simplifying the construction of concurrent and distributed applications on the JVM. Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency. For fault-tolerance, Akka adopts a production-hardened self-healing model to build ’Always On’ applications. Play Framework is a web application framework that implements the model– view–controller architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM Bytecode.

Quarkus

Quarkus is a Container-First Kubernetes Native Java framework tailored for GraalVM and HotSpot. Quarkus offers a unified reactive and imperative programming model to optimally address a wide range of distributed application architectures. Quarkus provides an effective solution to run Java in serverless environments, microservices, containers, Kubernetes, FaaS, and cloud environments.

Microsoft Visual Studio 2019 16.10 Preview

This IDE offers improved search results using fuzzy logic, cloud-powered technology, artificial intelligence (AI), and machine learning (ML). The latest version has enhancements related to code navigation, IntelliSense, refactoring, code fixes, and debugging, which saves time and effort on daily tasks, regardless of the language or platform. Several new and useful features for refactoring in C# make it easier to organize your code. Git is now the default version control experience in Visual Studio 2019. Live Share is a developer service that allows you to share a codebase and its context with a teammate and get instant bidirectional collaboration directly from within Visual Studio.

Luigi From Spotify

Luigi is a Python (3.6, 3.7, 3.8, 3.9 tested) package that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and much more.

Maria DB

MariaDB Server is one of the most popular open-source relational databases. It is part of most cloud offerings and a default in most Linux distributions. The recent new functionalities include advanced clustering with Galera Cluster 4, compatibility features with Oracle database and temporal data tables, allowing to query the data as it was at any point in the past. MariaDB turns data into structured information in a wide array of applications, ranging from banking to websites. It is an enhanced, drop-in replacement for MySQL. MariaDB is fast, scalable, and robust, with a rich ecosystem of storage engines, plugins and many other tools that make it versatile for a wide variety of use cases.

Outsystems

OutSystems is a low-code platform which provides tools to develop, deploy and manage omnichannel enterprise applications. It provides an easy-to-use interface that can be used to build web, mobile, and progressive web apps faster and integrate with existing systems. Outsystems also allows users to manage the entire lifecycle of the deployed apps.

AppSheet

AppSheet provides a no-code development platform for application software, which allows users to create mobile, tablet, and web applications using data sources like Google Drive, DropBox, Office 365, and other cloud-based spreadsheet and database platforms.

Mabl

Mabl is a testing tool that uses AI and ML for testing. It can scan web screens and run default tests common to all applications. Mabl uses ML to improve test execution and defect detection. Mabl provides many useful functionalities such as Auto heal that corrects test cases and does not break for typical changes in web UI. It can be integrated with any CI/CD pipeline and can version test cases. Mabl can perform visual testing and Selenium test cases can be imported directly.

Applitools

Applitools is an end-to-end testing platform powered by Visual AI. It can be useful in finding defects that are missed out by manual functional testing. It supports auto maintenance of test cases.

DeepCode

DeepCode is an AI software platform used as a code analysis tool. It learns from the vast amount of open-source code repositories and their change history to provide suggestions on how the code can be improved and alerts the user of vulnerabilities in the code. DeepCode supports JavaScript, Java, Typescript, Python, C, and C++ as of now.

VS IntelliCode

The IntelliCode extension for Visual Studio Code provides artificial intelligence-assisted IntelliSense for Python, Java, TypeScript, and JavaScript. It uses the developer’s current code context and patterns to provide the most likely correct API for use rather than just presenting an alphabetical list of members.

Mendix

Mendix is a low-code application development as well as a high productivity app platform that allows you to rapidly develop and continuously improve mobile and web applications at scale. The Mendix platform is designed to accelerate enterprise app delivery across your entire application development lifecycle, from ideation to deployment and operations.

Java 16

JDK version 16 is an open-source reference implementation of the Java SE platform, available as a production release, as of March 16, 2021. The new features in JDK 16 range from a second preview of sealed classes to records to concurrent thread-stack processing for garbage collection.

Immer

Immer is a tiny JavaScript library used to create an immutable state tree by modifying the current tree. It follows the 'copy-onwrite' mechanism where all changes are applied to a temporary draftState, which is a proxy of the currentState. Once all the mutations are completed, Immer will produce the nextState based on the mutations to the draft state. This means that you can interact with your data by simply modifying it while retaining all the benefits of immutable data.

Eleventy

Eleventy is a JavaScript static site generator. It converts code into static HTML files. It works with HTML, Markdown, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, and JavaScript template literals.

Bit

Bit is a product-ready solution for building Micro Frontends, which also makes it one of the most popular frameworks. Bit can be used to create and manage frontends through independent components. The Bit homepage by itself is a homage to how independent components must be seamlessly integrated to create a homogenous product.

Luigi

Luigi is another JavaScript framework for Micro Frontend that helps you with the process of creating an administrative UI steered by distributed and local views. This framework enables web applications to communicate with the Micro Frontends it is composed of. You can configure different settings such as authorization, navigation, routing, and UX elements to adjust the communication flow according to your requirements and avoid any breakdowns or glitches.

Apollo Federation

Apollo Federation is used for implementing GraphQL in a microservice architecture. It is an open-source architecture for building a distributed graph. It uses Apollo Gateway, for combining multiple GraphQL microservices into a single GraphQL endpoint.

.Net 6

The .NET 6 framework will enable you to build apps on various platforms and operating systems. In this version, the Android, iOS, and macOS capabilities that are part of Xamarin are integrated into .NET 6. With the multiplatform app UI (MAUI) framework, you can use the same set of code to develop apps on macOS, Android, and iOS.

Multi-Platform App UI

The .NET MAUI is an evolution of the increasingly popular Xamarin.Forms toolkit. It has shared more than 95% of its code and successfully helped small businesses maximize their development investment and have a leading edge over their competitors. The .NET MAUI allows developers to build apps for any device from a single-code codebase and project system, including desktop and mobile devices across operating systems.

JuiceFS

JuiceFS is an open-source POSIX file system built on top of Redis and object storage (Amazon S3), and is designed and optimized for cloud native environment.

HoneyCode (Amazon)

Amazon Honeycode is a fully managed service that allows users to quickly build powerful mobile and web applications - with no programming required. With Amazon Honeycode, users can use a simple visual application builder to create highly interactive web and mobile applications backed by an AWS-built database to perform tasks like tracking data over time and notifying users of changes, routing approvals, and facilitating interactive business processes. Using Amazon Honeycode, users can create applications that range in complexity from a task-tracking application for a small team to a project management system that manages a complex workflow for multiple teams or departments.

GeneXus

GeneXus is an AI-powered low-code, cross-platform, knowledge representation-based development tool, mainly oriented towards enterprise-class applications for web applications, smart devices, and the Microsoft Windows platform. It simplifies enterprise applications and sophisticated user experience.

Bubble

Bubble is a no-code platform, empowering users to build production-ready web apps. Bubble can be used to create interactive, multi-user apps for desktop and mobile web browsers.

LightBDD

LightBDD is an open-source behavior-driven development test framework that enables to write tests that are easy to read and track during execution, and the results of which can be summarized the test results in a user-friendly report, while allowing developers to use all of the standard development tools to maintain them. It integrates with NUnit, xUnit and MsTest. TestFramework frameworks and provides cross-platform support (.NET Framework / .NET Standard / .NET Core / UWP).

JBehave

JBehave is a Java-based, behavior-driven development (BDD) framework that makes BDD practices more accessible and intuitive to newcomers and experts. JBehave is a useful tool for behavior-driven development.

Forecast

Forecast is a full suite solution that helps professional services organizations finetune operations and finances using intelligent project automation. With a focus on increasing predictability and making projects profitable, Forecast provides the functionality to enhance productivity and planning with AI.

Q-Scribe

Q-Scribe is a revolutionary software used for testing construction materials, collecting field data, and managing projects. Because of its easy-to-use features and efficient workflow, it is preferred by project managers and technicians.

Kuma by Kong

Kuma is based on Envoy, and is a powerful proxy designed for cloud native applications. Service meshes are becoming an important part of cloud native architectures for invocation, monitoring, security, and reliability of micro service applications at scale.

Uizard

Uizard is a rapid prototyping tool used to automatically transform wireframes into prototypes, create custom style guides, export as Sketch file, download frontend code, and perform iterations as fast as possible. It helps transform low-fidelity wireframes into a high-fidelity wireframes with minimal effort and in a short timeframe.

Source{d}

Source{d} is an engineering observability platform that develops neural networks for the executives to analyze and understand actionable insights about codebases, software development processes, and teams.

Codota

Codota completes lines of code based on millions of open-source Java programs and helps developers code faster with fewer errors. Codota’s next generation AI code completion is Tabnine.

Moogsoft

Moogsoft, an AI-driven observability leader, provides intelligent monitoring solutions for smart DevOps. Moogsoft delivers advanced cloud native, self-service platform for SREs, developers, and operators to instantly identify issues and resolve them quickly.

Zenoss

Zenoss is an intelligent application and service monitoring that optimizes application performance in any environment—from simple infrastructure to the most complex, dynamic multi-cloud IT deployments.

CONFORMIQ For Testing

Conformiq has a model, which describes the system under test, or the product users want to test. Conformiq uses intelligent algorithms to automatically determine the necessary tests and test data, and generate scripts for automated execution.

AutonomIQ

AutonomIQ is a leading autonomous low-code platform for companies to improve quality, reduce risk, and manage compliance for their software as a service (SaaS) and digital products.

Functionize

Functionize is an intelligent testing platform for building AI-powered tests that self-heal and scale in the cloud. Functionize helps teams of all skill sets because no coding is required, however, users can customize tests with reusable code.