<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Systems-Design on Jonah Owen</title>
		<link>https://newo-j.github.io/tags/systems-design/</link>
		<description>Recent content in Systems-Design on Jonah Owen</description>
		<generator>Hugo</generator>
		<language>en-gb</language>
		
		
		
		
			<lastBuildDate>Thu, 13 Aug 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://newo-j.github.io/tags/systems-design/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Building a Clone of Microsoft Defender&#39;s &#39;Attack Story&#39; Engine</title>
				<link>https://newo-j.github.io/projects/micorosft_defender_clone/</link>
				<pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate>
				<guid>https://newo-j.github.io/projects/micorosft_defender_clone/</guid>
				<description>&lt;figure class=&#34;fig&#34; style=&#34;--fw:70%&#34;&gt;&#xA;  &lt;img src=&#34;https://newo-j.github.io/images/defenderclone.png&#34; alt=&#34;Architecture Diagram&#34; width=&#34;1174&#34; height=&#34;742&#34;&#xA;       loading=&#34;eager&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Microsoft Defender&amp;rsquo;s &amp;ldquo;Attack Story&amp;rdquo; feature uses a graph comprised of nodes and relationships (edges) to visually represent the path of a security incident.&#xA;Microsoft uses their own proprietary graphing engine as well as AI to achieve this, but this week I built a simpler clone using NEO4J, an open-source graphing database.&lt;/p&gt;&#xA;&lt;figure class=&#34;fig&#34; style=&#34;--fw:80%&#34;&gt;&#xA;  &lt;img src=&#34;https://newo-j.github.io/images/passwordspraydemo.png&#34; alt=&#34;Password Spray Demo&#34; width=&#34;1915&#34; height=&#34;867&#34;&#xA;       loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;tech-stack&#34;&gt;Tech Stack&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;ALL&lt;/strong&gt;: Docker&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Auth Frontend&lt;/strong&gt;: Nginx, Javascript, HTML&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Auth Backend&lt;/strong&gt;: Python, FastAPI, PostgreSQL&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dashboard Frontend&lt;/strong&gt;: Nginx, Javascript, HTML, CSS, Vis.js&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dashboard Backend&lt;/strong&gt;: Neo4j, Python, FastAPI&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Neo4j Connector&lt;/strong&gt;: Kafka, Python, Neo4j&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Policy Engine&lt;/strong&gt;: Kafka, Python&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;authentication&#34;&gt;Authentication&lt;/h2&gt;&#xA;&lt;p&gt;I started by designing a very simple service to which a user could authenticate to.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
