<?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: Chibuike Okoye</title>
    <description>The latest articles on DEV Community by Chibuike Okoye (@chibuike_okoye).</description>
    <link>https://dev.to/chibuike_okoye</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%2F3934394%2F386bf487-e25a-498f-bf65-b7985184cb79.png</url>
      <title>DEV Community: Chibuike Okoye</title>
      <link>https://dev.to/chibuike_okoye</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chibuike_okoye"/>
    <language>en</language>
    <item>
      <title>Extra Storage Options in Desktop: Increase Memory Storage Without Getting a New Hard Disk</title>
      <dc:creator>Chibuike Okoye</dc:creator>
      <pubDate>Thu, 08 Oct 2026 02:37:19 +0000</pubDate>
      <link>https://dev.to/chibuike_okoye/extra-storage-options-in-desktop-increase-memory-storage-without-getting-a-new-hard-disk-2m2d</link>
      <guid>https://dev.to/chibuike_okoye/extra-storage-options-in-desktop-increase-memory-storage-without-getting-a-new-hard-disk-2m2d</guid>
      <description>&lt;p&gt;Most desktop users face the same issue: the internal storage becomes full after a few years. The usual solution is to buy a new hard disk or SSD, clone the operating system, open the desktop case, and replace the old drive. This process is expensive, wastes the old drive, and risks data loss during cloning.&lt;/p&gt;

&lt;p&gt;Providing an extra storage option directly inside the desktop would solve this problem. The idea is to allow users to increase storage capacity when needed, without buying a completely new hard disk.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Modular Expansion Slots&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Desktops can be designed with extra M.2 and SATA slots that are easily accessible from the front or side panel. Instead of hiding slots under the graphics card or behind cables, these slots would work like a tray. Users can insert an additional SSD or storage module when more space is needed, similar to inserting a memory card.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stackable Storage Cartridges&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of traditional hard disks, manufacturers can provide stackable storage cartridges. A user with a 512GB system can add a 512GB or 1TB cartridge when needed. The system automatically detects the new cartridge and extends the available storage without requiring formatting or reinstallation of the operating system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unified Storage Pool&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With a unified storage pool, the operating system merges all connected modules into a single logical drive. Users do not need to manage multiple drive letters like C: and D:. They simply see that their storage has increased from 500GB to 1TB or 2TB. The system manages where data is stored in the background.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cost and Waste Reduction&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This method reduces cost. Buying a small storage module when needed is cheaper than buying a completely new large hard disk. It also reduces electronic waste because the old drive does not need to be discarded. The user keeps the existing storage and adds to it.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Providing extra storage options inside the desktop as modular, expandable slots allows users to decide when and how much to increase their storage. It is flexible, affordable, and removes the need to buy a new hard disk every time storage becomes full.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>softwaredevelopment</category>
      <category>software</category>
    </item>
    <item>
      <title>Zero-Desktop Android Dev: Compiling, Dexing, and Signing API 36 APKs On-Device with Termux</title>
      <dc:creator>Chibuike Okoye</dc:creator>
      <pubDate>Thu, 06 Aug 2026 02:54:00 +0000</pubDate>
      <link>https://dev.to/chibuike_okoye/zero-desktop-android-dev-compiling-dexing-and-signing-api-36-apks-on-device-with-termux-49mk</link>
      <guid>https://dev.to/chibuike_okoye/zero-desktop-android-dev-compiling-dexing-and-signing-api-36-apks-on-device-with-termux-49mk</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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4p7pk09di92tzz11s01t.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4p7pk09di92tzz11s01t.jpg" alt=" " width="800" height="1733"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn0v588eassuthxb1olnz.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn0v588eassuthxb1olnz.jpg" alt=" " width="800" height="1733"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb25n6luib6xiigexjue6.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb25n6luib6xiigexjue6.jpg" alt=" " width="800" height="1733"&gt;&lt;/a&gt;Who says you need a heavy desktop setup and bloated IDEs just to build Android apps?&lt;/p&gt;

&lt;p&gt;I set out to prove that you can assemble, dex, package, and sign a native Android application directly on a mobile device targeting &lt;strong&gt;compileSdk 36&lt;/strong&gt; using pure CLI binaries inside Termux.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ The On-Device Build Pipeline
&lt;/h3&gt;

