I call myself "Problems Solver". It is the most accurate and succinct
description I could think of that wraps of projects I was involved in. I
have overall 17 years of work experience in Web development using
PHP & Javascript & MySQL technologies. Now I'm looking for new
"problems" that become a new real challenge for me.
Skills
General
  • OOP
  • Design patterns
  • Algorithm development (optimization)
  • SOLID
  • Software architecture
Languages
  • PHP 4, 5, 7
  • Javascript
  • (DOM, Ajax, JSON, CORS)
  • HTML 5
  • CSS
  • (Less, SASS, Twitter Bootstrap)
  • NodeJs
Databases
  • MySQL (MariaDB, Percona)
  • Redis
  • ClickHouse
  • Neo4J
  • SQLite
  • MSSQL
Administrating
  • Linux, FreeBSD, CentOS
  • SSH (Bash scripting)
  • Apache+Nginx+PHP+MySQL
  • Vagrant
  • Docker
My cases
I've brought the project to a new qualitative level and to introduce new functionality much faster in the future with a high degree of stability of the entire project as a whole
The customer had a large codebase, which was created over 5 years without observing the development of quality standards. As a result, over time, the integration of new functionality took more and more time. It also entailed situations when, after the next new functionality, integration, the old and previously working functionality started to work with errors. One solution to this problem was the proposal to rewrite most of the code from scratch. This approach did not suit the customer, as this did not allow his business to introduce new functionality over the next 4-5 months, and rewriting the entire project from scratch did not eliminate the risks of such situations in the future. I suggested continuing to reduce the speed of introducing new features and spending a lot of time writing automated tests for existing code to get stable backward compatibility when integrating new code. When approximately 70% of the code was covered by tests, we started phased refactoring of individual parts of the application, and the previously written tests made it possible to check the modernized parts of the application faster and without loss of quality. Thus, over the year of systematic work and implementation of Continuous Integration, it was possible, without completely stopping the introduction of new functionality, to bring the project to a new qualitative level and to introduce new functionality much faster in the future with a high degree of stability of the entire project as a whole.
A solution that saved $ 9,500 every month, which meets the basic requirements of the system in terms of speed and stability of response based on constantly incoming new data
The project was a traffic management system that worked on the principle of Real-Time Bidding from various advertising providers. In addition to the fact that the system had to have a high speed of response to a request - about 100 milliseconds, these 100 milliseconds should also include time to decide whether or not to bet on showing ads at this particular moment and if so then at what price. This decision was made based on the analysis of previous statistics on the effectiveness of advertising platforms according to a set of parameters, for example, the user's country, operating system, time of day, and so on. The created system had to withstand about 10,000 requests per second. Such a huge number of requests generated an ever-increasing array of data, which became almost impossible to analyze in real-time to make the right decision on the rate since statistical indicators often had to be recalculated preferably in real-time. Scaling up standard relational databases would ultimately entail large financial costs for maintaining and managing the infrastructure, and it would cost about $ 10,000 per month. As a result, after a series of tests, it was proposed to use the column-oriented database ClickHouse. Since this solution was open-source and at the same time used the usual SQL query language, it also had the necessary stability and speed of implementation, its implementation allowed to cut hosting costs up to $ 500 per month, which allowed saving $ 9,500 every month, meeting basic requirements to the system in terms of speed and stability of the response based on constantly incoming new data.
I've built a stable MySQL database structure for storing a large number of messages between users and the ability to accumulate up to 100,000 new messages in knocks without loss of performance and fault tolerance.
In 2008, when creating a dating site, a problem arose when choosing a technology for storing messages between users, and as it turned out, the set of suitable tools was quite limited. As a result, after several iterations to change the database architecture, it became possible to build a stable MySQL database structure for storing a large number of messages between users and the ability to accumulate up to 100,000 new messages in knocks without loss of performance and fault tolerance.
Contact me
Ivan Moroz
Senior Full Stack Web Developer
Email: menvil.menvil@gmail.com
Phone: +359 (88) 459-67-56
Skype: menvil
Whatsapp: +380 (63) 596-57-87
Viber: +380 (63) 596-57-87
STOCK PHOTOS FROM
Все фото и видео материалы принадлежат их владельцам и использованы исключительно в целях демонстрации. Пожалуйста, не используйте их в коммерческих целях.
Made on
Tilda