<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Nidal Bakir — Journal</title><description>Articles on Go, Flutter, and software systems.</description><link>https://portfolio.nidal-bakir.workers.dev/blog/</link><language>en</language><item><title>Flutter worked in debug, but release was stuck on the splash screen</title><link>https://portfolio.nidal-bakir.workers.dev/blog/flutter-debug-works-release-splash-screen/</link><guid>https://portfolio.nidal-bakir.workers.dev/blog/flutter-debug-works-release-splash-screen/</guid><description>My logger hid the exception. Once I could read it, I traced the startup failure to a JNI lookup broken by R8.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>Android</category><category>Debugging</category><category>R8</category></item><item><title>Go Hypercube: a backend framework case study</title><link>https://portfolio.nidal-bakir.workers.dev/blog/go-hypercube-case-study/</link><guid>https://portfolio.nidal-bakir.workers.dev/blog/go-hypercube-case-study/</guid><description>A Go backend framework with explicit plugin startup and a queue contract that keeps backend differences visible.</description><pubDate>Fri, 16 Oct 2026 17:51:18 GMT</pubDate><category>Go</category><category>Architecture</category><category>Case study</category></item><item><title>How I built the queue contract in Go Hypercube</title><link>https://portfolio.nidal-bakir.workers.dev/blog/go-hypercube-queue-contract/</link><guid>https://portfolio.nidal-bakir.workers.dev/blog/go-hypercube-queue-contract/</guid><description>How I use one queue contract across SQL, Redis, Valkey, Amazon SQS, RabbitMQ, and memory.</description><pubDate>Fri, 16 Oct 2026 12:04:53 GMT</pubDate><category>Go</category><category>Architecture</category><category>Queues</category></item><item><title>Getting plugin startup order right in Go</title><link>https://portfolio.nidal-bakir.workers.dev/blog/go-hypercube-plugin-startup/</link><guid>https://portfolio.nidal-bakir.workers.dev/blog/go-hypercube-plugin-startup/</guid><description>How Go Hypercube checks plugin dependencies and separates registration from startup.</description><pubDate>Fri, 16 Oct 2026 11:56:21 GMT</pubDate><category>Go</category><category>Architecture</category></item><item><title>Generating app icons with Go</title><link>https://portfolio.nidal-bakir.workers.dev/blog/generating-app-icons-with-go/</link><guid>https://portfolio.nidal-bakir.workers.dev/blog/generating-app-icons-with-go/</guid><description>The image pipeline behind assetsgen, from one source image to platform specific icons and assets.</description><pubDate>Fri, 16 Oct 2026 11:56:21 GMT</pubDate><category>Go</category><category>Tooling</category></item><item><title>A receipt should be one print job</title><link>https://portfolio.nidal-bakir.workers.dev/blog/printing-a-receipt-in-flutter/</link><guid>https://portfolio.nidal-bakir.workers.dev/blog/printing-a-receipt-in-flutter/</guid><description>How I handle receipt ordering, printer readiness, and failed submissions in my Flutter printer SDK.</description><pubDate>Fri, 16 Oct 2026 11:56:21 GMT</pubDate><category>Flutter</category><category>Android</category></item></channel></rss>