<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Magd Aref</title>
<description>Personal site of Magd Aref, full stack developer in Ontario, Canada. Notes on building software, from Spring Boot microservices and Elixir web apps to bare-metal C on STM32.</description>
<link>https://github.com/Magd74NA/blog_and_portfolio</link>
<atom:link href="https://magdaref.com/api/rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid isPermaLink="true">https://magdaref.com/blog/embedded-cmake</guid>
<title>STM32F446 + CMake + CLion Integration</title>
<link>https://magdaref.com/blog/embedded-cmake</link>
<description>Setting up one-click build and flash for STM32F446 bare-metal development with CMake and CLion on Arch Linux.</description>
<pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/chapter6gbati</guid>
<title>Understanding ARM CMSIS: Memory-Mapped Hardware</title>
<link>https://magdaref.com/blog/chapter6gbati</link>
<description>How I learned to work with ARM CMSIS standard by rewriting a blinky program and understanding memory-mapped peripheral structures.</description>
<pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/chapter5gbati</guid>
<title>Building a Custom Makefile for STM32 Bare-Metal Development</title>
<link>https://magdaref.com/blog/chapter5gbati</link>
<description>I wrote a custom Makefile for my STM32F446 bare-metal C project, learning about target-prerequisite relationships and Make's reserved keywords along the way.</description>
<pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/building-an-analytics-dashboard-with-sveltekit-and-cloudflare-d1</guid>
<title>Building an Analytics Dashboard with SvelteKit and Cloudflare D1</title>
<link>https://magdaref.com/blog/building-an-analytics-dashboard-with-sveltekit-and-cloudflare-d1</link>
<description>Built a self-hosted analytics dashboard that captures pageviews, enriches data with Cloudflare geo and user-agent parsing, and displays real-time stats and trends using uPlot.</description>
<pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/on-ai-coding-part-1</guid>
<title>On AI Coding Part 1: Death of the Free Lunch</title>
<link>https://magdaref.com/blog/on-ai-coding-part-1</link>
<description>AI coding tools are burning through VC capital at an unsustainable rate. What happens when the subsidies dry up and users have to pay what the tech actually costs?</description>
<pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/stm32-linker-script-and-startup-code</guid>
<title>STM32 bare metal: writing a linker script and startup code from scratch</title>
<link>https://magdaref.com/blog/stm32-linker-script-and-startup-code</link>
<description>Chapter 4 of Gbati's Bare-Metal-C: replacing the auto-generated startup assembly and linker script with hand-written C equivalents, then debugging through five attempts before the LED blinked.</description>
<pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/stm32-bare-metal-blinky-gnu-toolchain</guid>
<title>STM32 bare metal blinky: walking the GNU ARM toolchain</title>
<link>https://magdaref.com/blog/stm32-bare-metal-blinky-gnu-toolchain</link>
<description>Chapter 3 of Gbati's Bare-Metal-C: upgrading from a static LED to a proper blinky, then manually running each stage of the GNU ARM toolchain to see what STM32CubeIDE normally hides.</description>
<pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/velocity-tracker-project-plan</guid>
<title>Planning a bar velocity tracker from scratch</title>
<link>https://magdaref.com/blog/velocity-tracker-project-plan</link>
<description>A tentative design for a barbell velocity tracker: STM32L4, a high-resolution accelerometer, e-ink display, and a CR2032 coin cell. This is the optimistic version of the plan.</description>
<pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/dimalates-pilates-lms-phoenix-ash</guid>
<title>Building dilates-education.com: a multi-tenant Pilates LMS in Phoenix and Ash</title>
<link>https://magdaref.com/blog/dimalates-pilates-lms-phoenix-ash</link>
<description>Notes on architecting a multi-tenant learning management system for a Pilates studio in Elixir, Phoenix LiveView, and the Ash framework, including why Ash was the right call and where it pushed back.</description>
<pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/jdextractor-local-first-job-search-cms</guid>
<title>JDExtractor: a local-first job search CRM</title>
<link>https://magdaref.com/blog/jdextractor-local-first-job-search-cms</link>
<description>A single Go binary that wraps a Svelte UI, an LLM-driven resume tailoring pipeline, and a filesystem-as-database job tracker. Notes on the constraints I picked and what they bought me.</description>
<pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
</item><item>
<guid isPermaLink="true">https://magdaref.com/blog/stm32-bare-metal-hello-world</guid>
<title>STM32 bare metal hello world</title>
<link>https://magdaref.com/blog/stm32-bare-metal-hello-world</link>
<description>First embedded foray: configuring a Nucleo F446 by reading the datasheet directly and turning on the LED 2 light, following Israel Gbati's Bare-Metal Embedded C Programming.</description>
<pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
