<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Network-Chaos-Engineering on Alan Njogu</title>
    <link>/tags/network-chaos-engineering/</link>
    <description>Recent content in Network-Chaos-Engineering on Alan Njogu</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 28 May 2026 11:00:12 +0300</lastBuildDate><atom:link href="/tags/network-chaos-engineering/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>let there be jitterbug - part 1</title>
      <link>/posts/let-there-be-jitterbug-pt-1/</link>
      <pubDate>Thu, 28 May 2026 11:00:12 +0300</pubDate>

      <guid>/posts/let-there-be-jitterbug-pt-1/</guid>
      <description>&lt;h2 id=&#34;the-why&#34;&gt;the why:&lt;/h2&gt;
&lt;p&gt;I am a software engineer, mainly working on the backend, and I&amp;rsquo;ve been accustomed to writing APIs and Developer CLI tools for a while.
Don&amp;rsquo;t get me wrong, I love working in the backend mines, it&amp;rsquo;s fun, it&amp;rsquo;s engaging, I excel in this part of building scalable backends. But, it does get less engaging when all you do is build CRUD apps (just kidding, APIs are not just CRUD apps, a lot goes into building scalable APIs and backend systems) for the better part of your day.&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;the-why&#34;&gt;the why:&lt;/h2&gt;
&lt;p&gt;I am a software engineer, mainly working on the backend, and I&amp;rsquo;ve been accustomed to writing APIs and Developer CLI tools for a while.
Don&amp;rsquo;t get me wrong, I love working in the backend mines, it&amp;rsquo;s fun, it&amp;rsquo;s engaging, I excel in this part of building scalable backends. But, it does get less engaging when all you do is build CRUD apps (just kidding, APIs are not just CRUD apps, a lot goes into building scalable APIs and backend systems) for the better part of your day.&lt;/p&gt;
&lt;p&gt;I write a lot of Go, and I wanted to dig a little bit deeper into what CLIs can actually do, beyond just wrapping external APIs.
That&amp;rsquo;s how I stumbled into interacting with the Linux Kernel through eBPF &lt;sup&gt;&lt;a href=&#34;https://ebpf.io/what-is-ebpf/&#34;&gt;[?]&lt;/a&gt;&lt;/sup&gt;. A genuinely impressive piece of technology. The more I read about it, the more I wanted to build something real with it.&lt;/p&gt;
&lt;h2 id=&#34;the-what&#34;&gt;the what:&lt;/h2&gt;
&lt;p&gt;As a beginner project into this new tech, I am working on a network chaos engineering tool.
I want to build a simple CLI tool that might help an engineer understand how their products behave when the network isn’t.
You experiment on a running system to build confidence it will effectively tolerate failures (network failures).&lt;/p&gt;
&lt;h2 id=&#34;the-how&#34;&gt;the how:&lt;/h2&gt;
&lt;p&gt;This CLI tool will leverage eBPF (extended Berkeley Packet Filter) &lt;sup&gt;&lt;a href=&#34;https://docs.cilium.io/en/latest/reference-guides/bpf/index.html&#34;&gt;[?]&lt;/a&gt;&lt;/sup&gt; and Linux Traffic Control (TC) &lt;sup&gt;&lt;a href=&#34;https://tldp.org/HOWTO/Traffic-Control-HOWTO/intro.html&#34;&gt;[?]&lt;/a&gt;&lt;/sup&gt; to inject realistic network conditions directly into the local development loop.
The Go CLI binary will compile and load an eBPF program (written in C) into the kernel&amp;rsquo;s network interface.&lt;/p&gt;

&lt;img src=&#34;/images/face.png&#34;  alt=&#34;damn&#34;  class=&#34;left&#34;   width=&#34;300&#34;   /&gt;


&lt;p&gt;&lt;em&gt;man I haven&amp;rsquo;t written any C code in the longest&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Anyway, the eBPF program will dynamically inject random packet drops, simulate high-jitter delays, and artificial TCP connection drops that exactly mimic a user&amp;rsquo;s network status in different conditions (congested-wifi, deep-rural, cellular-5g e.t.c). This will force the backend systems to prove they can survive real-world network infrastructure before deploying to production.&lt;/p&gt;
&lt;p&gt;More coming soon!&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
