<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Muzz on Alex Collie's blog</title><link>https://www.collie.codes/tags/muzz/</link><description>Recent content in Muzz on Alex Collie's blog</description><generator>Hugo</generator><language>en</language><copyright>Alex Collie</copyright><lastBuildDate>Sun, 13 Sep 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://www.collie.codes/tags/muzz/index.xml" rel="self" type="application/rss+xml"/><item><title>Moving to Monzo</title><link>https://www.collie.codes/posts/moved-to-monzo/</link><pubDate>Sun, 13 Sep 2026 12:00:00 +0000</pubDate><guid>https://www.collie.codes/posts/moved-to-monzo/</guid><description>&lt;p>A quick update: I&amp;rsquo;ve moved to Monzo!&lt;/p>
&lt;p>&lt;img alt="Monzo welcome pack with a hoodie, t-shirt, mug, tote bag, chocolate and The Book of Money" src="https://www.collie.codes/posts/monzo/welcome-pack.jpg">&lt;/p>
&lt;p>I&amp;rsquo;m super happy with all the work I did at Muzz, and I&amp;rsquo;m really grateful to everyone I&amp;rsquo;ve worked with along the way. I&amp;rsquo;ve learned so much from all of you.&lt;/p>
&lt;p>Excited for what comes next.&lt;/p></description></item><item><title>The Five Stages of Testing (and How I Finally Reached Acceptance)</title><link>https://www.collie.codes/posts/stages-of-testing/</link><pubDate>Sat, 01 Nov 2025 11:01:53 +0000</pubDate><guid>https://www.collie.codes/posts/stages-of-testing/</guid><description>&lt;h3 id="background" class="scroll-mt-8 group">
 Background
 
 &lt;a href="#background"
 class="no-underline hidden opacity-50 hover:opacity-100 !text-inherit group-hover:inline-block"
 aria-hidden="true" title="Link to this heading" tabindex="-1">
 &lt;svg
 xmlns="http://www.w3.org/2000/svg"
 width="16"
 height="16"
 fill="none"
 stroke="currentColor"
 stroke-linecap="round"
 stroke-linejoin="round"
 stroke-width="2"
 class="lucide lucide-link w-4 h-4 block"
 viewBox="0 0 24 24"
>
 &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
 &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
&lt;/svg>

 &lt;/a>
 
&lt;/h3>
&lt;p>I’ve been on quite a journey with testing, When I first started they were the part of the codebase constantly breaking and causing endless regeneration. Luckily, that was some time ago and
my views have matured, mostly through being burned by not building tests and seeing the difficulty of replicating a bug.&lt;/p></description></item><item><title>How I Built a Durable, Real-Time Impressions System for Muzz Social</title><link>https://www.collie.codes/posts/real-time-impressions/</link><pubDate>Sat, 13 Sep 2025 13:55:34 +0100</pubDate><guid>https://www.collie.codes/posts/real-time-impressions/</guid><description>&lt;p>Muzz Social is the largest Muslim social network in the world, we allow for users to post, comment and share their experiences with each other.&lt;/p>
&lt;h2 id="background" class="scroll-mt-8 group">
 Background
 
 &lt;a href="#background"
 class="no-underline hidden opacity-50 hover:opacity-100 !text-inherit group-hover:inline-block"
 aria-hidden="true" title="Link to this heading" tabindex="-1">
 &lt;svg
 xmlns="http://www.w3.org/2000/svg"
 width="16"
 height="16"
 fill="none"
 stroke="currentColor"
 stroke-linecap="round"
 stroke-linejoin="round"
 stroke-width="2"
 class="lucide lucide-link w-4 h-4 block"
 viewBox="0 0 24 24"
>
 &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
 &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
&lt;/svg>

 &lt;/a>
 
&lt;/h2>
&lt;p>At the start of the year we added a simple but effective impressions system. We used the page which the user was requesting to be counted as an impression, we then stored the results of this inside ElastiCache (Valkey). Every time the feed was requested we would then exclude the posts unless the comment count had changed by a significant amount. This change created a very positive change for our users seeing a 22% increase in feed requests over the two months after we rolled out the feature. However there was an inherent issue with this which was that just because the whole page was requested it does not mean it had been seen. So quickly after this was released we started work on its successor named mobile impressions. The system was to be near real time, it also had to be durable as we did not want to drop events as this could cause inconvenience to the users. This was no mean feat as we handle around 150,000 events a minute all of this would need to be processed and handled as quickly as possible. Muzz Social uses an event driven architecture meaning when certain actions happen it creates events which can be tapped into this allows us to extend existing functionality in a scalable and controllable way.&lt;/p></description></item><item><title>Muzz socialのための耐久性のあるリアルタイムインプレッションシステムの構築方法</title><link>https://www.collie.codes/ja/posts/impressions/</link><pubDate>Sat, 13 Sep 2025 13:55:34 +0100</pubDate><guid>https://www.collie.codes/ja/posts/impressions/</guid><description>&lt;p>Muzz socialは世界最大のムスリムソーシャルネットワークであり、ユーザーが投稿、コメント、そして体験を共有できるプラットフォームを提供しています。&lt;/p>
&lt;h2 id="背景" class="scroll-mt-8 group">
 背景
 
 &lt;a href="#%e8%83%8c%e6%99%af"
 class="no-underline hidden opacity-50 hover:opacity-100 !text-inherit group-hover:inline-block"
 aria-hidden="true" title="Link to this heading" tabindex="-1">
 &lt;svg
 xmlns="http://www.w3.org/2000/svg"
 width="16"
 height="16"
 fill="none"
 stroke="currentColor"
 stroke-linecap="round"
 stroke-linejoin="round"
 stroke-width="2"
 class="lucide lucide-link w-4 h-4 block"
 viewBox="0 0 24 24"
