A field of computer science that refers to the ability of machines (e.g., computer systems, robots) to simulate human intelligence and perform human-like tasks. AI covers a wide range of technologies, including machine learning, computer vision, and natural language processing.
Code governing the server’s access points that allows two or more computer programs to interact. In other words, APIs act as an intermediary between software solutions: they let such solutions exchange data by sending requests and getting responses from each other.
Technology that enables overlaying real-world environments with computer-generated elements. Unlike virtual reality (VR), which creates a completely fictional and fully immersive experience, AR uses a physical world as a setting but augments it with digital objects.
A type of cloud computing service that allows outsourcing the responsibility of managing cloud infrastructure to a BaaS provider. BaaS also speeds up backend development by offering the necessary tools, out-of-the-box features, APIs, etc.
Data sets that are too complex to be handled by traditional data processing software. The key characteristics of big data are:
A DevOps best practice that allows automatically merging code changes from multiple sources into a single central repository. Before merging, all changes are validated by running builds and tests. If some changes don’t pass the tests, they don’t get merged. CI is the foundation for continuous delivery and continuous deployment.
The next step after continuous integration. It automates the deployment of all the code changes that were merged into the environment at the CI stage. In other words, continuous delivery automates the release process, allowing to deploy changes anytime.
A practice that goes one step further than continuous delivery. It allows all the changes that successfully pass the verification to be released right into the production environment. This means that these changes become visible to users straight away.
A field of study that aims to uncover hidden patterns and derive actionable insights from vast volumes of data using interdisciplinary methods and techniques (math, statistics, domain expertise, programming, etc.)
An advanced subset of machine learning. It is based on artificial neural networks modeled as an imitation of the way the human brain works. Deep learning can provide accurate results by processing large volumes of data. This technology is also capable of unsupervised learning, meaning that it doesn’t require labeled datasets to provide results; instead, it can detect patterns in the data itself.
A type of cloud-computing service that provides clients with computing resources (servers, networks, storage) on demand and over the internet. With IaaS, clients can pay for the cloud infrastructure on an as-needed basis instead of investing in physical hardware.
An integrated development environment refers to software that provides tools and facilities for building applications. These tools are combined into a single graphical user interface (GUI).
A system of connected devices that can “communicate” and exchange data with each other. The elements of IoT systems are physical objects that have sensors, software, and processing ability.
NB! The full name requires the definite article: “The Internet of Things,” but the abbreviation “IoT” requires no article.
A solution architecture style where systems are arranged as collections of relatively small and loosely coupled services. Each service is autonomous and implements a single business capability. Microservices architecture is a modern alternative to less flexible and maintainable monolithic architecture.
A solution architecture style based on a similar approach as microservices architecture but refers to the frontend, not the backend, of an application. In micro frontend architecture, separate components (i.e., independently deployable “child” frontend applications) are combined into a greater whole (i.e., “parent” frontend application).
A traditional application architectural style where the entire application is built as a single, indivisible unit. In monolithic architecture, all components are interrelated and depend on each other, which often makes the application clumsy and hard to maintain when it grows.
A type of software architecture where several customers share the same cloud computing resources. That said, the data of each customer is isolated, so customers aren’t aware of other “tenants.”
A version of a new product that has the minimum sufficient set of features to validate a product idea and get feedback from early adopters. Insights collected at the MVP stage are used to improve the product during the further iterations of the product development cycle.
An interdisciplinary field that combines linguistics, computer science, and AI. NLP is concerned with giving computers the ability to process and “understand” human language in both spoken and written formats.
A type of cloud computing service that provides on-demand and over-the-internet environment and tools for building and deploying applications.
A prototyped solution built to test the practical feasibility of a product idea before full-fledged software development. In other words, POC shows if the product can actually solve particular problems of the target audience.
A proxy server is an application that acts as an intermediary between a user’s device and a server to which a user is sending requests. When using a proxy, a user’s device does not connect directly to a server that can fulfill a user’s request. The request is first directed to a proxy server, and the proxy server then sends it to the server that provides the requested resource.
A software delivery model where instead of installing an app on a device, users can simply access it over the internet. SaaS is usually licensed on a subscription basis and hosted centrally by a vendor, so users don’t have to worry about its management or maintenance.
An agreement between a contract creator and the recipient that takes the form of a computer program hosted on a blockchain platform. It consists of predetermined terms that are executed automatically once certain predefined conditions are met.
A “skeleton” that serves as a foundation for building software solutions. Basically, it provides a set of blueprints programmers can customize and fill out with code to meet the needs of a particular product. Frameworks may contain software libraries.
A collection of pre-written and reusable components (modules, objects, classes, functions, etc.) When building an application, programmers can just refer to these components within the code instead of building them from scratch.
Special, platform-specific software that provides a way to run code — usually for cross-platform support. It sits between the operating system and your program. JVM, .NET, and Node.js each have a runtime. On the other hand, C and C++ don’t have one — you need to compile your program into an executable file specific to the operating system you’ll be running it on.
A space (i.e., a series of screens) where users interact with a program. A UI enables users to navigate a digital product and execute its different features. Sometimes also called GUI - graphical UI.
The way a user “experiences” a product. It includes general ease of use, intuitiveness, the perceived value of a product, as well as its efficiency in performing user actions.
A way to create an encrypted connection between a user’s device and the internet network. This connection ensures the protection of the user’s data and privacy.
Technology that provides users with a fully immersive experience in a simulated 3D environment. Users can interact with virtual reality and computer-generated objects inside it with the help of VR headsets and special electronic equipment.
An electronic device that can be worn either as an accessory or an item of clothing. Smartwatches and fitness trackers are the most popular consumer wearables. Wearables are one of the fast-evolving categories of the IoT.