<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Achilles Kaloeridis</title><description>Achilles Kaloeridis, backend developer. Notes on PHP, Symfony, Git, Linux and the boring, reliable parts of the web.</description><link>https://achilleskal.com</link><language>en</language><item><title>Backups that cost less than a coffee a month</title><link>https://achilleskal.com/blog/self-hosted-backups-restic</link><guid isPermaLink="true">https://achilleskal.com/blog/self-hosted-backups-restic</guid><description>Self-hosted backups with restic for under €1 a month. Databases, files, scheduling, monitoring and how to test a restore you can trust.</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate><category>docker</category><category>linux</category></item><item><title>My Git cheat sheet</title><link>https://achilleskal.com/blog/git-notes</link><guid isPermaLink="true">https://achilleskal.com/blog/git-notes</guid><description>My personal Git cheat sheet. Commits, diffs, history, branches, stashes, rebases and undoing mistakes, one short command per line.</description><pubDate>Sat, 27 Apr 2024 00:00:00 GMT</pubDate><category>git</category></item><item><title>Symfony: Add Entity Timestamp Metadata with Symfony Clock</title><link>https://achilleskal.com/blog/symfony-entity-timestamp-metadata</link><guid isPermaLink="true">https://achilleskal.com/blog/symfony-entity-timestamp-metadata</guid><description>Add createdAt and updatedAt to Doctrine entities without an extra bundle, using a trait, a lifecycle listener and the Symfony Clock.</description><pubDate>Sun, 17 Mar 2024 00:00:00 GMT</pubDate><category>php</category><category>symfony</category></item><item><title>The strategy pattern in PHP</title><link>https://achilleskal.com/blog/the-strategy-pattern</link><guid isPermaLink="true">https://achilleskal.com/blog/the-strategy-pattern</guid><description>The strategy pattern in plain PHP. Swap algorithms at runtime behind one interface, shown with a shopping cart and two payment methods.</description><pubDate>Sun, 28 Jan 2024 00:00:00 GMT</pubDate><category>php</category><category>patterns</category></item><item><title>Linux 101 for developers</title><link>https://achilleskal.com/blog/linux-101-notes</link><guid isPermaLink="true">https://achilleskal.com/blog/linux-101-notes</guid><description>Notes on the Linux basics I use every day as a developer. Boot, systemd, files, processes, permissions, networking and shell shortcuts.</description><pubDate>Thu, 04 Jan 2024 00:00:00 GMT</pubDate><category>linux</category></item><item><title>Recover lost commits with git reflog</title><link>https://achilleskal.com/blog/git-reflog</link><guid isPermaLink="true">https://achilleskal.com/blog/git-reflog</guid><description>Git keeps a log of every move HEAD makes. Here is how to use git reflog to undo an amend, a bad hard reset or a lost commit.</description><pubDate>Sun, 03 Apr 2022 00:00:00 GMT</pubDate><category>git</category></item><item><title>Xdebug 3 with Docker Compose and PhpStorm</title><link>https://achilleskal.com/blog/php-docker-xdebug</link><guid isPermaLink="true">https://achilleskal.com/blog/php-docker-xdebug</guid><description>Step debugging PHP in Docker. A minimal Docker Compose setup with Xdebug 3, the PhpStorm settings it needs, and fixes for when it won&apos;t connect.</description><pubDate>Thu, 03 Jun 2021 00:00:00 GMT</pubDate><category>php</category><category>docker</category></item><item><title>Modern JavaScript cheat sheet</title><link>https://achilleskal.com/blog/modern-javascript</link><guid isPermaLink="true">https://achilleskal.com/blog/modern-javascript</guid><description>A cheat sheet of the modern JavaScript I reach for. Destructuring, arrow functions, array methods, modules, promises and async/await.</description><pubDate>Mon, 28 Dec 2020 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Dependency injection in PHP</title><link>https://achilleskal.com/blog/dependency-injection-php</link><guid isPermaLink="true">https://achilleskal.com/blog/dependency-injection-php</guid><description>Dependency injection is a simple yet powerful technique that can help you avoid hardcoded dependencies in your classes.</description><pubDate>Mon, 27 Apr 2020 00:00:00 GMT</pubDate><category>php</category></item><item><title>What is this?</title><link>https://achilleskal.com/blog/introduction</link><guid isPermaLink="true">https://achilleskal.com/blog/introduction</guid><description>Why I started this blog. Notes from a backend developer on PHP, Symfony, Git and Linux, written down so I understand them better.</description><pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate><category>meta</category></item></channel></rss>