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.
Portfolio
Experience
- Java - 13 years
- Linux - 13 years
- Oracle - 12 years
- ANSI C - 10 years
- C++ - 9 years
- Assembler x86 - 8 years
- wxWidgets - 8 years
- Bash Script - 4 years
Availability
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
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.
Experience
The Document Workflow System NbuMail.UC
http://unicorn.kiev.ua/nbumailuc/znakomstvo/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
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
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.
Education
Specialist Degree in Informatics
Taras Shevchenko National University of Kyiv | Faculty of Cybernetics - Kiev, Ukraine
Bachelor's Degree in Applied Mathematics
Taras Shevchenko National University of Kyiv | Faculty of Cybernetics - Kiev, Ukraine
Skills
Libraries/APIs
LibC, wxWidgets, JasperReports, Standard Template Library (STL), Pthreads, Sockets, Libxml2, OpenSSL, Java Servlets
Tools
Subversion (SVN), JavaCC, Flex/Bison, FreeMarker, LaTeX, GCC, Git
Languages
ANSI C, C, Delphi, Java, C++, Assembler x86, Bash Script, XSLT, PHP, BeanShell
Platforms
Linux, Oracle, Oracle Cloud Infrastructure (OCI)
Frameworks
Swing, JNI
Storage
PL/SQL, MySQL, PostgreSQL
Other
Enterprise Java Beans (EJB), Memory Management
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
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring