If you asked a group of programmers what technology is best for banking software development, the answer would surely be "It depends." And it's hard to disagree with it, because the choice of technology depends on the goal it is to achieve. However, taking into account the specificity of the banking industry, stringent security standards and the need to comply with legislation, we have selected 7 technologies that are most often used in banking.


Cobol is a kind of banking IT legend. Anyone who has had contact with this topic at least for a moment associates it as the long-standing foundation of all banking systems. Although nowadays programmers sometimes make fun of this language, it turns out to be wrong. According to Reuters data, as much as 43% of today's global IT banking systems are created using COBOL, so as you can see, it is still doing quite well. The name COBOL is an acronym for Common Business-Oriented Language and the fact that it works great in achieving business and commercial goals largely explains its use in banking. In addition, COBOL also has a simple and understandable syntax, which means that even a non-technical person can figure out a lot while reading the code.


C # is a high-level object-oriented language developed by Microsoft. Despite the passage of years, it still ranks high in the popularity rankings of programming languages. It works great in creating complex systems and large projects, which in a way explains its place in this article. What distinguishes C # is primarily the fact that it is a technology from Microsoft's stable, which has at least two big advantages. The first is, of course, the fact that one of the technological giants is behind this language, with a huge budget for development and a lot of support. The second is undoubtedly great backward compatibility (a feature of the software, thanks to which - despite the change in functionality - the new version allows cooperation with the entire environment of the previous version and all its components). In the context of the desired predictability, Microsoft openly defines the direction of development of its technology, thanks to which the changes we will face over the next few years are clear and predictable.


Although C / C ++ was created in the eighties of the last century, its wide range of applications means that many large systems and applications still rely on it. C ++ is distinguished by the fact that it works well for creating complex, multi-level systems due to the specific compiler. The C ++ compiler is type-compliant, so it is more difficult to make errors in code written in C ++, which leads us to greater security of applications written in C ++.


Java is the undisputed queen of banking technology that needs no introduction. It is perfect for projects that require a very high level of security and high efficiency. In addition, it is characterized by high stability and is often used in large implementations. What distinguishes Java is its independence from architecture. The resulting code is independent of the operating system and processor, and is performed by the so-called Java virtual machine that (among other things) translates universal code into code adapted to the specifics of a specific operating system and processor. Such versatility means that wherever it is possible to install a virtual machine, it is also possible to use Java.


JavaScript, or rather the framework of this language, Angular.js, is the most frequently chosen technology when creating the front-end layer of banking applications. JavaScript allows you to build web applications in the SPA - Single Page Application technology, which greatly facilitates the intuitive use of the application. As with other languages, Javascript is a very stable language that has been supported for many years. Considering the fact that front-end technologies change almost overnight and there is a large stratification among them, in the context of stability and predictability, JavaScript seems to be the most optimal choice.


Python is a technology that is most often used in the field of artificial intelligence and machine learning, as well as in data analysis and data science. It is a language of very wide application, and considering that banks are increasingly using AI algorithms, it is not surprising that Python is growing in popularity in this industry. Python is mathematically friendly, and therefore it "gets along" well with financial algorithms. Interestingly, many organizations in the area of ​​fintech and core banking often use Python to analyze data, and taking into account the growing need for technological cooperation between the banking industry and other quasi-financial institutions, it can be expected that its popularity in this area will increase even more.


What is very significant in the case of banking technologies is the fact that long-supported and relatively predictable languages ​​are usually chosen for the development of software and individual components. As banking systems are complex and extensive, banks rarely choose to rewrite them from one technology to another. Therefore, the key is stability and the guarantee that the language will be supported as long as possible, often at the expense of the technological development of the industry. One of the challenges for banking in the coming years will surely be finding a compromise between the use of proven solutions, security and stability, and the possibility of developing and using the latest technologies.

A revolution in the approach to outsourcing - now it is done differently

The last weeks have been marked by negative changes and drastic business moves - due to the pandemic, mass redundancies, shifts and limiting the costs of conducting business have become a reality. Although the situation in the IT industry is in many aspects more stable, experts predict that also here inevitable changes can be expected.


