Position: PHP Developer
Category: PHP
English level: intermediate
Years of experience: 3

3+ years work of experience in commercial projects: PHP, Laravel(3 years), MySQL(3 years), PostgreSQL(2 years), JS (3 years), Vue (2 years), RESTful API, Git, Docker, backend part, frontend part(partly).

I've worked with SaaS, e-Commerce, CRM/ERP, B2B, and Payment systems. I’ve experience with full development lifecycle (Scrum, Kanban); big and small teams; startups, products, outsourcing; experience with legacy projects (refactoring, migration).
About projects:
1. Project of the Russian Ministry of Education and Science for the development of science and education in universities
Aimed at the development of engineering, the creation of specialized educational research centers
and development of cooperation between universities and state-owned companies.

* The project had a section for downloading all report files in zip format with one click. The server returned a 503 error during upload because the files in one report were 1.5 GB in size and could not be uploaded. At the time, I was using Laravel's Jobs to sequentially download files in the background. Even if the user clicks the download button, closes and reopens the browser, the download will start automatically if the zip file is ready.
* I've added the ability to send mass messages through the admin panel, and it will send emails to selected users in groups or, if you want, send them to any mail outside the system, adding them manually.
* A list of clients was used to create reports, and if a client is used in any report, it is not allowed to delete or change it in the clients' section. The problem was that the page took too long to load (30 seconds). Because the Reports is stored in a json type column, and the customer_id from this table is checked using the whereJsonContains() eloquent method. I modified the customer_id check to add another pivot table and did the check using this table which links the reporting and customer tables. I got rid of using whereJsonContains() because it takes too long and can't be used when the data is big. Then I added caching with Redis and the page started to load very quickly (1-2 seconds).

2. System for monitoring Admission control digits.
There were quite complex calculations that were carried out by another team in Excel. We were writing a system that would actually replace these Excels.
* There it was required to get the result by calculating complex mathematical formulas. Used design patterns: Strategy, Iterator, Builder, State, Service, Repository, Factory Method.
*Recently wrote a parser using pandas library numpy which converts data from Excel to CSV for analytics for this project.

3. Information system for analytics of import and export of products of the Russian Federation.
So far I have not participated in the development of this project, but every month I convert data from the Oracle database to a CSV file 2 times.
I looking for a job to improve my skills with the possibility of further professional and career growth with a highly motivated and professional team. For long-term cooperation. To use my professional skills to achieve company’s goals as a Senior Software Developer (full-stack with focus on backend).