Image Source

This short article will focus on the main characteristics of Virtual Desktop Infrastructure (VDI) as opposed to the traditional Terminal Services.

Using Terminal Services

Terminal Services are also known as Remote Desktop Services, whereby software and entire desktops are made available to remote client machines that support RDP (Remote Desktop Protocol). Thin clients are handled through shared sessions with the central server.

Characteristics of TS include:

  • All users have the same software with the same configurations
  • Maintenance (updates, patching, troubleshooting, etc.) is handled in a single point
  • Each user has a limited access to the shared pool…

Image Source

This article will explore what creational design patterns are, why we need them and what different variations exist.

The What & The Why

Creational design patterns are the mechanisms for object creation in software engineering. They control the way objects are created and hence, increase the flexibility of the system.

The main aim of these patterns is to separate the creation of objects from their usage, thereby improving the quality and re-usability of your code.

To understand this better, consider the following code that does not follow the basic creational design patterns:

public class Bird {
Beak beak;

public void eat() {;


In this short article, we will explore what the C4 model is, what its different levels are and how one can apply it in practice.

C4 is an abstraction-based model for a diagrammatic depiction of the software architecture.

It consists of four main levels (diagrams):

  • Container,
  • Component,
  • Code.
  • consist of one or more containers (mobile apps, web apps, etc.),
  • with each container containing one or more components,
  • each component being implemented by some code elements (classes, functions, etc.)

Image Source

Solution Architect Definition

The formal definition of solution architecture, as provided by Gartner (2013), is as follows:

A solution architecture (SA) is an architectural description of a specific solution. SAs [Solution Architects] combine guidance from different enterprise architecture viewpoints (business, information and technical), as well as from the enterprise solution architecture (ESA). (Source)

To put it into simple terms, solution architects transform business, information and technical requirements into a solution, and then describe that solution architecturally. In order to perform this job, solution architects need to be well-versed in both the context of the enterprise and the details of technical design & implementation.

Image Source

Stuck on Mars …

Imagine you are Mark Watney stuck on Mars for five years with barely any food left to sustain your existence. You decide to start growing crops indoors without soil and sunlight (somehow) to have something to eat. Wouldn’t it be great if you had some sensors installed that could help you analyze and track the usage of water, the condition of the soil and crops? You could then determine the optimal harvest time and chemically intervene in case of deteriorating conditions. …

Image Source

In this article, we will explore what Terraform is, what its workflow looks like and how it can be applied in practice.

Terraform is …

A tool to manage your infrastructure as code, including:

  • compute instances,
  • networking, etc.

Specifically, Terraform will generate a plan on how to reach the desired state of the infrastructure for your project and…

Image Source

In this article, we will explore the key characteristics of different cloud service models and their limitations. Treat this article as a useful brief summary for those looking for a brief introduction to what types of cloud services exist and how they differ from one another.

SaaS (Software-as-a-Service)

Key characteristics of this cloud service model are:

  • Users do not need to install, manage or upgrade the software — the vendor does it for them.
  • Data is securely stored in the cloud.
  • Examples…

Image Source

Unions make us strong — except that not all unions do (at least, in the programming world).

In this article, we will explore union types in C language. We will start with a brief introduction to union types and we will move on to such important concepts, as discriminated and free unions (as well as the disadvantages of using them).

Brief Intro to Union Types

Unions are used to store different types of data in the same memory region. This saves storage space in a way similar to time-sharing the only hard copy of “Freakonomics” available in the library. Time-sharing in this case is possible…

Image Source

DevOps is a philosophy, a culture, a new way of working, a digital transformation, a methodology, a strong collaborative end-to-end environment and so much more. DevOps is currently transforming the way digital (and not only) works, paving the way to even more innovation.

In the pre-DevOps era, there were usually two separate IT teams in any organization:

  • the operations team which actually checked the performance of that software, maintained it and if (God forbid!) …

Image Source

Programming in C/C++ is generally deemed to be very flexible and powerful due to the existence of pointers (among other things we’re not going to cover here!).

Pointers are great — they provide you with access to memory, help to decrease the execution time of your program, are used to construct complex data structures (like trees, linked lists, etc.) and so on. Yet, not everything that shines is gold — pointers are in fact a dangerous “species” that can lead to such problems, as program crashes, data corruption, unnecessary code…

Narmin Jamalova

Computer Science & Data Analytics Master Student @ADA & @GWU

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store