My name is Nikolai Golub. I am a software developer from Saint Petersburg, Russia. Currently, I am Fullstack/Python Developer at Toptal where I work with web technologies and help people build awesome projects to make the world a better place.

I enjoy programming and learning new things. I like to get things done with minimum effort and maximum quality. Programming and technologies are not my only passions; I like windsurfing and playing football from time to time. I also enjoy discovering new genres of music and watching a good movie.



Web Portal for Electric Vehicle Charging Company

EverCharge offers solution for charging electric vehicles in condos and apartments. EverCharge handles all aspects of charging process from installation to maintenance, insurance and billing.

I solved following problems in this project:

  • Billing. It had been automated using Stripe API
  • All data from devices are stored in database. I also implemented set of tools for data validation
  • Automated signup flow for new customers, which includes signing of agreement and handling initial payment via Stripe
  • Implemented customer portal, where EverCharge clients could see various information about service usage
  • Implemented admin portal, where EverCharge employees can inspect and control different aspects of service

I always care about quality of service I provide, so code base for this project had been covered by automated tests and regularly checked by linters, such as pylint and PEP8.


Django helps pets stay happy

Walkio is a web service that connects people with professional pet sitters. This application has been developed using the Django framework. My duties were to discuss new features with the business owner, performance improvements, deployment and bug fixing. When I first joined the project there was no unit testing at all so I increased coverage to 80% and added selenium tests, making the development process much more stable. One of the features required significant changes to the database structure so Django migrations were very helpful. The other major issue was connecting to a 3rd party API. To solve this problem I facilitated communication between the customer and the sitter using Twilio, automatic payment processing using Stripe and background checking for new sitters using

Positive Technologies Application Firewall

High level of security

Application Firewall is a solution for protecting web application on HTTP level. Nowadays, these solutions are advanced and protect from a wide variety of attacks as well as providing more features other than just filtering. These include virtual patching, reporting and DDoS protection. Application Firewall developed by Positive Technologies is, in my opinion, one of the best on the market. Working with a firewall web application requires a lot of effort because of the knowledge needed in all aspects of the HTTP protocol and particular characteristics of web servers and applications.

My role in this project was to develop automation tests for a wide range of cases from attack analysis to configuration tests and UI checking, to communicate with the development team and consult with them regarding performance testing.

My achievements on this project:

  • Developed wrapper for Selenium based UI tests which simplified all UI tests
  • Created tests for logging subsystems which gave me a lot of experience in Elasticsearch engine
Performance Dashboard

First step to the data analysis

I have worked in the field of software performance testing for some time and one of the major problems is found in the area of data analysis. Ringcentral is a big cloud service provider with a sophisticated system architecture which results in a lot of data after each test. Problems arose when we realised that we cannot have all raw data in place and the requirements have been constantly changing it is difficult to compare more and more data. As a result, I came up with a solution which we called "Performance Dashboard".

I learnt Django and PostgreSQL because freedom on presentation layer and fast development are essential to us. Python is widely used inside our company so knowledge sharing is not a problem. We spent a significant amount of time discussing the database structure. The results of the performance tests were similar to the results of the functional tests but there was at least one more dimension and different ways of aggregation of that dimension with the single answer "passed" or "failed". We finished up with a working product that significantly reduced the time spent on results analysis. It was built using Memcached, RabbitMQ, Celery and SciPy for complicated aggregations. It is connected to the Zabbix, TestLink and Jira APIs which integrate the product into the company processes.

Other projects

I always like to try something new

I have developed a desktop application for tracking time in JIRA. It is based on PyQt. In that project I realised why Python 3 is much better than Python 2 - the reason being that Python 3 can use non-English Strings.

I have contributed to the ScraPy framework which is also very innovative and makes collecting information from web-sites extremely easy.

I like MongoDB; I have completed an online course from MongoDB University and have a pet project which uses MongoDB.