Building foundation for web3
ConsenSys is the leading Ethereum software company with known projects such as MetaMask, Infura and Truffle Suite.
At ConsenSys I'm building Rollup in close collaboration with R&D team. It has grown from proof of concept to production ready services written in Rust, Golang, Java, with PostgreSQL and Kafka as data storages and deployed on Kubernetes.
Rollup is a scaling solution for Ethereum blockchain powered by zero knowledge cryptography.
Here I learn blockchain architecture, Zero Knowledge cryptography and high performance computing.
Development at large scale
Booking.com is one of the largest online accommodation companies in the world, and it was founded in 1996.
There I was able to do technical A/B tests, deployment and firefighting on services with millions of users.
I practiced chaos engineering approaches, dived into monitoring and profiling. I participated in migration from monolith architecture to microservices.
I learned how to use cultural differences for more productive work, how to stay calm during massive outages and do the right thing.
After 1 year in core team, I moved to new business development: tours & activities team. There I built connectivity services for integrating with suppliers.
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:
- Automated billing process by integrating Stripe API
- Storage from charging devices, including validation and processing
- Built automated signup flow for new customers with digital signing, payment and email notifications for account managers
- Implemented customer portal, where 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, 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 was a web service that connects people with professional pet sitters.
This application has been developed using the Django framework, PostgreSQL and deployed on Digital Ocean.
I worked closely on new features with the business owner, performance improvements, deployment and bug fixing.
I increased automated tests coverage from 0 to 80%, added selenium tests, making the development process much more stable.
One of the features required significant changes to the database structure, so I integrated Django migrations which simplified process.
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 Checkr.io
Positive Technologies Application Firewall
Deep dive into HTTP protocol and 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.
Working with a web application firewall 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 making automated tests for a wide range of cases
from attack analysis to configuration tests and UI checking.
I worked in close collaboration with development team over performance benchmarking.
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
First step to the data analysis
Ringcentral is a big cloud service provider with a sophisticated system architecture
which results in a lot of data after each test.
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.
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,
and SciPy for complicated aggregations.
It is connected to the Zabbix,
and Jira APIs which integrate the product into the company processes.