&lt;p&gt;Instead of relying on desktop Gradle or Android Studio, the entire build toolchain was executed on-device:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Compilation (&lt;code&gt;ecj&lt;/code&gt;)&lt;/strong&gt;: Java source files compiled directly against the &lt;code&gt;android-36&lt;/code&gt; platform JAR.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dexing (&lt;code&gt;d8&lt;/code&gt;)&lt;/strong&gt;: Converting compiled Java bytecode into Dalvik Executable (&lt;code&gt;classes.dex&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Linking (&lt;code&gt;aapt2&lt;/code&gt;)&lt;/strong&gt;: Compiling and packaging resources, manifest, and assets into an unsigned APK container.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Binary Signing (&lt;code&gt;apksigner&lt;/code&gt;)&lt;/strong&gt;: Generating a local keystore and signing the APK with proper v2/v3 signature schemes.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🚀 The Result
&lt;/h3&gt;

&lt;p&gt;The generated binary installed cleanly and launched smoothly with zero runtime crashes or classloader errors—proving that full-stack Android compilation can live natively on ARM hardware.&lt;/p&gt;

&lt;p&gt;Next step: Wiring this CLI toolchain up to a web-based Monaco Editor running on a local Node server right inside Termux to create a lightweight, self-hosted web IDE!&lt;/p&gt;

&lt;h1&gt;
  
  
  android #mobiledevelopment #termux #buildtools
&lt;/h1&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqwyuvjc0lfjnfo0zh1mq.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqwyuvjc0lfjnfo0zh1mq.jpg" alt=" " width="800" height="1733"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fprp8qan0902q83b8uytk.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fprp8qan0902q83b8uytk.jpg" alt=" " width="800" height="1733"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhefxd1oqcoyhacel7ttu.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhefxd1oqcoyhacel7ttu.jpg" alt=" " width="800" height="1733"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>programming</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Building an Edge-Computed Web Ad Network with Cloudflare Workers and Workers AI</title>
      <dc:creator>Chibuike Okoye</dc:creator>
      <pubDate>Sat, 25 Jul 2026 08:26:21 +0000</pubDate>
      <link>https://dev.to/chibuike_okoye/building-an-edge-computed-web-ad-network-with-cloudflare-workers-and-workers-ai-1noe</link>
      <guid>https://dev.to/chibuike_okoye/building-an-edge-computed-web-ad-network-with-cloudflare-workers-and-workers-ai-1noe</guid>
      <description>&lt;p&gt;Monetizing web traffic shouldn't mean slowing down your site with bloated ad scripts and long network round-trips. &lt;/p&gt;

&lt;p&gt;When building &lt;strong&gt;Connectgold&lt;/strong&gt;, my goal was to design a lightweight web ad server that executes auctions at the edge with sub-10ms response times—while giving publishers fast, transparent access to earnings.&lt;/p&gt;

&lt;p&gt;Here is a look at the architecture behind it and how edge workers make ultra-fast ad rendering possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ The Problem with Traditional Ad Delivery
&lt;/h2&gt;

&lt;p&gt;Standard web ad tags usually go through multiple heavy redirects and centralized server checks before rendering creative. This introduces layout shifts (CLS), drags down Core Web Vitals, and degrades user experience.&lt;/p&gt;

&lt;p&gt;By moving the auction engine to edge nodes, ad requests are evaluated closest to the visitor, eliminating unnecessary cross-region network hops.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Core Features &amp;amp; Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Edge Auction Engine
&lt;/h3&gt;

&lt;p&gt;Requests are processed directly at edge isolates. The worker evaluates active campaign inventory, checks user consent status, and streams back lightweight HTML banners or native card payloads instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Fair Campaign Rotation
&lt;/h3&gt;

&lt;p&gt;To ensure all active advertisers receive equal opportunity and visibility—regardless of bid size—the server uses a balanced rotation model across funded campaign pools.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dynamic Copy via Workers AI
&lt;/h3&gt;

&lt;p&gt;To make ad units contextually relevant without bloating client scripts, the server integrates Workers AI. It dynamically generates localized ad headlines and call-to-action (CTA) text tailored to the visitor’s region and niche product keywords.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. OpenRTB &amp;amp; Header Bidding Support
&lt;/h3&gt;

&lt;p&gt;The engine includes standard endpoint routes for easy integration into standard OpenRTB 2.5 web header bidding pipelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Automated Local Payments
&lt;/h3&gt;

&lt;p&gt;Handling advertiser balances and publisher payouts can be a major friction point. The backend integrates direct wallet funding and payout processing via Paystack, supporting instant account verification and seamless transfers.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Looking for Community Feedback!
&lt;/h2&gt;

&lt;p&gt;As I continue optimizing the platform, I'd love to hear from other web engineers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What strategies do you use to eliminate Cumulative Layout Shift (CLS) when injecting asynchronous ad containers?&lt;/li&gt;
&lt;li&gt;Have you experimented with edge-computed auctions or Workers AI in production?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop your thoughts or questions in the comments below! 👇&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>cloudflarechallenge</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
