<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cheikh Seck</title>
    <description>The latest articles on DEV Community by Cheikh Seck (@cheikh_seck_01).</description>
    <link>https://dev.to/cheikh_seck_01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2625724%2F231e80f8-3459-455a-b23a-781596328434.png</url>
      <title>DEV Community: Cheikh Seck</title>
      <link>https://dev.to/cheikh_seck_01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cheikh_seck_01"/>
    <language>en</language>
    <item>
      <title>eBPF vs Traditional Observability: Why Kernel-Level Debugging Wins for AI Services</title>
      <dc:creator>Cheikh Seck</dc:creator>
      <pubDate>Fri, 26 Jun 2026 09:13:01 +0000</pubDate>
      <link>https://dev.to/cheikh_seck_01/ebpf-vs-traditional-observability-why-kernel-level-debugging-wins-for-ai-services-3kaj</link>
      <guid>https://dev.to/cheikh_seck_01/ebpf-vs-traditional-observability-why-kernel-level-debugging-wins-for-ai-services-3kaj</guid>
      <description>&lt;h2&gt;
  
  
  eBPF vs Traditional Observability: Why Kernel-Level Debugging Wins for AI Services
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published on Medium: &lt;a href="https://cheikhhseck.medium.com/ebpf-in-go-observability-for-ai-generated-services-9aae7573b823" rel="noopener noreferrer"&gt;https://cheikhhseck.medium.com/ebpf-in-go-observability-for-ai-generated-services-9aae7573b823&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Your AI-generated service is running in production. Latency spikes from 40ms to 4 seconds. Your application logs show nothing unusual. Traditional observability tools (APM, logs, metrics) are blind to what's happening.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution:&lt;/strong&gt; eBPF gives you kernel-level visibility without modifying your code or restarting services.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why eBPF Matters for AI-Generated Code
&lt;/h3&gt;

&lt;p&gt;AI-generated services often lack context about kernel interactions. When things go wrong at the system level, you need observability that goes beyond application-level metrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world scenario:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;P95 latency jumped from 40ms to 4s&lt;/li&gt;
&lt;li&gt;No errors in application logs&lt;/li&gt;
&lt;li&gt;Traditional tools showed nothing&lt;/li&gt;
&lt;li&gt;eBPF revealed the root cause: syscall overhead from AI-generated file operations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key Takeaways from the Original Article
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Installation &amp;amp; Setup&lt;/strong&gt; - Getting started with Cilium's eBPF library in Go&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writing eBPF Programs&lt;/strong&gt; - Using C for kernel-level tracing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loading from Go&lt;/strong&gt; - Practical patterns for loading and attaching programs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tracing syscalls, network events, and file I/O&lt;/strong&gt; - Real examples you can run&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compilation tips&lt;/strong&gt; - Making it work in production environments&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Code Example
&lt;/h3&gt;

&lt;p&gt;The original article includes a working example you can run in 10 minutes. It demonstrates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attaching kprobes to kernel functions&lt;/li&gt;
&lt;li&gt;Using perf-event ringbuffers for efficient data collection&lt;/li&gt;
&lt;li&gt;Tracing file I/O and network events from Go&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://cheikhhseck.medium.com/ebpf-in-go-observability-for-ai-generated-services-9aae7573b823" rel="noopener noreferrer"&gt;Link to the full tutorial with code&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters Now
&lt;/h3&gt;

&lt;p&gt;As AI-generated code becomes more prevalent, we need observability tools that can debug at the system level. eBPF provides that capability without requiring changes to existing applications.&lt;/p&gt;

</description>
      <category>go</category>
      <category>ai</category>
      <category>observability</category>
    </item>
    <item>
      <title>Godex: AI assistance in the terminal</title>
      <dc:creator>Cheikh Seck</dc:creator>
      <pubDate>Fri, 01 May 2026 10:35:55 +0000</pubDate>
      <link>https://dev.to/cheikh_seck_01/godex-ai-assistance-in-the-terminal-ihj</link>
      <guid>https://dev.to/cheikh_seck_01/godex-ai-assistance-in-the-terminal-ihj</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgpqsdswxq3p90tcqlau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgpqsdswxq3p90tcqlau.png" alt=" " width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi folks,&lt;/p&gt;

