Evgenii Goryaev
Development, support and optimization

Blog about web development and optimization

Having been a web developer for over 20 years, I have almost never blogged. But, over time, I decided to start a journal, where to put my notes and where you can systematize the knowledge a little. In addition, this knowledge can be useful to someone, and also has a positive effect on the ranking of the site.


How do I develop a GPS tracker Poster for the article How do I develop a GPS tracker

During 2022, I have been actively developing my GPS tracker for electric scooters and bikes. In this article, I talk about what prompted me to do this, what results I managed to achieve, as well as some technical information.

DDos protection with Cloudflare Poster for the article DDos protection with Cloudflare

Cloudflare is considered to be the leader in its segment, and besides that it offers many free features. And these free features may be enough to fight off an attack on your site or server!

CheckCheck - my new project for automatic site validation Poster for the article CheckCheck - my new project for automatic site validation

A short story about my current project. This is a service for scanning sites for layout errors, broken links, incorrect meta tags and other problems that can interfere with the user's work with the site and indexing by search engines.

My perfect php-fpm docker image Poster for the article My perfect php-fpm docker image

The official php-fpm image does not contain the necessary php-libraries and utilities for the normal operation of web frameworks and convenient development and debugging. In this article I talk about the components from which I prepare my basic php-fpm im

Creating a PHP library for OpenGraph images with an article title Poster for the article Creating a PHP library for OpenGraph images with an article title

Recently, often and often i notice a tendency to put a news or article title on images used in the og: image meta tag. I decided to write a small but flexible library for these purposes. Here you can find reflections on the functionality and the result o