Page 7 - Monthly Archives: September 2025
-
Maxim Mironjuk
-
September 19, 2025
A single, fixed AVIF quality level applied to your whole audience is always a compromise between two extremes that rarely get served well at the same time. Visitors on a fast fiber connection receive images that are more compressed than necessary, while visitors on mobile networks with data saver enabled still pay for quality they explicitly asked to avoid. Client Hints, the Save-Data header, and a connection to an image CDN let you resolve the quality level per request instead of baking one number into the build once and for all.
-
Maxim Mironjuk
-
September 19, 2025
A clean toast system shows success, error and warning consistently, disappears on its own after the right amount of time, and stays understandable for screen reader users too. With Tailwind CSS for the variants and Alpine.js for stacking and timers, this becomes a single component reusable across the whole project.
-
Maxim Mironjuk
-
September 19, 2025
A classic cron job scheduled to run at 03:00 gets simply skipped on a powered off laptop, without any notification. Anacron solves exactly this problem by checking, at the next power on, which jobs were due and automatically running them. This article shows how anacron works, how to configure /etc/anacrontab, and how to sensibly combine it with classic cron.
-
Maxim Mironjuk
-
September 18, 2025
AI-assisted refactoring noticeably speeds up mechanical tasks such as renaming, method extraction, and removing dead code, but architectural changes with hidden behavior still require human oversight. This article uses a practical Magento example to show when Claude Code can be used productively, what test coverage should be in place first, and what a safe review workflow looks like.
-
Maxim Mironjuk
-
September 18, 2025
Anyone who builds a REST or GraphQL API in Symfony by hand ends up writing controllers, serializer configuration, pagination and error handling themselves. API Platform 4 handles all of that declaratively. A PHP class with the right attribute is enough to get a complete API resource with filtering, pagination and OpenAPI documentation.
-
Maxim Mironjuk
-
September 17, 2025
Containerized databases behave differently from classic database installations: init directories, volume persistence and health check synchronization are concepts that need to be understood before the first production container goes live. Anyone who skips these fundamentals ends up fighting data loss, race conditions and non-reproducible development environments later on.
-
Maxim Mironjuk
-
September 17, 2025
Without a binding AI usage policy, every developer decides individually what data ends up in a prompt and which AI generated code reaches the main branch unreviewed. A written governance framework with scope, data classification, tool approval and clear escalation paths makes these decisions traceable, auditable and binding for the whole team.
-
Maxim Mironjuk
-
September 17, 2025
Salable quantity in Magento MSI is not the physical stock on its own, it is stock minus reservations. Once that math goes off track because reservations linger even though the linked order was canceled or never paid, salable quantity drops artificially while nothing is physically missing. This article shows how such orphaned reservations happen, how to find them, and how a custom cleanup script restores consistency.
-
Maxim Mironjuk
-
September 17, 2025
On a local machine, Docker naturally uses the layer cache, but on ephemeral CI runners it is usually missing entirely. With --cache-from and --cache-to, the BuildKit cache can be stored externally in a registry or in the GitHub Actions cache and reused across runs and runners.
-
Maxim Mironjuk
-
September 17, 2025
Answer Engine Optimization is often framed as the successor to traditional keyword SEO, even though it mostly builds on top of it. Understanding both disciplines side by side quickly reveals which existing measures can continue, which new ones need to be added, and where genuine goal conflicts arise.
-