<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>mbinjamil.dev</title><description>Hey, I&apos;m Muhammad and here I share my software engineering journey!</description><link>https://mbinjamil.dev/</link><item><title>How Rust solves memory management without a garbage collector</title><link>https://mbinjamil.dev/writings/rust-memory-management/</link><guid isPermaLink="true">https://mbinjamil.dev/writings/rust-memory-management/</guid><description>Rust has been consistently increasing in popularity, and one of the reasons is its built-in memory safety capability without sacrificing high-performace. But how does Rust manages memory automatically without a garbage collector?</description><pubDate>Sat, 15 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Understanding asynchronous I/O; building an event loop from scratch</title><link>https://mbinjamil.dev/writings/understanding-async-io/</link><guid isPermaLink="true">https://mbinjamil.dev/writings/understanding-async-io/</guid><description>What is asynchronous I/O exactly and how does it work under the hoods? In this post, we’re going to be answering these questions and then building a bare-bones event loop from scratch in C to demonstrate async I/O.</description><pubDate>Sat, 17 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Using interfaces in Go the right way</title><link>https://mbinjamil.dev/writings/using-interfaces-in-go/</link><guid isPermaLink="true">https://mbinjamil.dev/writings/using-interfaces-in-go/</guid><description>Go interfaces offer great flexibility and powerful abstraction. However, their misuse can lead to cluttered and unmaintable code. Read this guide to learn how to use Go interfaces that follow SOLID design principles</description><pubDate>Thu, 10 Feb 2022 00:00:00 GMT</pubDate></item></channel></rss>