Posts

A while ago one of my production systems went down quietly. No crash logs, no alert, nothing dramatic — a cronjob just stopped firing and an endpoint started failing checks that nobody was running. I only found out when a customer emailed asking why things looked broken. By then it had been down for hours. That’s the moment “it’s probably fine” stops being an acceptable monitoring strategy, and the moment I decided to build the tool I actually wanted instead of settling for a half-fit off-the-shelf dashboard.
That tool is Checkmeup, and it’s now running in production, watching my own projects. This post is both the origin story and a full walkthrough of what it does.

This article explores the comprehensive toolchain that powers modern development workflows, focusing on automation, code quality, and streamlined releases. These tools form an integrated ecosystem that handles everything from initial project setup to production deployment and ongoing maintenance.
Across most of my projects, this standardized approach ensures consistency, reduces manual overhead, and maintains high code quality standards. The workflow has been refined through practical experience with various project types, from small utilities to complex monorepos.

This post explains why I created eslint-plugin-vue-modular, how it helps enforce modular architecture in Vue 3 projects, and shows concrete examples of rules, configuration, and typical violations and fixes.
I hope this post helps you understand the importance of modular architecture in Vue 3 projects and how eslint-plugin-vue-modular can assist you in achieving it.

Two years ago, the folks released React version 18 and made changes to Strict Mode.
… React 18 introduces a new development-only check to Strict Mode. This new check will automatically unmount and remount every component, whenever a component mounts for the first time, …

A new toy has arrived - the Howard Leight Impact Pro headphones. Purchased on Amazon for 58 American dollars, which turned out to be practically half price. The headphones came in a box containing the headphones themselves, instructions, 2 batteries, and a cable for connecting to a phone or MP3 player. The headphones are made of solid dark plastic and look quite high-quality. They have a decent weight, but not too heavy to be cumbersome.


In the kitchen, the handle of my 3D-printed Geeetech MeCreator 2 broke, which was printed several years ago. I needed to set up my old Raspberry Pi 3 to print a new handle. To avoid using the printer directly, I decided to install OctoPi on it for easier control of the printing process.
There are various ways to install OctoPi, but I found the use of Raspberry Imager to be the quickest and most convenient.


With the development of web application architectural design, microservices have become a successful new trend in application landscape construction. Alongside advancements in application architecture, transport protocol methods such as REST and gRPC are becoming more efficient and faster. Additionally, containerization of microservices significantly contributes to flexible development and rapid delivery. Everything is evolving and embracing new principles and approaches. However, the question of how best to organize the project structure remains open. In this article, I will discuss two approaches to organizing project structure: monorepo and polyrepo.
I understand well that the topic has been discussed extensively on the internet, and the holy war between proponents and opponents of each approach shows no signs of abating. Nevertheless, I have decided to share my thoughts on this matter.

In recent years, microservices architectures have become extremely popular, and for good reason. When managed properly, they improve scalability, foster faster development and deployment, and reduce data and domain coupling. Companies of all sizes—from small startups to large enterprises—have been migrating their monolithic applications to microservices and service-oriented architectures.
However, transitioning from a monolith to microservices is a significant step. Your team needs to be prepared for this change both technically and organizationally. Without careful planning, an improper migration can lead to serious issues in the future.