← В ленту

Портфолио

Instagram crawler

A service for Instagram, which collects a large amount of data from it (1 billion accounts and approximately 1 trillion posts) using the open php-scraper library and analyzing accounts in Instagram. Completely rewritten from POP to OOP using Front Controller patterns for cutting an infinite number of script files, Abstract Factory and Template Method for parsing various entities, Registry for tracking the parsing process, Domain Model for encapsulating the entities themselves and the logic of working with them. Added custom exceptions. Thanks to the use of reducing the number of requests, the speed of the script has increased 8 times. Later it turned out that Instagram closes part of the API, and another library must be connected to the parsing. I used the Adapter pattern to transparently use both libraries and the ability to switch between them via the config.

tachyon

entirely my micro framework

site selling franchises

Platform for the sale of franchises and businesses. Laravel + VueJs. In addition to development, I also did a code review of my colleague.

Скиллы

Blade
CSS3
ElasticSearch
JavaScript
Laravel
MySQL
PHP
PostgreSQL
RabbitMQ
Sphinx
Twig
Vue.js
XSLT

Опыт работы

Web-Developer
с 08.2021 - По настоящий момент |Lovata Group
Laravel, Vue.js
Development ·Shopaholic trading platform. I made a frontend with jQuery and tailwind. ·Kraska.uk platform for the sale of NFTs. I made a frontend from scratch with Vue.JS 3 and tailwind. ·Photo and video hosting based on pixelfed.org customization. The backend is written in Laravel, Elasticsearch. Front on Vue.JS 2. I had to write a lot of code for Elasticsearch due to the large number of custom search queries. Support ·Aduna For vocational schools, ADUNA is a software system that operates as a central hub for multiple disciplines such as marketing, admissions, financial aid, student services, and POS systems. Dashboards provide statistics and predictive modeling on prospective and existing students based on information collected through multiple data feeds. I worked on the frontend, which is implemented on Vue.JS 2 and tailwind.
Developer
10.2020 - 10.2021 |Magnaweb
.
Entirely: doka-dent.ru, edisholding.ru, energomcc.ru, gosmos.intelsib.ru, karatauto.intelsib.ru, lejim.ru, limuzin38.ru, repetitorfr.ru, stroydesigne.ru, talex.ru.swteh.ru. Partially: jp-chinatrade.com (70%), gs-trade.ru (currency informer, the informer about traffic jams in Moscow, hours, site search, rotation reviews yet), happyword.ru (JS-routine that sends AJAX requests, simulating user activity on the site), yaschool.ru (feedback form, a horizontal menu, photo gallery), azimuthotels.de (flash-map on page 'hotelstandorte/index.php?IBLOCK=7') Rework. hitarm.ru (news block), karatrent.ru, kirpich.info, sbmcrusher.ru, tmim.ru (news block), tsarsenal.ru, uniform-stylem.ru (catalog rework).
Web-Developer
01.2019 - 07.2019 |Gradalis Group
Laravel, Vue.Js
· Platform for the sale of franchises and businesses. Laravel + Vue.Js. In addition to development, I also did a code review of my colleague. After the completion of the project, the entire team with the exception of one support person was disbanded.
Web-Developer
01.2019 - 07.2021 |Bash Today
Laravel, JQuery
Support ·Bash.today Service for booking lofts, photo studios, creative spaces, bars for events and filming. Photos, prices and reviews for sites. (Laravel + JQuery). I quit because it is not very interesting to be engaged in support and in particular JQuery. At first I was given new projects for development, but for 3 months now I only had support.
Web-Developer
09.2018 - 12.2018 |Platform
.
· A service for Instagram, which collects a large amount of data from it (1 billion accounts and approximately 1 trillion posts) using the open php-scraper library and analyzing accounts in Instagram. Completely rewritten from POP to OOP using Front Controller patterns for cutting an infinite number of script files, Abstract Factory and Template Method for parsing various entities, Registry for tracking the parsing process, Domain Model for encapsulating the entities themselves and the logic of working with them. Added custom exceptions. Thanks to the use of reducing the number of requests, the speed of the script has increased 8 times. Later it turned out that Instagram closes part of the API, and another library must be connected to the parsing. I used the Adapter pattern to transparently use both libraries and the ability to switch between them via the config.
Developer, Freelancer
06.2016 - 09.2018 |Bezlimit
REST API, MySQL, PostgreSQL, RabbitMQ, CRM
2 interconnected CRM (Yii 1/2, MySQL / PostgreSQL) and a forum for a company that offers its customers unlimited mobile communication rates from Beeline in a team of 6 developers. The main application - CRM for interaction with customers - owners of numbers on the one hand and sellers on the other. Sellers are organized in the form of a tree. Interaction with Beeline - via cron API via RabbitMQ. The app for sellers (dealer) is designed to manage a network of dealers, tariffs, promotions, room service and sales directly. Both applications look into the same database (MySQL), and the dealership additionally stores the dealer network in PostgreSQL. Also, both applications include admins for managing the rights and access of their users. Dealer application does not apply directly to Beeline, but communicates with the main one using the REST API. I was engaged in the application for the sellers and the forum exclusively. The first was completely rewrote and later transferred to Yii2. Forum wrote based on the Polish module on Yii2. At that time it was a beta version, so it had to be repaired and finished. I was also quite tightly engaged in the main CRM. Both systems are highly loaded and work with large amounts of data. The database consists of more than 200 tables. Also at that time: freelancer. Development · Some REST API components and refactoring of the mail service ff.qwintry.com (Yii2); · ERP for a small trading company (Transfer from CodeIgniter to my own tachyon micro-framework) Client code has been reduced tenfold and performance and functionality have been improved.
Web - Developer
06.2014 - 06.2016 |Rublev
.
Site rublev.com (Yii, Back-end). The first 2 months I've been doing it alone, then another 3 programmers joined working within a Git version control. Quite a complex site with 312 tables in the database with extremely complicated business logic. I made the back-end, some parts of the front-end (personal account, registration, authentication, integration with social networks), and almost all of the core components. This site is high-Loaded and has a two-layer architecture. The front-end uses nginx + nodejs as the first layer, the Redis server as second for caching static, database and file system sharding. I worked on the last 2 aforementioned tasks. Site development finished at 16.02.01 and the team disbanded.
Developer
06.2013 - 06.2014 |Freelance
CRM
· CRM integrated with IP-telephony system Asterisk. (Yii). Almost all interfaces are RESTFUL. · Astalpha.ru. Online furniture store. Transition from old engine to Yii. · Neuro.imnd.myjino.ru (Yii) Virtual desk and CRM for patients for Moscow neurologists. · Dr-sokolov.ru (Yii) Dental Clinic website with virtual desk and CRM for patients. In addition the patient has a private office where he can see his medical history. · Crm.imnd.myjino.ru (Yii) CRM system for real estate brokers. Development and support. Done at 120 h. There is also a working version, located on a dedicated VPN-server that uses the customer, the Moscow real estate agency. Functions as SaaS. You can jump in by clicking the link . Here is a link to description. · 51551.ru (Yii) Done at 75 h. Online building materials store website.
Senior developer
10.2012 - 06.2013 |Infinity Promo
.
I receive this site in a very bad condition. Until me this site is developed by four different programmers with different skills. I believe that most of them could not understand the code. Hence the huge amount of "invention of bicycle" and simply code duplication. Also the majority of interfaces of controllers and models had very poor cohesion. In some controllers there were 30–40 public methods often identical, half of which had a supporting role. I got rid of it by using a template “Layer Supertype” and by distributing methods to helper classes sorting them by their functionality. I also combined the functionality of 2 similar sections of the catalog that were isolated by applying "Factory Method". I completely rewrote the search module, using the pattern "strategy" for the implementation of the three types of the search.
Developer
02.2012 - 10.2012 |I-d-web
.
I have developed: · Store (frontend and admin panel); · Integration with payment systems: Yandex-money, Ifree and payment system aggregator Moneta (frontend and admin panel); · Billing (frontend and admin panel). Retired due to chronic delays and big debt in payment.
Developer
10.2010 - 01.2012 |Infotravel
.
I have developed: · Some widgets for frontend; · Back-end for tourist and owner of real property; · Sophisticated multifunctional JS-calendar in Back-end for owner of real property (analogue of jQuery Selectable grid, but more advanced); · Billing and RMS modules in the admin panel.

Образование

Mathematics (Бакалавр)
1989 - 1994
LGU

Языки

АнглийскийСредний