Page 2 - Monthly Archives: November 2025
-
Maxim Mironjuk
-
November 29, 2025
Anyone who wants to observe requests per second, response times, or cart events over time quickly ends up needing a dedicated time series database. RedisTimeSeries brings exactly this data model directly into Redis, with automatic downsampling, configurable retention policies, and the same low latency Redis already offers for other data types.
-
Maxim Mironjuk
-
November 29, 2025
HATEOAS turns a PHP API into a real state machine: instead of clients building URLs themselves, every response ships the links that are actually allowed in the current state. This article shows a practical HATEOAS implementation in PHP with the HAL format, a custom link builder, and concrete examples from an order process.
-
Maxim Mironjuk
-
November 29, 2025
A single model that both enforces complex business rules on writes and delivers fast, denormalized views for the UI almost always forces lazy compromises on both sides. CQRS resolves that tension by consistently separating commands that change state from queries that only read, each with its own model tailored to its purpose.
-
Maxim Mironjuk
-
November 29, 2025
An API versioning strategy is typically chosen once at the start and lives with a system for years afterward, which is why thorough deliberation before the first implementation pays off. Claude can help weigh URL, header, and content-negotiation versioning against each other, detect breaking changes in API contracts, and plan deprecation communication to existing consumers.
-
Maxim Mironjuk
-
November 29, 2025
As long as the Tailwind production build runs manually through bin/npm run build on a single developer's machine, the result depends on locally installed Node versions, forgotten intermediate state, and whoever happened to run it that day. This article shows how to set up the build as its own reproducible CI stage, how a build cache noticeably speeds up pipeline runs, and how broken Tailwind classes can be caught automatically before deployment instead of after.
-
Maxim Mironjuk
-
November 29, 2025
nohup ignores the SIGHUP signal, disown removes a job from the shell's job table after the fact, and setsid starts a brand-new session with no controlling terminal at all. Knowing the difference means picking the right, most robust tool for every background service in a deployment script.
-
Maxim Mironjuk
-
November 28, 2025
When users switch quickly between search terms, filters, or tabs, useEffect fires several requests in a row. If the response to an old request arrives later than the response to a newer one, stale content ends up in the UI. AbortController solves this structurally instead of papering over it with flags.
-
Maxim Mironjuk
-
November 28, 2025
Most developers only know nth-child through odd and even, yet behind it sits a complete linear formula that enables far more complex patterns. This collection explains the An+B math, nth-last-child and the of S syntax through concrete recipes for grids, lists and pagination.
-
Maxim Mironjuk
-
November 28, 2025
PHP-FPM processes requests synchronously and blocking, a model that is well proven for classic web applications but reaches its limits with WebSockets, queue workers and heavy I/O load. Asynchronous PHP with Swoole or ReactPHP uses event loops and coroutines to manage thousands of concurrent connections in a single process, without ever leaving the PHP language.
-
Maxim Mironjuk
-
November 28, 2025
PHPUnit 11 is not an incremental update. It removes docblock annotations in favor of native PHP attributes, tightens coverage configuration, fundamentally changes the mock system, and sets PHP 8.1 as the minimum requirement. Anyone migrating has to change more than just the version number in composer.json.
-