<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Hossein Margani</title><description>Hossein Margani is a Platform Engineer in London. Notes on cloud infrastructure, CI/CD and the tooling that keeps teams shipping.</description><link>https://margani.dev</link><item><title>How I Deployed CoreDNS in My Home Lab Using Podman, Ansible, and systemd</title><link>https://margani.dev/home-lab-coredns-using-podman-ansible</link><guid isPermaLink="true">https://margani.dev/home-lab-coredns-using-podman-ansible</guid><description>Deploy CoreDNS in your home lab effortlessly using Podman, Ansible, and systemd for an efficient internal DNS solution</description><pubDate>Mon, 24 Nov 2025 08:00:41 GMT</pubDate><category>homelab</category></item><item><title>Go Error Handling</title><link>https://margani.dev/go-error-handling</link><guid isPermaLink="true">https://margani.dev/go-error-handling</guid><description>Learn efficient Go error handling with returned error values, custom error types, and the errors package for clarity and robustness</description><pubDate>Mon, 24 Mar 2025 07:00:33 GMT</pubDate><category>go</category><category>error-handling</category></item><item><title>Organizing Your Go Applications: A Simple Folder Structure</title><link>https://margani.dev/organizing-your-go-applications-a-simple-folder-structure</link><guid isPermaLink="true">https://margani.dev/organizing-your-go-applications-a-simple-folder-structure</guid><description>Learn to organize your Go applications with a simple folder structure for improved maintainability, scalability, and code readability</description><pubDate>Mon, 17 Mar 2025 07:00:35 GMT</pubDate><category>go</category><category>folder-structure</category></item><item><title>Bash Loops and Conditionals</title><link>https://margani.dev/bash-loops-and-conditionals</link><guid isPermaLink="true">https://margani.dev/bash-loops-and-conditionals</guid><description>Learn how to use Bash `if` statements and `for` loops to enhance your shell scripting skills with conditional execution and iterative processing</description><pubDate>Mon, 10 Mar 2025 07:00:33 GMT</pubDate><category>bash</category><category>for-loop</category><category>if-else</category></item><item><title>Compiling a Go App with SQLite for Linux on Windows Using Docker</title><link>https://margani.dev/compiling-go-app-with-sqlite-for-linux-on-windows-using-docker</link><guid isPermaLink="true">https://margani.dev/compiling-go-app-with-sqlite-for-linux-on-windows-using-docker</guid><description>Compile a Go app with SQLite for Linux on Windows using Docker to create a consistent build environment</description><pubDate>Mon, 03 Mar 2025 07:00:52 GMT</pubDate><category>go</category><category>sqlite</category><category>linux</category><category>windows</category><category>cgo</category></item><item><title>Bicep Templates: Advantages Over Azure ARM Templates</title><link>https://margani.dev/azure-bicep-vs-arm-templates</link><guid isPermaLink="true">https://margani.dev/azure-bicep-vs-arm-templates</guid><description>Bicep templates offer simpler, more efficient IaC deployments, improving readability and developer experience over Azure ARM templates</description><pubDate>Mon, 24 Feb 2025 07:00:11 GMT</pubDate><category>azure</category><category>azure-bicep</category><category>arm-template</category></item><item><title>Sending Telegram Messages/Photos in NodeJS using Fetch</title><link>https://margani.dev/sending-telegram-messages-using-nodejs-fetch</link><guid isPermaLink="true">https://margani.dev/sending-telegram-messages-using-nodejs-fetch</guid><description>Learn how to send Telegram messages and photos in Node.js using the node-fetch library with our simple beginner&apos;s guide</description><pubDate>Mon, 17 Feb 2025 07:00:41 GMT</pubDate><category>telegram</category><category>nodejs</category><category>fetch-api</category></item><item><title>Using chromedp in Go</title><link>https://margani.dev/using-chromedp-in-go</link><guid isPermaLink="true">https://margani.dev/using-chromedp-in-go</guid><description>Learn to use chromedp in Go for web scraping, testing, and browser automation with a concise API. Suitable for dynamic websites</description><pubDate>Mon, 10 Feb 2025 07:00:50 GMT</pubDate><category>chromedp</category><category>go</category><category>browser-automation</category></item><item><title>Using GORM with SQLite</title><link>https://margani.dev/using-gorm-with-sqlite</link><guid isPermaLink="true">https://margani.dev/using-gorm-with-sqlite</guid><description>Learn to integrate GORM with SQLite for efficient database operations in Go. Simplify CRUD operations with this ORM and lightweight database combo</description><pubDate>Mon, 03 Feb 2025 07:00:37 GMT</pubDate><category>go</category><category>gorm</category><category>sqlite</category></item><item><title>Git Rebase vs. Git Merge: A Concise Guide</title><link>https://margani.dev/git-rebase-vs-git-merge-a-concise-guide</link><guid isPermaLink="true">https://margani.dev/git-rebase-vs-git-merge-a-concise-guide</guid><description>Discover the key differences between Git rebase and Git merge for effective branch integration and collaboration in your development projects</description><pubDate>Mon, 27 Jan 2025 07:00:22 GMT</pubDate><category>git</category><category>git-rebase</category><category>git-merge</category></item><item><title>Asynchronous Reduce in JavaScript</title><link>https://margani.dev/asynchronous-reduce-in-javascript</link><guid isPermaLink="true">https://margani.dev/asynchronous-reduce-in-javascript</guid><description>Learn how to use async/await and promises with JavaScript&apos;s reduce function to handle asynchronous operations effectively</description><pubDate>Mon, 20 Jan 2025 07:00:31 GMT</pubDate><category>javascript</category><category>reduce-method</category><category>asynchronous</category></item><item><title>Using reduce in JavaScript</title><link>https://margani.dev/using-reduce-in-javascript</link><guid isPermaLink="true">https://margani.dev/using-reduce-in-javascript</guid><description>Learn how to use the `reduce` function in JavaScript to process arrays and accumulate values with examples and explanations</description><pubDate>Mon, 13 Jan 2025 07:00:28 GMT</pubDate><category>javascript</category><category>reduce-method</category></item><item><title>Modular Infrastructure with Pulumi and C#</title><link>https://margani.dev/modular-infrastructure-with-pulumi-and-csharp</link><guid isPermaLink="true">https://margani.dev/modular-infrastructure-with-pulumi-and-csharp</guid><description>Build modular cloud infrastructure using Pulumi and C</description><pubDate>Mon, 06 Jan 2025 07:00:15 GMT</pubDate><category>pulumi</category><category>csharp</category><category>iac</category></item><item><title>Using Pulumi’s Apply Method</title><link>https://margani.dev/pulumi-apply</link><guid isPermaLink="true">https://margani.dev/pulumi-apply</guid><description>Learn how to leverage Pulumi&apos;s Apply method for dynamic configuration and post-deployment tasks in Azure using C</description><pubDate>Mon, 30 Dec 2024 07:00:53 GMT</pubDate><category>pulumi-apply</category><category>pulumi</category><category>azure</category><category>csharp</category></item><item><title>PowerShell Arrays Quick Tips</title><link>https://margani.dev/powershell-arrays-quick-how-to</link><guid isPermaLink="true">https://margani.dev/powershell-arrays-quick-how-to</guid><description>You are looking for a short but useful help to use Arrays in PowerShell. Here you can find out quick examples of:

Creating arrays

Adding elements

Removing elements

Accessing an element

Iterating them

Filtering them


in PowerShell.
Creating an ...</description><pubDate>Tue, 11 May 2021 11:00:00 GMT</pubDate><category>powershell</category></item><item><title>Async/Await in C# - A quick how to</title><link>https://margani.dev/async-await-csharp</link><guid isPermaLink="true">https://margani.dev/async-await-csharp</guid><description>Using asynchronous programming in C#, you can improve your application’s responsiveness by avoiding the activities which are blocked in a synchronous operation. This post will explain in short so you will understand how to use Async and Await keyword...</description><pubDate>Wed, 21 Apr 2021 11:00:00 GMT</pubDate><category>csharp</category><category>asynchronous</category></item></channel></rss>