Konstantin Golub
Verified Expert in Engineering
Software Developer
Konstantin has been a professional software developer since 2007, and since 2010 has enjoyed working as a freelancer. With a Master’s degree in Robotics and Automatics from Omsk State Technical University, he applies his expertise when developing dynamic web applications.
Portfolio
Experience
Availability
Preferred Environment
Eclipse, IntelliJ IDEA, Linux
The most amazing...
...thing I’ve learned is the understanding that the only constant thing in client requirements is their changeability.
Work Experience
Senior Software Engineer
Automation Anywhere
- Developed an API Gateway for IQ Bot microservices.
- Developed a logging system based on ELK (Elasticsearch, Logstash, Kibana).
- Developed the Slushbox/Pipeline Engine scripting language.
- Designed a complex workflow for the team's continuous integration (CI) platform.
- Reviewed the code, improved the code quality, and code test coverage.
- Developed the V8-engine bot command for the Automation Anywhere Enterprise Platform.
Java/Spring Framework Back-end Developer
Fiinlab
- Implemented the importer tool.
- Implemented the automated DB dumping.
- Implemented a set of REST endpoints to allow installing a Dropbox daemon remotely on a headless host.
- Fixed and improved existing REST endpoints.
- Enhanced the system stability by implementing integration tests.
Senior Software Developer
Kandu
- Implemented the gateway microservices, short living key manager, client token generator, and a framework for functional testing of microservices.
- Improvements and enhancements of the front-end web application.
Lead Software Developer
ATX Systems
- Designed and developed the back-end application.
- Set up the project build infrastructure.
- Reviewed code of other developers.
- Interviewed candidates on opened positions for the project.
Senior Software Developer
GreenKey Tech
- Developed a chat tool of the TVB application.
- Redesigned and improved the caller panel.
- Implemented the application auto updater tool.
- Developed a conversation recording uploader tool.
Lead Software Developer
InfoRisk
- Designed and implemented the Sender and Daemon nodes of the Grid.
- Implemented a data transport library and web services client modules.
- Implemented Compressed and Repeating measures of an OLAP server.
Senior Software Developer
Refinary29
- Designed and implemented a RESTful API.
- Implemented the data extraction tool.
- Improved the admin control.
- Enhanced the predicate editor.
- Set up the project build infrastructure.
Senior Software Developer
2-Plan
- Developed action interceptors.
- Designed and developed service and persistence layers of the Work 2-gether application.
- Built mindmap plug-in.
- Created a swim lane layout manager.
- Developed RPC sub system.
- Improved the architecture of the 2-Plan application.
Senior Software Developer
IntuneInvestor
- Implemented an RPC module.
- Developed the user interface of the web application.
- Implemented lots of functional tests.
Lead Software Developer
Yambina LTD
- Created unit and functional tests.
- Designed the architecture of EDMUI.
- Developed EDMUI application.
- Built portlets of General Security web app.
- Enhanced EDMEngine and GeneralSecurity.
Senior Software Engineer
EPAM (Kharkiv, Ukraine)
- Implemented SalesRegion functionality.
- Improved existing features.
Senior Software Developer
EclipseSP
- Developed a report portlet and a report generation service layer.
- Integrated BIRT into the Negentis Platform server.
- Implemented Document Management Portlet.
- Created document type and document attachment upload services.
- Built GWT-to-EJB communications and cash flow projection import/export services.
- Integrated Cash Flow Entry tool into Evolv system.
- Developed an excel based test framework.
Software Developer
Paragon Software Group (Moscow, Russia)
- Made performance enhancements.
- Refactored layout generation for 6 sites.
Software Developer
Luxoft (Moscow, Russia)
- Developed several Jython scripts to test performance of the system.
- Created Jasper based report generation tool.
- Built message queue measurement library.
- Developed SAP Portlets.
- Refactored and improved the server side code.
Junior Software Developer
Luxoft (Omsk, Russia)
- Implemented JavaScript controllers and Struts Actions for an air traffic management application.
- Contributed to development of FIR/UIR control panel.
- Developed most of the dialogs and panels of the warehouse, product, and customer management tools for an eCommerce application.
- Updated unit tests of the business controller components.
Experience
V8 Engine Bot Command for the AutomationAnywhere Enterprise Platform
Pipeline Engine
My responsibility was to design and to develop the Pipeline Engine domain specific language (aka Slaushbox). At the end we got a scripting language that allows to define a JMS interface to listen to. When a message arrives a pipeline gets selected to handle the message. While the pipeline executes it may invoke several components which connect the pipeline with a particular machine learning solution.
We supported Java connectors to call Java libraries. Thus we got a possibility to run a java code without the need to build explicitly a Java application. We were able just to inline a Java snippet inside our DSL to call a third party library, mainly for image pre processing.
Our REST connector supports the retry behaviour with a backoff strategy and allows calling third party APIs, e.g. Google Vision API.
Python connectors allows to inline a Python code in the pipeline engine DSL.
Application connector allows executing external applications and reading their output for further analysis and parsing in a component.
Gateway-2 for IQ Bot
For the new version the hexagonal design pattern, also know as ports-and-adapters, was chosen. This approach allowed to separate the domain model from controllers and repositories and to achieve a more clean and flexible aggregation of data originating from other microservices.
Apart from the business data aggregation, the gateway is able to collect status details of each microservice with their dependencies to provide the whole system health state.
Another issue with the previous implementation was that it didn't support model validation nor API versioning. A set of custom annotations was implemented to allow the input and output model validation against the model schema.
This way the system API became cleaner and what is also very important, now it's easier to extend and to maintain this API.
Mifos for Fiinlab
The client has a SAP based system which allows them to export loan details into XLS documents. I implemented a tool which extracts client and loan details from XLS documents, transforms the data to make them suitable for Mifos and then loads the data into Mifos. The tool provides detailed error information for further analysis. The error reporting was a crucial requirement since Mifos like any financial tool has very sophisticated validation algorithms and incoming data may not every time be compliant with the requirements. For that reason I tried to implement a tool that would report errors in the most descriptive way providing as much details as possible.
I also develop an automated DB dumping to make Mifos store its DB on a schedule and upload the dumps to a third party storage. The client decided to store 10 latest DB dumps on their Dropbox account.
Kandu Internet Shop
The client application itself doesn't talk to a data storage and is not responsible for any data manipulation, instead it connects to a gateway application. This is another part of the system I also worked on. It's goal is to redirect incoming requests to appropriate dedicated services (microservices). One of such services is the Question module. This module provides a functionality to review products available on the shop. Other modules have their own specific functionality.
All parts of the system are connected to each other by RESTful APIs based on Spring MVC.
RiskPass Portal
InfoRisk OLAP Server
One of the server features is the repeating measures. They allow to save some memory in case if loaded data blocks satisfy some conditions. It supports data ranking to allow associating ranks with particular data. Expression distillates allow to inject java code in the configuration. And that makes the aggregations (used by ranking as well) highly flexible.
Trader Voice Box
It also has a chat feature, which allows to send messages over the TVB network or using external Jabber, AIM or Yahoo networks. There are many IM clients but this one is more comfortable for traders and brokers.
Babel
It consists of two applications, a simple server application running in Jetty environment (but can be deployed into any Java web container or application server) and a very sophisticated JavaScript application which manipulates DOM and SVG.
Grid
Initially it was based on JGroups, but that didn't fit our needs, so a custom transport layer based on Java NIO was developed and that seems to be a good solutions since it gave the independence of third-party software, total control and high flexibility.
Work 2-Gether
Main features of the application are the swim lane task planner and the project board.
EDM Designer
2-Plan
It is based on the plugin architecture, so depending in the project needs you may add different functionality that helps you to manager your project in the most comfortable manner.
The most used plugins are the Kanban and the Waterfall plugin.
Besides that it has several graphical editors that help building and managing project and team dependencies.
CashflowEntry plugin
It also allows exporting data from Evolv and displaying financial information related to each loan split on either obligator or instrument level.
QMX
I-Synd
BAM
WebGenerator
SAP Enterprise Portlet
The plugin also allows associating different company details with graph nodes which then can be used to filter companies. That helps to simplify the graph structure and to make it easier to read and edit.
Biometria
ElasticPath Administrative Tool
AirPlan
CachingSession.java
The session defines and maintains the connection lifecycle: every connection should be acquired, used, and released or invalidated within its session. If, during connection usage, an error happens within the connection, this connection should be invalidated rather than released. Several connections may exist within the same session.
Sessions are introduced and are only used by the default transaction implementation. Other transaction implementations may use their own approaches to maintain connection lifecycles.
Skills
Languages
Java, SCSS, SQL, HTML5, CSS, TypeScript, JavaScript, Python, Jython, Scala, OWL
Paradigms
REST, Microservices, Design Patterns, Kanban
Platforms
Linux, Docker, Kubernetes, Eclipse, JBoss, WebSphere MQ, Oracle Database, WebSphere, Azure
Frameworks
Spring, Spring Boot, Redux, Jakarta Server Pages (JSP), Apache Struts, Hibernate, OSGi, Restito, JSF, GWT, Eclipse Modeling Framework (EMF), Akka, Angular, Swing, Jersey, JSON Web Tokens (JWT), jBPM
Tools
ELK (Elastic Stack), Gradle, Jenkins, ANTLR, Git, Apache Ant, Eclipse RCP, Apache Tomcat, Ivy, Jetty, Apache Maven, Eclipse IDE, IntelliJ IDEA, Servlet, JFace, SLAMD, GXT, Spotfire, JBoss Drools
Storage
PostgreSQL, MySQL, SQL Server 2017, IBM Db2, Microsoft SQL Server, Apache Derby, H2
Other
OOP Designs, Mailchimp API, SIP, OAuth, Web Security, CORBA, SAP, MDM, Resin, Liferay, TIBCO, CDO, Prefuse, Eclipse Zest, Web Services, SVG, Agile Sprints, HornetQ, Enterprise Java Beans (EJB)
Libraries/APIs
React, JDBC, JMS, jQuery, YUI, Oracle Java Cloud Services SaaS Extension (JCS-SX), DWR, JAX-RS, Backbone.js, spray, Apache Stanbol, JGroups, JasperReports, Java Servlets, D3.js, SWT, RESTEasy
Education
Master's Degree in Robotics and Automatics
Omsk State Technical University - Omsk, Russian Federation
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