Although in February 2020 IDC predicted an increase in the IT global market by as much as 4.3% per annum, the March forecasts suggest that at the end of 2020 it will fall to 1.3% at constant exchange rates. All due to the difficult situation of companies that, in the face of limited budgets, are looking for alternatives in the area of employment as well as cost optimisation allowing for survival and support in the achievement of further business goals.


Whereas, as pointed out by experts, in the face of global coronavirus-related problems, some changes may take a surprising turn. Although, at present, most sectors of the economy are in a very difficult situation, it may turn out that the experience related to the epidemic will be a motivation for a large number of companies to implement measures to facilitate functioning in a crisis situation. This can be perceived as a chance for a considerable development of automation and robotisation areas, and, as is confirmed in the Antal survey, for the increase in the popularity of outsourcing services, primarily in the IT area.

Companies are changing their approach to outsourcing

Everything sprouted already in 2018, when companies began to change their perception of the role of external services in business. Previously, the main motivation when using outsourcing was the intention to reduce costs and shift the company resources for other purposes. Today, this approach is revolutionising, because according to the Deloitte report, entrepreneurs stopped looking at outsourcing only in terms of back-office support, but began to treat it as a way to gain market advantage - by transferring knowledge and technology between the client and the service provider. And while cost optimisation is still an extremely important criterion, it has ceased to be the key criterion. This tendency seems to be confirmed by the conclusions of the GSA (Global Sourcing Association) report on trends in outsourcing, according to which today decision-makers focus much more on the overall value for the organisation, and not just on cost reduction. Therefore, the main goal of outsourcing is to support the client in gaining a competitive advantage by changing the way of operation and implementing actions that increase the level of flexibility, efficiency and effectiveness of the organisation.


Changes driven by the pandemic

Although changes in the outsourcing provider - client relationship have begun earlier, the current situation may accelerate their pace. - The economic stagnation caused by the coronavirus pandemic meant that the continuation of a large number of projects in their current form is called into question. Today, many companies are also struggling with a situation that they cannot suddenly, overnight, simply give up technologically advanced projects due to contracts, deadlines or external financing. Therefore, in many of them it has become necessary to control expenditures on tasks and balance company resources in order to survive the next few months - says Piotr Hanusiak, the CEO of INCAT.


He explains that currently most companies decide to completely suspend internal projects, so technical and project teams are dismissed, and modified principles are applied to HR and recruitment departments. However, this is a short-term solution - it allows to survive a difficult time, but generates a big problem when the situation with the pandemic becomes stable and project activities are resumed. Then it may turn out that there is a lack of IT specialists who will lead the project, what's more - there are also no recruiters who could undertake to assemble the teams again. And it should be remembered that recruitment, especially in the IT industry, is exceptionally expensive, not to mention the need to match candidates to the specificity  of the project and the technological stack, which is not only time-consuming, but also simply difficult. Then it may be a reasonable solution to outsource projects to an external provider, but in such a way as not to lose influence on their final shape. And that is why the cooperation models available so far seem definitely insufficient. Piotr Hanusiak believes that in order to survive the crisis caused by the pandemic, it is necessary to modernise the approach of outsourcing service providers and modify cooperation models offered previously. As he says:


- Over the past 20 years, dynamics of the IT industry development has been more than impressive. Business goals are changing, new  opportunities and possibilities appear, but above all, the needs, created by the technology itself,  are evolving. We participate in this process and that is why we can notice those moments when it is necessary to change common models of cooperation. Now, even more than before, it is necessary to create solutions as comprehensive and flexible as possible not only to offer the service, but above all to support clients in the process of technological changes. Therefore, modern outsourcing models must combine the advantages of classic, previously known forms, ensuring the client control over the process, while removing the burden associated with creating a software or a product. In this model, the service provider ceases to be only the service provider - his role evolves to the role of a technology partner.


Outsourcing companies will share responsibility

What distinguishes the modern model of cooperation from other forms of outsourcing is that the provider takes responsibility for the project on an equal footing with the ordering entity. In technology projects, the business risk is almost calculated in the process, because even the best planned project is not free from unforeseen situations. Where, the unforeseen situations usually take a variety of forms: from errors in the code, through unexpected costs, to staff rotations. Each such problem means additional stress, time and money, and each implemented change extends the stretched to its limits schedule of works. In modern models, the risk of the project is to rest on the shoulders of the service provider, and the customer should remain in control of the process. This sharing of responsibility will make the service provider become a partner in the project, rather than a subcontractor, although only the customer will have the full right to the software created and only he will be able to modify, develop and benefit financially from the product. Since, he will be increasingly moving away from the payment model based on the time worked and the value of the tools used, in favour of a fixed price for the project, which will allow to optimise costs and control expenses.


  • Undoubtedly, a time of changes that are currently difficult to predict, is ahead of the IT industry. One can definitely say that the situation related to the epidemic within the next few months will force many entrepreneurs to change the business model and reorganise the flow of costs. And although the changing paradigm of outsourcing is a great challenge for both clients and service providers, the model of modern cooperation, in which the scope of activities and responsibility of the provider is expanding, while maintaining supervision by the client, will be increasingly popular - summarises Piotr Hanusiak.


Why is microservices architecture so effective? The answer is simple

Over the past few years, we can notice the growing popularity of microservice architecture, which is slowly pushing out the monolithic architecture that has dominated so far. Microservices, in contrast to monoliths, is a series of many, independent services and processes that create applications. Microservices are a convenient solution when creating an advanced system or large applications - it allows for quick project implementation and parallel work on several modules at the same time. Although such giants as Netflix or Uber based their solutions on microservices, this is not the only thing that makes this approach unique.



Microservices, in contrast to the architecture of monoliths, allow easy modification of functionality in the design. Since each microservice is an independent element of the application, its subsequent components can be changed, supplemented and removed in such a way that it does not affect the functioning of the whole. Therefore, problems such as cyclical change of automatic tests or the risk of stopping the entire application when implementing the next module are eliminated.


Easy integration

Open API, used in the microservice architecture, allows for quick and trouble-free integration with other services. A solution such as API Gateway mediates communication between modules, enabling the convenient adjustment of the API for specific clients, without the need to place it in every microservice.



The modular approach allows you to react quickly and effectively to the dynamics of the business environment - changing business requirements does not mean restructuring the entire application, but only the module that relates to the given functionality. Furthermore, in the case of high loads, microservices allow for an efficient increase in the number of instances that balance redundant traffic in the application, which also addresses the problem of performance.


Quick implementation

Microservices provide the possibility of a quick MVP system release. With this architecture, it takes only a few weeks to implement a fully working, basic application that is ready for further development. On the other hand, the addition or modification of existing modules does not complicate the clients' ability to use the system in any way, because it is less invasive than the monolith architecture, and does not affect the core of the application.


Independent development and autonomy

The distributed architecture also means the independence of design teams. It does not have a central management center, thanks to which the flow of information is smoother. Each team works on "its" application element and does not have to consider the databases or architecture of the other modules. Interestingly, microservices allow you to develop each element in a different technology and language and maintain sites on separate servers and in repositories. Independence understood as such, solves the problem of technical debt and increases the efficiency of the system itself.


Of course, microservices are no medicine for all evil. At the moment, there is no architecture that is free of defects, and at the same time suitable for any type of application. It is no different with microservices. If you are considering implementing a microservice architecture, the key question you should ask yourself is not "Is?", but "How?"-this is because improper development of technical requirements and structure or lack of careful handling of traffic between servers, can ultimately do more harm than good. Neglecting these issues at the planning stage can cause a classic outpouring of a child with a bath, and as a result, it will most likely turn out that the architecture, which was supposed to facilitate many activities, actually spends all night sleeping. It is worth considering the support of a technical partner with experience in creating solutions based on microservices. Thanks to this, you will bypass many implementation difficulties and at the same time, be sure that you will have an efficient release and system that can be modified flexibly to adapt to rapidly changing business requirements.