>
 &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
 &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
&lt;/svg>

 &lt;/a>
 
&lt;/h2>
&lt;p>年初に、シンプルながら効果的なインプレッションシステムを追加しました。ユーザーがリクエストしたページをインプレッションとしてカウントし、その結果をElastiCache(Valkey)に保存しました。フィードがリクエされるたびに、コメント数が大幅に変更されない限り、投稿を除外するようにしました。この変更により、機能をロールアウトした後の2ヶ月間でフィードリクエストが22%増加するという、ユーザーにとって非常にポジティブな変化をもたらしました。しかし、この方法には本質的な問題がありました。ページ全体がリクエストされたからといって、それが実際に見られたとは限らないのです。そのため、このリリース直後に、モバイルインプレッションという名前の後継システムの開発を開始しました。このシステムはほぼリアルタイムであり、イベントをドロップしたくなかったため耐久性も必要でした。これは決して容易なことではありませんでした。私たちは1分間に約150,000のイベントを処理しており、これらすべてを可能な限り迅速に処理・対応する必要があったのです。Muzz socialはイベント駆動アーキテクチャを使用しており、特定のアクションが発生するとイベントが作成され、それを活用できるため、スケーラブルで制御可能な方法で既存の機能を拡張できます。&lt;/p>
&lt;h2 id="目標" class="scroll-mt-8 group">
 目標
 
 &lt;a href="#%e7%9b%ae%e6%a8%99"
 class="no-underline hidden opacity-50 hover:opacity-100 !text-inherit group-hover:inline-block"
 aria-hidden="true" title="Link to this heading" tabindex="-1">
 &lt;svg
 xmlns="http://www.w3.org/2000/svg"
 width="16"
 height="16"
 fill="none"
 stroke="currentColor"
 stroke-linecap="round"
 stroke-linejoin="round"
 stroke-width="2"
 class="lucide lucide-link w-4 h-4 block"
 viewBox="0 0 24 24"
>
 &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
 &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
&lt;/svg>

 &lt;/a>
 
&lt;/h2>
&lt;p>このプロジェクトでの主な優先事項の一つは、耐久性とスループットでした。Muzzでは、ネットワーキングの問題やサービスが応答できない場合にリトライメカニズムを持つことができるため、キュー(SQS)を広範囲に活用しています。さらに、Kinesisリーダーのチェックポイントシステムにより、シャードの一部が失敗した場合、シャード全体が再試行されるため、システムへのイベントの耐久性が保証されます。&lt;/p></description></item><item><title>How we automatically moderate posts in Muzz Social at scale</title><link>https://www.collie.codes/posts/auto-moderation/</link><pubDate>Thu, 29 May 2025 20:35:57 +0100</pubDate><guid>https://www.collie.codes/posts/auto-moderation/</guid><description>&lt;h3 id="background" class="scroll-mt-8 group">
 Background
 
 &lt;a href="#background"
 class="no-underline hidden opacity-50 hover:opacity-100 !text-inherit group-hover:inline-block"
 aria-hidden="true" title="Link to this heading" tabindex="-1">
 &lt;svg
 xmlns="http://www.w3.org/2000/svg"
 width="16"
 height="16"
 fill="none"
 stroke="currentColor"
 stroke-linecap="round"
 stroke-linejoin="round"
 stroke-width="2"
 class="lucide lucide-link w-4 h-4 block"
 viewBox="0 0 24 24"
>
 &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
 &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
&lt;/svg>

 &lt;/a>
 
&lt;/h3>
&lt;p>Muzz Social is the world’s leading Muslim-focused social network. We allow people to share and connect with Muslims around the world.&lt;/p>
&lt;p>Muzz Social sends push notifications for posts to users who haven&amp;rsquo;t been on the platform for 48 hours. These notifications are generated by selecting the most engaging and relevant posts, helping to re-engage users and surface content they might have missed. This feature has proven effective in delivering posts that matter to users.&lt;/p></description></item></channel></rss>