<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Backend Engineering Blog</title><description>Practical engineering articles about PHP modernization, Go migrations, private AI deployments, backend performance, architecture and senior B2B engineering.</description><link>https://beliaev.dev/</link><language>en</language><item><title>Local AI Transcription: Keep Audio and Transcripts Private</title><link>https://beliaev.dev/blog/local-ai-transcription/</link><guid isPermaLink="true">https://beliaev.dev/blog/local-ai-transcription/</guid><description>How to turn meetings, interviews and recordings into private transcripts, summaries and a searchable archive without sending the audio to a public API.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Private AI</category><category>local AI transcription</category><category>offline transcription</category><category>Whisper</category><category>speech-to-text</category></item><item><title>Local LLMs for Business: When Running AI Yourself Makes Sense</title><link>https://beliaev.dev/blog/local-llm-for-business/</link><guid isPermaLink="true">https://beliaev.dev/blog/local-llm-for-business/</guid><description>Running a local model is easy. Running one that reliably improves a real workflow is not. This is the decision framework before anyone buys a GPU.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Private AI</category><category>local LLM</category><category>private AI</category><category>self-hosted AI</category><category>business</category></item><item><title>Local LLM Hardware Requirements: What Do You Actually Need?</title><link>https://beliaev.dev/blog/local-llm-hardware-requirements/</link><guid isPermaLink="true">https://beliaev.dev/blog/local-llm-hardware-requirements/</guid><description>How model size, quantization, VRAM, RAM and concurrency interact, with workload profiles you can update as hardware and models change.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Private AI</category><category>local LLM hardware requirements</category><category>LLM GPU requirements</category><category>VRAM</category><category>local AI hardware</category></item><item><title>Local LLM vs Cloud AI: Which One Should Your Business Use?</title><link>https://beliaev.dev/blog/local-llm-vs-cloud-ai/</link><guid isPermaLink="true">https://beliaev.dev/blog/local-llm-vs-cloud-ai/</guid><description>A side-by-side of local models and cloud APIs: what you pay, what you give up, and a decision tree that does not assume local is the answer.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Private AI</category><category>local LLM vs cloud</category><category>local AI vs cloud AI</category><category>self hosted LLM vs API</category></item><item><title>On-Premise LLM Deployment: What You Actually Need</title><link>https://beliaev.dev/blog/on-premise-llm-deployment/</link><guid isPermaLink="true">https://beliaev.dev/blog/on-premise-llm-deployment/</guid><description>What an on-premise LLM looks like as a service: inference, identity, storage, concurrency and the operational work that vendors normally hide.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Private AI</category><category>on-premise LLM</category><category>self-hosted LLM</category><category>private LLM deployment</category><category>inference</category></item><item><title>Private AI Document Search: How Local RAG Works</title><link>https://beliaev.dev/blog/private-ai-document-search/</link><guid isPermaLink="true">https://beliaev.dev/blog/private-ai-document-search/</guid><description>How to let people ask questions about internal documents with citations, using local embeddings and a local model, and where that design fails.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Private AI</category><category>private AI document search</category><category>local RAG</category><category>private RAG</category><category>document AI</category></item><item><title>When a Fractional Backend Engineer Makes More Sense Than Another Full-Time Hire</title><link>https://beliaev.dev/blog/fractional-backend-engineer/</link><guid isPermaLink="true">https://beliaev.dev/blog/fractional-backend-engineer/</guid><description>The situations where two or three senior days a week solve the problem, the situations where they clearly do not, and how to run the arrangement so it produces real output.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>Engineering Teams</category><category>backend</category><category>contracting</category><category>engineering-management</category></item><item><title>Laravel to Go Migration Without Rewriting Everything</title><link>https://beliaev.dev/blog/laravel-to-go-migration/</link><guid isPermaLink="true">https://beliaev.dev/blog/laravel-to-go-migration/</guid><description>Laravel is not the problem. This is a selective extraction strategy, which workloads leave, which stay, and how to run Go alongside Laravel without breaking auth, queues or the schema.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>PHP → Go</category><category>laravel</category><category>php</category><category>go</category><category>migration</category></item><item><title>From PHP Monolith to Services Without Creating a Distributed Monolith</title><link>https://beliaev.dev/blog/php-monolith-to-microservices/</link><guid isPermaLink="true">https://beliaev.dev/blog/php-monolith-to-microservices/</guid><description>Splitting a monolith trades in-process complexity for network complexity. Here is how to decide whether that trade is worth making, and how to make the first cut so it survives production.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>Backend Architecture</category><category>php</category><category>architecture</category><category>microservices</category><category>postgresql</category></item><item><title>Before Rewriting PHP in Go, Find Out What Is Actually Slow</title><link>https://beliaev.dev/blog/php-performance-before-rewrite/</link><guid isPermaLink="true">https://beliaev.dev/blog/php-performance-before-rewrite/</guid><description>A rewrite is a very expensive profiler. This is the order I investigate a slow PHP application in, and the point at which changing language actually becomes the right lever.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>PHP Modernization</category><category>php</category><category>performance</category><category>postgresql</category><category>redis</category></item><item><title>PHP to Go Migration: A Practical Decision Guide</title><link>https://beliaev.dev/blog/php-to-go-migration-guide/</link><guid isPermaLink="true">https://beliaev.dev/blog/php-to-go-migration-guide/</guid><description>A workload-first approach to moving parts of a PHP system to Go, including what Go fixes, what it does not, and how to roll out changes without betting the product on a rewrite.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>PHP → Go</category><category>php</category><category>go</category><category>migration</category></item><item><title>PHP vs Go for Backend Systems: Choose Based on the Workload</title><link>https://beliaev.dev/blog/php-vs-go-backend/</link><guid isPermaLink="true">https://beliaev.dev/blog/php-vs-go-backend/</guid><description>A workload-by-workload comparison of PHP and Go, runtime model, memory, concurrency, productivity and operations, without pretending either language wins everywhere.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>PHP → Go</category><category>php</category><category>go</category><category>backend</category></item><item><title>PHP Queue Workers Are Often a Better Go Migration Target Than Your API</title><link>https://beliaev.dev/blog/php-workers-to-go/</link><guid isPermaLink="true">https://beliaev.dev/blog/php-workers-to-go/</guid><description>A background consumer has no latency contract, an existing retry safety net and a one-page interface. That makes it the lowest-risk place to find out whether Go actually helps you.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>PHP → Go</category><category>php</category><category>go</category><category>queues</category><category>rabbitmq</category><category>kafka</category></item><item><title>Hiring a Senior Golang Contractor in Europe: What Actually Matters</title><link>https://beliaev.dev/blog/senior-golang-contractor-europe/</link><guid isPermaLink="true">https://beliaev.dev/blog/senior-golang-contractor-europe/</guid><description>A practical guide to engagement models, interviews, total cost and B2B paperwork when you bring an experienced Go engineer into a European product team.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>Engineering Teams</category><category>go</category><category>contracting</category><category>b2b</category></item><item><title>Using the Strangler Pattern to Migrate PHP to Go</title><link>https://beliaev.dev/blog/strangler-pattern-php-to-go/</link><guid isPermaLink="true">https://beliaev.dev/blog/strangler-pattern-php-to-go/</guid><description>How to route traffic, draw boundaries and move data ownership so a PHP monolith is replaced piece by piece instead of rewritten in one jump.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>Backend Architecture</category><category>php</category><category>go</category><category>architecture</category></item><item><title>Symfony to Go Migration: An Incremental Strategy</title><link>https://beliaev.dev/blog/symfony-to-go-migration/</link><guid isPermaLink="true">https://beliaev.dev/blog/symfony-to-go-migration/</guid><description>How to add Go services to a long-lived Symfony platform one workload at a time, Doctrine boundaries, Messenger transports, tracing and rollback, while product work continues.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>PHP → Go</category><category>symfony</category><category>php</category><category>go</category><category>migration</category></item></channel></rss>