# Kévin THÉRAGE | Symfony Lead Developer (Expert Symfony 7 Certified) > Kévin THÉRAGE – Symfony Lead Developer, Expert Symfony 7 Certified. Technical blog on Symfony, PHP, web development with tutorials, best practices and expert advice for developers. - [Building a RAG-Powered Code Review Assistant with PHP, Ollama, and Qdrant](https://ktherage.github.io/blog/2026/building-a-rag-powered-code-review-assistant/feed.md): Ask an LLM to review your code and you'll get generic advice. Give it 10,000 Symfony Core code reviews as reference — and it'll produce reviews that sound like nicolas-grekas and stof reviewed your PR. Here's how I built a RAG pipeline in 100% PHP to make that happen. - [The Cache That Didn't Cache: A Symfony Serialization Story](https://ktherage.github.io/blog/2026/the-cache-that-silently-wasnt/feed.md): The logs said the cache was working. The filesystem could testify to it. Here is how a hidden Closure in getInfo(), silent exception handling, and an ignored return value created a perfect, silent nightmare. - [Dealing with Isolated PHPStan 1 and the PHPUnit 13 Blindspot](https://ktherage.github.io/blog/2026/dealing-with-isolated-phpstan-1-and-the-phpunit-13-blindspot/feed.md): Shoving PHPStan into a separate subdirectory is great for avoiding dependency hell—until you upgrade to PHPUnit 13 and your static analysis pipeline goes completely blind. Here is how to fix it. - [Ubuntu 25.10: The Update That Bricked My Java Docker Containers](https://ktherage.github.io/blog/2026/ubuntu-25-10-docker-java-cgroupv2-crash/feed.md): After updating my operating system from Ubuntu 24.04 to 25.10, my selenium/standalone-chrome Docker container started crashing with a cryptic NullPointerException. Here is my story. - [My EventSubscriber silenced errors, here's why](https://ktherage.github.io/blog/2026/my-eventsubscriber-silenced-errors/feed.md): My whitelist route EventSubscriber was throwing AccessDenied errors in logs with no apparent reason. Here's how I discovered it was actually hiding the real error behind the scenes. - [Debugging Git's .gitignore: Why Whitelisting Files in Subdirectories Fails](https://ktherage.github.io/blog/2026/gitignore-blacklisting-whitelisting/feed.md): When using .gitignore to keep your project clean, it's easy to accidentally hide important files in subdirectories. Here's how to debug and fix this common issue. ## Pages - [About me](https://ktherage.github.io/about-me/feed.md) - [Legal](https://ktherage.github.io/legal/feed.md) - [Tags](https://ktherage.github.io/tags/feed.md) ## Full content - [Complete site (Markdown)](https://ktherage.github.io/blog/2026/feed.md)