&lt;p&gt;I recently wrote an article I feel has some insight in how LLMs work and the best way to apply it to your day-2-day work. "AI will not take your job, but somebody using it will"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/dev-genius/godex-ai-assisted-coding-in-the-terminal-1d5182edecde?sk=b850044334e8b97720277dfdf458a17f" rel="noopener noreferrer"&gt;https://medium.com/dev-genius/godex-ai-assisted-coding-in-the-terminal-1d5182edecde?sk=b850044334e8b97720277dfdf458a17f&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>agents</category>
      <category>llm</category>
    </item>
    <item>
      <title>Don't pay for an AI sandbox — build one locally with Docker</title>
      <dc:creator>Cheikh Seck</dc:creator>
      <pubDate>Thu, 26 Mar 2026 11:32:21 +0000</pubDate>
      <link>https://dev.to/cheikh_seck_01/dont-pay-for-an-ai-sandbox-build-one-locally-with-docker-3840</link>
      <guid>https://dev.to/cheikh_seck_01/dont-pay-for-an-ai-sandbox-build-one-locally-with-docker-3840</guid>
      <description>&lt;p&gt;Don't pay for an AI sandbox. Build one locally that's secure with Docker.&lt;/p&gt;

&lt;p&gt;Here's a practical guide that spins up a locked-down environment with a TUI, a persistent config volume, and a proxy to your local Ollama:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cheikh2shift/godex/tree/main#running-securely-with-docker" rel="noopener noreferrer"&gt;https://github.com/cheikh2shift/godex/tree/main#running-securely-with-docker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this setup?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs locally (no vendor lock-in)&lt;/li&gt;
&lt;li&gt;Sandboxed tools (bash, filesystem, webscraper)&lt;/li&gt;
&lt;li&gt;Config persisted in a Docker volume&lt;/li&gt;
&lt;li&gt;Works from any project directory via &lt;code&gt;WORKSPACE_DIR&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quick start&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;UID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;GID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;WORKSPACE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$PWD&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; docker compose &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/godex/docker-compose.yml up &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker attach godex &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker compose &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/godex/docker-compose.yml down
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ollama note&lt;/strong&gt;&lt;br&gt;
If you're using a host Ollama instance via the nginx proxy, make sure Ollama listens on &lt;code&gt;0.0.0.0:11434&lt;/code&gt; (not just &lt;code&gt;127.0.0.1&lt;/code&gt;).&lt;/p&gt;

&lt;h1&gt;
  
  
  security #docker #opensource
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>docker</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Go 1.23’s Iter package</title>
      <dc:creator>Cheikh Seck</dc:creator>
      <pubDate>Sat, 28 Dec 2024 13:48:00 +0000</pubDate>
      <link>https://dev.to/cheikh_seck_01/go-123s-iter-package-24kc</link>
      <guid>https://dev.to/cheikh_seck_01/go-123s-iter-package-24kc</guid>
      <description>&lt;p&gt;A post about writing a custom iterator that returns a map’s values in a constant order.&lt;/p&gt;

&lt;p&gt;Maps are notoriously known for changing their iteration order during each range loop. “When iterating over a map with a range loop, the iteration order is not specified and is not guaranteed to be the same from one iteration to the next.” The solution proposed by the Go team was to define a separate data structure that explicitly specifies the order of iteration; this may be a slice or array with the keys in the desired order.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdnyb45hjsxrim05ncpff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdnyb45hjsxrim05ncpff.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this post, we’ll look at a recent approach to solving the iteration order problem; as well as understand how to define a really basic iterator with the iter package.&lt;/p&gt;

&lt;p&gt;You can read the rest here: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://cheikhhseck.medium.com/go-1-23s-iter-package-f6b44dfb9b7b?source=friends_link&amp;amp;sk=1cbef6905c4acaa7b816e661068f967a" rel="noopener noreferrer"&gt;https://cheikhhseck.medium.com/go-1-23s-iter-package-f6b44dfb9b7b?source=friends_link&amp;amp;sk=1cbef6905c4acaa7b816e661068f967a&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>go</category>
    </item>
  </channel>
</rss>
