Oleg Volkov, Developer in Kiev, Ukraine
Oleg is available for hire
Hire Oleg

Oleg Volkov

Verified Expert  in Engineering

Software Developer

Kiev, Ukraine
Toptal Member Since
November 25, 2016

Oleg is an ANSI C application developer who spent many years developing software for the banking area. He is skilled in low-level programming techniques necessary for the development of robust applications. He also has mastered object-oriented programming paradigms in C++ and Java. He took part in the development of web applications using PHP and Java Servlets, writing client/server socket programs, and is very familiar with the Oracle Database.



Preferred Environment

Subversion (SVN), Git, GCC, Linux

The most amazing...

...system I've worked on performed a synthesis of simple algorithms according to a desired way of interaction with an environment.

Work Experience

Leading Specialist

2003 - PRESENT
Unicorn LLC
  • Developed the client side of a document workflow system NbuMail.UC for Ukrainian banks in C++. Took part in the development of the server side of that system in ANSI C.
  • Created the database browsing/editing framework in C++ based on wxWidgets.
  • Developed the client-sides of the bank information system, and the loans and deposits management systems in C++.
  • Developed the system "Bank Reporting" for the Deposit Guarantee Fund of Ukraine in Java.
  • Took part in the development of server modules of the automated banking system in ANSI C.
  • Maintained the client-bank interaction system in Delphi.
Technologies: C++, ANSI C, Linux, C, Swing, Oracle, Flex/Bison, Delphi, PHP, PL/SQL, MySQL, Java Servlets, Enterprise Java Beans (EJB), JasperReports, LibC, wxWidgets, Standard Template Library (STL), FreeMarker, JavaCC, JNI, Bash Script, Sockets, XSLT, Libxml2, OpenSSL, Oracle Cloud Infrastructure (OCI), BeanShell, GCC, Memory Management

The Document Workflow System NbuMail.UC

NbuMail.UC is a system for working with electronic mail messages exchanged between Ukrainian banks and the National Bank of Ukraine (NBU). Those messages have a format and exchange protocol different from the internet email.

The system receives and sends messages and supports various activities related to them. It consists of a server side written in ANSI C and a client side written in C++.

The server side includes:
• A proprietary database management system.
• An application server.
• Application-specific components that the server executes.

The client side supports:
• Viewing the message journal.
• Search, open, and edit messages.
• Performing multicast message postings.
• Manage users, message boxes, and user access to them.
• Performing system administration tasks.

A database browsing/editing framework based on wxWidgets is the engine on the client side. It inter-operates with the proprietary database management system and provides a GUI for working with tables and forms described in XML. The framework supports extensions triggered by various events located in the dynamic link libraries.

I fully developed the client side of NbuMail.UC, including the database browsing/editing framework.

The System "Bank Reporting" for the Deposit Guarantee Fund of Ukraine

This system is in Java which allows economists to analyze the health of Ukraine’s banking system, to take appropriate actions on individual banks to prevent their insolvency, and to determine how to indemnify depositors if a bank becomes insolvent.

The first part of the system loads into the Oracle Database about 40 types of statistical reporting files regularly received from the National Bank of Ukraine and banks that are participants of the Deposit Guarantee Fund of Ukraine. The second part builds ~200 financial reports based on information in those files.

The server side of the system consists of about 300 EJB components, and its client side uses Swing GUI and JasperReports as the reporting engine. The system supports the calculation of economic indicators represented as a large table of arithmetic and conditional expressions that use information from statistical reporting files loaded into the Oracle Database. A set of JNI functions perform a data export to MS Office.

After completing project development phase in 2003 with a team of Java developers, I solely maintained the project for more than a decade. During that time, I extended the system by about 150 financial reports.

Various Programs in Assembler x86 on MS-DOS

While studying at high school until a few years after graduation, I wrote a number of programs that were compilable by the Microsoft Assembler.

Many of those programs worked with peripheral devices directly via I/O ports without using BIOS. The peripheral devices included the serial port with a modem connected to it, the parallel port with a printer connected to it, the floppy disk controller, the hard disk controller, and the video card.

One of the programs put a matrix printer in graphic mode and could print characters on the printer using fonts currently loaded in the video card—thus giving a possibility to print texts in national alphabets.

Another program saved the current state of a video card as fully as possible to allow a resident program to pop-up when a specific key combination was pressed and restore the screen on returning to a program currently running in the foreground.

Two other programs read and wrote specified sectors on a floppy and hard disk.

Another technique implemented was the execution of a program step-by-step by setting the CPU trace flag with dumping the trace log to a file.
1995 - 2000

Specialist Degree in Informatics

Taras Shevchenko National University of Kyiv | Faculty of Cybernetics - Kiev, Ukraine

1995 - 1999

Bachelor's Degree in Applied Mathematics

Taras Shevchenko National University of Kyiv | Faculty of Cybernetics - Kiev, Ukraine


LibC, wxWidgets, JasperReports, Standard Template Library (STL), Pthreads, Sockets, Libxml2, OpenSSL, Java Servlets


Subversion (SVN), JavaCC, Flex/Bison, FreeMarker, LaTeX, GCC, Git


Linux, Oracle, Oracle Cloud Infrastructure (OCI)


ANSI C, C, Delphi, Java, C++, Assembler x86, Bash Script, XSLT, PHP, BeanShell


Swing, JNI




Enterprise Java Beans (EJB), Memory Management

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.


Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring