Page 5 - Monthly Archives: December 2025
-
Maxim Mironjuk
-
December 27, 2025
A bottom tab navigation with five or six tabs will, without deliberate configuration, sometimes render every included screen right at the very first app launch, even though the user initially only ever sees the first tab. Lazy loading pushes rendering a tab to the moment it actually becomes active for the first time, and can noticeably shorten the perceived startup time of a tab based app. That effect comes at a price though, when a previously visited tab loses its internal state on switch. This article covers the practical configuration, the concrete trade off, and how the effect can actually be measured.
-
Maxim Mironjuk
-
December 27, 2025
Anyone who hunts performance problems in PHP applications only through gut feeling and spot-checks in production wastes time on the wrong places. Blackfire and XHProf deliver reliable callgraphs, separate exclusive and inclusive times, as well as standalone wall time, CPU time, and I/O wait metrics, letting you clearly distinguish real bottlenecks from harmless symptoms, whether in a monolith, a microservice, or a CLI script.
-
Maxim Mironjuk
-
December 27, 2025
With over 30,000 PHP files, Magento 2 is one of the largest open-source PHP projects. Without a correct PhpStorm configuration, indexing takes minutes, autocomplete stays silent, and the IDE turns into a bottleneck instead of a helper. This guide shows how to set up PhpStorm so it works productively with Magento.
-
Maxim Mironjuk
-
December 27, 2025
Scale-up and scale-out solve different problems, yet they are often treated as interchangeable options. Vertical scaling means more power for a single instance, horizontal scaling means more instances for the same load. Get this decision wrong and you either build an unnecessarily complex distributed system or hit a hard capacity limit sooner than necessary.
-
Maxim Mironjuk
-
December 27, 2025
The Reflection API turns PHP classes, methods, properties and parameters into inspectable objects at runtime. Anyone who wants to understand how dependency injection containers, ORMs and test frameworks work internally cannot avoid ReflectionClass, ReflectionMethod and ReflectionProperty, and using them correctly lets you build frameworks that adapt to arbitrary classes unknown at development time.
-
Maxim Mironjuk
-
December 26, 2025
A Kanban board with columns, draggable cards and persistent state can be fully implemented with Alpine.js and the native HTML5 Drag and Drop API. No SortableJS, no jQuery UI, not a single extra kilobyte of JavaScript, yet full control over behavior, accessibility and the appearance of the board.
-
Maxim Mironjuk
-
December 26, 2025
Quick Order lets company customers order directly from a list of SKUs and quantities without clicking through the catalog, backed by the same GraphQL mutation available for custom frontend implementations such as a CSV upload. Building a custom interface on top of it means knowing the validation logic, the structured error codes, and the performance limits with large SKU lists.
-
Maxim Mironjuk
-
December 26, 2025
A TypeScript monorepo without build orchestration rebuilds every package on every commit, even when only one line changed in a single package. Nx and Turborepo solve this problem with task graphs, caching and affected detection, but with different philosophies and different feature scope.
-
Maxim Mironjuk
-
December 26, 2025
Servers where sudo is granted blanket ALL=(ALL) ALL access blur the line between a regular user and root entirely and make every privilege grant impossible to control. This article shows how to edit sudoers safely with visudo, how readable aliases enable narrow grants, when NOPASSWD is justified, and how complete logging keeps every privileged command accountable.
-
Maxim Mironjuk
-
December 25, 2025
Authentication in GraphQL is not a special case, it is part of every resolver that touches user-specific data. Anyone who fails to explicitly model token validation, session context and field-precise access control is building security gaps into the schema before the first query ever reaches production.
-