Professional Documents
Culture Documents
Backend Technologies
Backend Technologies
A client-side scripting language primarily used to make web pages interactive. In other
words, it's responsible for the 'behavior' of a website, i.e. how HTML elements
JavaScript
and CSS style animate and move around on the page.
JavaScript
Back-End Node.js, Sails, Express.
frameworks
A flexible and fast build tool based on Node.js, it provides an asset pipeline for applications
Broccoli
that run in the browser.
An open source navigation scripting and testing JavaScript utility for the PhantomJS, it
CasperJS eases the process of defining a full navigation scenario and provides useful high-level
functions.
The browser and BDD/TDD assertion library for Node.js, it aims to be an expressive and
Chai
easily approachable way to write assertions for JavaScript project testing.
A base part of the JavaScript language that is supported on both the client and the server
Core.js
side.
A JavaScript framework for building data-intensive, cross-platform web apps for desktops,
Ext JS
tablets and smartphones, with the largest set of UI components.
A flexible Node.js web application framework for building and developing web and mobile
Express.js
applications.
A JavaScript library that allows to render templates in the browser, Dust templates are
Dust.js
compiled to JavaScript for speed of execution.
A Node.js feature rich framework for building scalable applications and services, it focuses
Hapi
on configuration over code, is intended for large teams and large projects
Stands for Node Package Manage. The default package manager for the JavaScript runtime
npm environment Node.js, an online repository for the publishing of open-source Node.js
projects.
A free and open-source library written in JavaScript that is based on MVVM pattern that
Knockout helps developers in building websites. This lightweight source works with any web
framework
An open source Node.js web application framework, it is minimal and flexible, allows to
Koa use a robust set of features for web and mobile apps, provides a simple API to build
websites, webapps and backends.
An open-source JavaScript software stack for building websites and web applications
MEAN
using MongoDB, Express.js, Angular, Node.js.
An open source JavaScript Web Graphics Library, used as HTML5 2D rendering engine,
PixiJS has canvas fallback. Aims to provide a fast lightweight 2D library that works across all
devices.
A headless (without GUI) browser used for automating web page interaction, providing
PhantomJS JavaScript API it enables automated navigation, screenshots, etc, it used to run browser-
based unit tests in a headless system.
A predictable state container for JavaScript apps. Helps programmers write applications that
Redux
run in different environments and are easy to test.
A file and module loader for JavaScript used to break large applications into smaller blocks
RequireJS
of manageable code, allows managing dependencies between modules.
A JavaScript framework, which was created by Sam Stephenson in 2005 as part of the
Prototype
foundation for Ajax support in Ruby on Rails.
A standalone unit testing library for JavaScript, it supports spies, stubs, and mocks, has
Sinon
cross browser support and also can run on the server using Node.js.
A JavaScript MVC framework for building web apps. Aims to simplify MVC and integrates
Spine JS well with CoffeeScript. It is simple, lightweight, has minimal dependencies and
approachable source code; great for teams.
JavaScript
JavaScript
A term for library/framework free JavaScript. Using "VanillaJS" means using plain
Vanilla JS
JavaScript without any additional libraries like jQuery.
PHP
Twig (templating), PHPUnit (testing), Doctrine (ORM), PHPStorm (IDE), Composer, Sma
keywords
PHP
Symfony, Zend Framework, CakePHP, Yii, Laravel, CodeIgniter
frameworks
Bitrix A PHP-based platform for the development of web apps. Popular in the former Soviet
Framework Union region, two famous products are: Bitrix Site Manager & Bitrix24.
Or the 'server-side'. It is basically how the site works, updates and changes. Refers to
Back-end
everything the user can’t see in the browser.
An open-source web platform for PHP, it helps to build highly affordable web application
CakePHP
using the MVC approach.
A multi-featured testing framework for PHP, can handle unit, functional, and acceptance
Codeception testing of web applications, it's powered by PHPUnit testing framework, allows to test
different kinds of user perspectives and site scenarios.
A PHP dependency management tool, created to facilitate installation and update of pro
Composer
dependencies, it is used in all modern PHP frameworks (Symfony, Laravel).
Stands for Content Management System. A software program/set of tools that allows us
CMS to create, manage and store content without having to touch the code.
Examples: Joomla, Drupal, Wordpress, Magento (for e-commerce).
Drupal A free, open source web content management platform written in PHP.
An open-source content management system for publishing web content, building websi
Joomla and other online applications. It is built on a MVC web application framework that can be
used independently of the CMS, it is written in PHP.
Stands for HipHop Virtual Machine, engine for the PHP and Hack programming languag
HHVM based on just-in-time compilation, works as a self-contained web server that executes P
scripts.
A PHP distributed application framework for work with multiple processes, it allows
Gearman applications to complete tasks in parallel, it is multi-threaded, allows large tasks to be do
more quickly.
An open source web development platform. Uses Linux as the OS, Apache as the web
LAMP server, MySQL as the relational database management system and PHP as the object-
oriented scripting language.
An open source PHP web application framework that allows to create customized full-
Laravel
featured web apps quickly and easily. Follows the MVC architectural pattern.
An open source, a general-purpose distributed memory caching system, used for speed
Memcached
up dynamic web applications, database-driven websites.
A PHP mock object framework used in unit testing, allows to use a simulated version of
Mockery
certain objects within unit tests, where objects are passed into methods as dependencie
Kohana An open source PHP framework for building web apps, it uses the MVC architectural
pattern, its main advantages are: security, weightlessness, simplicity.
Phalcon An open source, high performance, full stack framework for PHP written as a C-extensio
A PHP testing framework, used for unit-testing of the code, its focus shifted from defining
PHPSpec
input and output to defining behaviors using BDD.
A PHP micro web framework used for the creation of small web applications, simple sing
Silex
file apps, or can be extended into a full stack MVC framework, it is lightweight.
PHP
A PHP-based web templating framework used as a tool for separation of
Smarty
concerns, business logic from its visualization.
An open source PHP framework for developing web apps. A new Symfony minor
Symfony version comes out every 6 months, one in May and one in Nov. As of
May 2017 its latest version is Symfony 3.
A template engine for PHP that makes it more object and less messy, it
Twig
streamlines display logic using less syntax than normal PHP.
Zend
An open source, object-oriented web application framework for PHP 5.
Framework
Ruby
Rails/Ruby on Rails, Sinatra, Padrino, JRuby.
frameworks
Ruby testing
RSpec, Capybara, Watir, Cucumber.
tools
Ruby
Passenger, Capistrano.
deployment
An open source Ruby tool for running scripts on multiple servers, used in
Capistrano deploying web applications, automates the process of making a new version of
apps available on web servers.
A web-based Ruby test framework that automates web application testing for
Capybara
behavior-driven software development.
The Ruby implementation that runs on a Java Virtual Machine, can integrate
JRuby
with Java code, hosted within Java application servers.
An open source web application server for Ruby that handles HTTP requests,
Passenger manages processes, resources, enables administration, problem monitoring,
etc.
A build automation tool, used for specifying tasks and describing dependencies,
Rake it is written in Ruby and can be used with Ruby projects, allows to use Ruby
code to define tasks that can be run in the command line.
A testing tool for Ruby, created for BDD, the most frequently used testing library
RSpec
for Ruby in production apps, helps developers to write better code.
A Ruby package manager used for library packaging and distribution, designed
RubyGems
to easily manage the installation of gems (Ruby programs and libraries).
An open source library and domain-specific language for quickly creating web
Sinatra
applications in Ruby.
Java
A general-purpose, object-oriented programming language used for web
development, it is concurrent, class-based, Java is one of the most popular
Java programming languages in use, particularly for client-server web
applications object-oriented, used for e-commerce website, android apps,
scientific/financial apps, etc.
Java EE
JSP, Servlets, EJB, JMX, JAF.
frameworks
Java SE
Swing, Play, JavaFX, JSF, Netty, Spring MVC, Wicket.
frameworks
Java ORM
Hibernate, EJB, JPA.
frameworks
Java testing
jUnit, TestNG, Cactus, EasyMock, Mockito, Cucumber.
tools
Java build
Ant, Maven, Gradle.
tools
Java
Tomcat, JBoss, GlassFish, WebLogic.
deployment
A Java library and command-line tool, enabling to compile, assemble, test and
Apache Ant run Java apps. Can be used for building both Java and non-Java applications
(e.g., C or C++ apps).
An open source ORM framework that simplifies the use of relational databases
Hibernate
in Java apps, presenting relational data as simple Java objects.
A Java e-commerce framework built on top of Spring framework, uased to
Hybris build great customer experiences with a top commerce solution, handle high
traffic.
An open source Java reporting engine that can write to a variety of targets,
such as: screen, a printer, into PDF, HTML, Microsoft Excel, RTF, XML files
JasperReports
etc, can be used in Java-enabled applications, including Java EE or web apps,
to generate dynamic content.
A set of media and graphics packages that enables to design, create, test,
JavaFX debug, and deploy rich client apps that consistently operate across different
platforms.
Stands for Java Platform Standard Edition, provides the core functionality of the
Java SE
Java language, used for developing desktop applications.
Stands for Java API for RESTful Web Services, is a Java based programming
language API, provides support in creating web services according to
JAX-RS
the REST architectural pattern, simplify the development of web service clients
and endpoints.
Java
Stands for Java Database Connectivity, an application program
JDBC interface specification for Java, used for connecting programs written in Java to
the data in popular databases, it is oriented towards relational databases.
A free IDE for Java development supplied by Oracle Corporation. Covers the full
JDeveloper development lifecycle and is aimed to simplify app development by providing a
visual, declarative approach.
A unit testing framework for ReactJS project, which is provided and used by
Jest Facebook. It is able to capture snapshots of React trees or other serializable
values to make UI testing easier.
An open source Java Web server used for machine communications within larger
Jetty software frameworks, it serves Java-based web content such as servlets
and JSPs.
Java Flight Recorder is a tool for collecting diagnostic and profiling data about
JFR
running Java application.
JMC An advanced set of tools that enables analysis of the data, which is collected
by JVR.
Stands for Java Messaging Service, an API that provides the facility to create,
JMS send, read messages and provides reliable, asynchronous communication, it is a
part of the Java Platform, based on JavaEE.
Stands for Java Management Extensions, a technology used for managing and
JMX
monitoring applications, system objects, service-oriented networks, etc.
Stands for Java Native Interface, a programming framework that defines a way for
JNI managed code written in the Java programming language to interact with native
code written C/C++.
Stands for the Java Persistence API. A Java specification for accessing,
JPA persisting and managing data between Java objects / classes and a relational
database.
Short for Java Virtual Machine. Converts Java bytecode into machine language to
JVM
execute it on the computer.
Gradle An open source, advanced general purpose build management system, built
on ANT and Maven repositories, the initial plugins are primarily focused around
Java, Groovy and Scala development.
A dynamic, object-oriented programming language for the Java platform that can
be used to combine Java modules, extend existing Java apps and write new ones
Groovy
as well as to test Java code. Its code is more compact than Java code because it
doesn't need all the elements that Java needs.
An open source set of development tools for building and optimizing complex
GWT browser-based Java applications, and deploy them as JavaScript. It is used by
products at Google, including Google AdWords, Orkut etc.
A statically typed programming language for the JVM, Android and the browser
Kotlin that is fully interoperable with Java. Being around for 5 years, finally reached its
production-ready version 1.0 in 2016.
An open source Java full-text search library which makes it easier to add search
Lucene
functionality to an application or website.
A build automation tool used primarily for Java projects, based on POM (project
Maven object model), simplifies the build process, used for dependency and
documentation, hosted by the Apache Software Foundation.
Stands for Open Service Gateway Initiative, a component framework for Java
used for development modular software programs and libraries, main benefit is an
OSGi
ability to control which versions are used and proper module isolation, it provides a
very mature component system that works in a big number of environments.
A full open source portable implementation of JAX-RSspecification, provides a
RESTEasy
Java API for RESTful Web Services over the HTTP protocol.
Java
A Java classes used to extend the capabilities of servers that host applications
Servlets accessed by a request-response programming model, are commonly used to
extend the applications hosted by web servers.
Spring A framework, which provides MVC architecture and ready components can be used
MVC to develop web applications.
Spring A system for easy setup of new Spring applications and for getting things done
Boot faster. Helps to use the existing Spring functionalities with minimum efforts.
A free, open-source, MVC framework for creating elegant, modern Java web
Struts
applications.
An open source web server and servlet container developed by ASF. Provides a
Tomcat
'pure Java' HTTP web server environment for Java code to run in.
Stands for Zebra Crossing, a Java library for decoding barcodes (the core/
ZXing and JavaSE modules), also contains applications for Android, Google Glass,
a JavaEE web app, and a GoogleWebToolkit-based encoder application.
C# (.NET)
A type-safe object-oriented language from Microsoft that enables developers to
C# build a variety of secure and robust apps that run on the .NET Framework; a
hybrid of C and C++.
A web framework connected with HTML, CSS, JS: ASP.NET Web API (2),
ASP.NET
ASP.NET MVC, ASP.NET Web Forms (old school).
A data access technology in .NET framework that provides a bridge between the
ADO.NET front end controls and the back end database, provides a set of components for
creating distributed, data-sharing applications.
A an open-source web application framework developed by Microsoft, combining
ASP.NET
the features of MVC architecture, Agiletechniques and best parts of ASP.NET
MVC
platform it implements the model–view–controller pattern.
An addictive Inversion of Control container for .NET Core, ASP.NET Core, .NET
Autofac
4.5.1+, Universal Windows apps, and more.
C# testing
nUnit, SpecFlow, MStest.
tools
C#
.NET 1.0 - .NET 4.5.*
frameworks
ORM
NHibernate, Entity Framework, Linq2SQL, ADO.NET.
frameworks
Stands for Open Web Interface for .NET, an open-source project, interface
OWIN standard between web apps and web servers, allows web apps to be decoupled
from web servers.
An open source framework designed for writing and running unit tests for .NET
NUnit languages, it is ported from JUnit, provides a console runner which is used for
batch execution of tests.
Stands for Microsoft Build Engine, the build platform for .NET and Visual Studio,
MsBuild helps to automate the creating a software product (compiling the source code,
packaging, testing, deployment, etc).
A .NET testing tool that acts as a command-line utility, used to perfom unit tests
MStest
created in Visual Studio.
Roslyn (.NET Provides open-source C# and Visual Basic compilers with rich code
Compiler analysis APIs, allows to build code analysis tools with the same APIs that
Platform) Microsoft is using to implement Visual Studio.
Offers a single language – C#, class library, and runtime that works across all
Xamarin 3 mobile platforms of iOS, Android & Windows Phone, while still compiling
native apps which are performant enough even for demanding games.
A framework which allows developers to create native user interface layouts
Xamarin.Forms
that can be shared across iOS, Android & Windows Phone.
The IDE with a big amount of functions for creating Mac, iOS, Android
Xamarin Studio
applications.
Python
A general purpose, high-level, object-oriented programming language, exсept
creating Web apps and dynamic Web content, also used for scientific computing,
Python big data, computer graphics, system automation, scripting etc. Has simple easy-
to-use syntax, available for many operating systems. Was created in the late
1980s.
Python
Django, Flask, Pyramid, Pylons, SQLAlchemy, web2py, Kivy, Tornado.
frameworks
A set of tools for scientific computing, which combines code execution with the
Jupyter creation of the document in real time. These files may contain custom text,
(IPython) mathematical formulas, graphics, video and any other things that a modern web
browser can display.
A cross-platform web framework written in Python, it is built with a small core and
Flask easy-to-extend philosophy, it can be used for building complex, database-driven
websites, starting with static pages.
A Python plotting library that provides quick way to visualize data from Python
matplotlib
and publication-quality figures in many formats
A Python library, used as a general-purpose array-processing package to
NumPy
manipulate large multi-dimensional arrays and matrices.
An open source Python framework for building web application and sites,
Pylons
it comes with project templates that help boot-strap a new web app project,
A lightweight Python web framework, used for flexibile and rapid web
Pyramid
development, allows to write complex software taking less effort.
TensorFlow An open source highly scalable machine learning library built by Google.
Stands for Virtual Environment, a working tool for creating an isolated Python
Virtualenv environments, allows to work on multiple Python projects that
have different requirements, to coexist on the same computer and to add and
modify Python modules without access to the global installation.
Free and open source full-stack framework for rapid development of secure and
Web2py
portable database-driven web applications; written and programmable in Python.
A GUI Python wrapper built around the wxWidgets, it provides window types and
wxPython controls, all implemented with a native look on the platforms, allows to create
programs with a highly functional GUI easily.
C++
A general-purpose, object-oriented programming language that is primarily used
C++
for creating large-scale apps; an extension of the C language.
C++ STL, Boost, QT (for user interfaces), wxWidgets, Loki, POCO, OpenCV (for
frameworks imaging).
A set of modern libraries based on C++, provides a support for tasks and
structures such as number generation, multithreading, image processing,
Boost
regular expressions, unit testing etc, these libraries are platform independent
and support most popular compilers.
A command-line tool, detecting bugs that your C/C++ compiler doesn't see. Can
Cppcheck check non-standard code including various compiler extensions, inline assembly
code, etc.
A high-level shading language based on C/C++, which can be used for coding
GLSL
short programs, called shaders.
A "perfect" hash function that, for a given set of user-provided strings, generates
gperf
C/C++ code for a hash table, a hash function, and a lookup function.
A C++ software library that implements typelist, functor, singleton, smart pointer,
Loki
object factory, visitor and multimethods tools.
A cross-platform GUI library for C++, used for developing application software
Qt for desktop, embedded and mobile; except graphical user interfaces, can also
develop command-line tools and consoles for servers.
Stands for Standard Template Library, a set of C++ template classes, provides
STL general-purpose templatized classes and functions that implement commonly
used algorithms and data structures like vectors, lists, queues, and stacks.
A suite of debugging and profiling tools for Linux that can automatically detect
Valgrind memory management & threading bugs, and profile your programs in detail. The
current stable version is Valgrind-3.11.0.
C
A structure-oriented programming language which is used for developing system
C
applications that form a major portion of operating systems such as
language
Windows, UNIX and Linux. Was invented in 1972.
Kore An easy to use web application framework for writing scalable web APIs in C.
Scala
Scala
Akka, Cats, Lift, Play, Scalaz, Slick, Shapeless, Spray.
frameworks
Akka HTTP An Actor-based toolkit for interacting with web services and clients.
A Scala functional programming library that is more modular and is using some
Cats
newer tools to make its code base easier to work with.
A thin layer of purely functional basic blocks atop of Finagle for building
Finch composable HTTP APIs. Aims to provide the developers with simple and robust
HTTP primitives being as close as possible to the bare metal Finagle API.
http4s A typeful, purely functional HTTP library for client and server apps written in Scala.
Lift 3.0- A free and open-source web framework that is designed for the Scala
RC1 programming language.
An open source web app framework, written in Scala and also usable from e.g.
Java, which follows the MVC architectural pattern and aims to optimize developer
Play 2.5.0
productivity by using convention over configuration, hot code reloading and display
of errors in the browser. Play 2.5.0 was released in March 2016.
Stands for Scala Build Tool, it provides facility to compile, run, test, package
sbt projects, used for Scala and Java projects, similar to Maven or Ant, but its focus
mainly the Scala language.
SBT An open source build tool for Scala and Java projects (similar to Java's Maven or
0.13.12 Ant), that is used by the Lift & Play frameworks. Released in July 2016.
A type class and dependent type for generic programming for Scala, used for
Shapeless
precise types, provides increased checking and safety at compile time.
Spray A server and client Scala library that allows to quickly create REST interfaces.
Other Programming Languages
An object-oriented programming language for Web site animation, is based
ActionScript on ECMAScript, used to create onscreen environments - games, e-commerce
applications.
A programming language that compiles to JavaScript. It means that you write your
CoffeeScript code in CoffeeScript, run it through the compiler, and the output is JavaScript that
can be served up to your browser.
Stands for Visual Basic Script, a general-purpose, lightweight and active scripting
VBScript language developed by Microsoft, has a very simple syntax, is the primary
scripting language for Quick Test Professional (QTP).