<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by VizyDev on Medium]]></title>
        <description><![CDATA[Stories by VizyDev on Medium]]></description>
        <link>https://medium.com/@vizy.dev?source=rss-07b3d31b2809------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*DVNXlq3pRVT-LuKggW2RCQ.png</url>
            <title>Stories by VizyDev on Medium</title>
            <link>https://medium.com/@vizy.dev?source=rss-07b3d31b2809------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 13:43:10 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@vizy.dev/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Your Guide to Cloudflare Pages]]></title>
            <link>https://medium.com/@vizy.dev/your-guide-to-cloudflare-pages-73fceca08a00?source=rss-07b3d31b2809------2</link>
            <guid isPermaLink="false">https://medium.com/p/73fceca08a00</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[cloudflare]]></category>
            <category><![CDATA[internet]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[VizyDev]]></dc:creator>
            <pubDate>Fri, 19 Jun 2026 03:31:00 GMT</pubDate>
            <atom:updated>2026-06-19T03:31:00.888Z</atom:updated>
            <content:encoded><![CDATA[<p>Deploy static sites and full-stack apps at the edge</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*n6lkOLkNaH-TB4hzYjy22w.png" /></figure><p>For years, the playbook for deploying a modern frontend application was simple: connect a GitHub repository to a platform like Vercel or Netlify, let their build pipelines generate your static assets, and push them to a Content Delivery Network (CDN).</p><p>While this model revolutionized web development, it introduced a hidden architectural tax. When your application scales and requires serverless database queries, file storage, or authentication, you are often forced to bolt on third-party cloud services. This introduces cold-start latency and fragmented pricing structures.</p><p><strong>Cloudflare Pages</strong> shifts this paradigm. It is not just a static hosting platform; it is a unified, full-stack deployment ecosystem built directly on top of Cloudflare’s global edge network</p><h3>The Core Concept: Infrastructure Without the Glue</h3><p>At its core, Cloudflare Pages operates similarly to the tools you likely already use. You connect your Git repository, and every time you push code, Cloudflare builds and deploys your project globally.</p><p>However, the structural difference lies beneath the surface. Traditional platforms often rent underlying infrastructure from hyper-scalers like AWS and add an abstraction layer on top. Cloudflare Pages runs natively on Cloudflare’s own hardware, spanning over 335 cities globally.</p><p>Because it sits natively inside the Cloudflare ecosystem, your frontend code integrates out of the box with their broader developer platform:</p><ul><li><strong>Workers</strong> (Serverless compute)</li><li><strong>R2</strong> (Object storage with zero egress fees)</li><li><strong>D1</strong> (Native serverless SQL database)</li><li><strong>KV</strong> (Global key-value storage)</li></ul><h3>Cloudflare Pages vs. Vercel/Netlify</h3><p>When deciding where to host your next application, the generous limits of Cloudflare’s free tier are highly compelling. Because Cloudflare owns the underlying network pipes, they do not need to charge premium markups on bandwidth or request volume.</p><p>While Cloudflare gives away unlimited bandwidth and requests, their primary constraint on the free tier is <strong>concurrent builds</strong>. On the free tier, you can only run one build at a time. If you push code to three different projects simultaneously, they will queue up and run sequentially.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Xi7eTCDhdJKps-r5i5dTUQ.png" /></figure><h3>Architectural Deep Dive: Full-Stack Edge Architecture</h3><p>Historically, static hosting platforms required you to spin up a separate cloud function or an entirely different backend server if you needed to process a form or query a database.</p><p>Cloudflare Pages solves this natively through <strong>Pages Functions</strong>. By simply adopting a file-based routing convention, any backend code you write is automatically compiled into globally distributed serverless functions running on Cloudflare Workers.</p><h3>How File-Based Routing Works</h3><p>If you create a top-level /functions directory in your project root, Cloudflare maps those files directly to HTTP endpoints:</p><pre>my-project/<br>├── functions/<br>│   ├── api/<br>│   │   ├── hello.js       ➔ Executes on GET /api/hello<br>│   │   └── users/<br>│   │       └── [id].js    ➔ Dynamic routing: GET /api/users/:id<br>│   └── _middleware.js     ➔ Runs on every single request (Auth, Logging)<br>└── src/                   ➔ Your frontend application (React, Astro, Vue, etc.)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fn8oxStjJBbrUW_vRaeS0A.png" /></figure><h3>Writing an Edge Function</h3><p>Because these functions run on V8 isolates rather than traditional Node.js containers, they boast near-zero cold starts. Here is how clean a native API endpoint looks:</p><pre>// functions/api/users/[id].js<br><br>export async function onRequestGet({ params, env }) {<br>  const { id } = params;<br>  <br>  // Safely read an environment variable injected at the edge<br>  const apiKey = env.EXTERNAL_API_KEY; <br><br>  // Perform a high-speed fetch to an external service or internal database<br>  const response = await fetch(`https://api.provider.com/v1/users/${id}`, {<br>    headers: { &#39;Authorization&#39;: `Bearer ${apiKey}` }<br>  });<br>  <br>  const userData = await response.json();<br><br>  return new Response(JSON.stringify(userData), {<br>    headers: { &#39;Content-Type&#39;: &#39;application/json&#39; }<br>  });<br>}</pre><h3>Production Deployment Strategies</h3><p>Cloudflare accommodates both Git-driven workflows and continuous integration (CI/CD) terminal pipelines.</p><h3>Strategy A: The Git-Integrated Pipeline (Recommended)</h3><p>This approach minimizes friction for teams. Cloudflare securely hooks into your Git provider (GitHub or GitLab) to listen for changes.</p><ol><li>Navigate to the Cloudflare Dashboard and select <strong>Workers &amp; Pages</strong>.</li><li>Click <strong>Create Application</strong> -&gt; <strong>Pages</strong> -&gt; <strong>Connect to Git</strong>.</li><li>Point to your repository and select your framework. Cloudflare detects settings for major frameworks automatically</li></ol><p>Once linked, every single Pull Request automatically generates a unique, isolated <strong>Preview URL</strong>. This allows team members to test changes in a production-identical environment before merging code to the main production branch.</p><h3>Strategy B: The Terminal-Driven Pipeline (Wrangler CLI)</h3><p>If you run complex CI/CD environments (like GitHub Actions, GitLab CI, or Jenkins) and prefer to compile your application locally before shipping, you can bypass Git integration entirely using Cloudflare’s CLI tool, <strong>Wrangler</strong>.</p><pre># 1. Install the runtime tools globally<br>npm install -g wrangler<br># 2. Authenticate your terminal with your Cloudflare account<br>wrangler login<br># 3. Execute your local compilation step<br>npm run build<br># 4. Atomically ship the compiled directory straight to the global edge network<br>wrangler pages deploy ./dist --project-name=my-app-production</pre><h3>Modern Framework Interoperability</h3><p>Because modern web frameworks are moving away from purely static compilation toward hybrid Server-Side Rendering (SSR), Cloudflare partners directly with framework core teams to maintain high-performance runtime adapters.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r2wzSqwAF2TA7z9-HtgWrw.png" /></figure><ul><li><strong>Next.js:</strong> Supported natively using the @cloudflare/next-on-pages adapter. It maps Next.js App Router features and API routes directly onto global edge instances.</li><li><strong>Astro:</strong> Offers an official, built-in Cloudflare adapter supporting hybrid rendering. This lets you select on a per-page basis whether to render to static HTML at build time or fetch data dynamically on the edge.</li><li><strong>SvelteKit &amp; Remix:</strong> Both operate natively on the V8 edge model. They use Cloudflare’s architectural design to eliminate regional database latencies.</li><li><strong>Single Page Apps (React, Vue, Vite):</strong> Require no specialized server configurations. They compile directly to static assets and deploy straight to global edge storage out of the box.</li></ul><p>Part 3 goes deeper into Cloudflare Workers — the engine powering Functions — and how to write and deploy edge compute directly.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=73fceca08a00" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is Cloudflare?]]></title>
            <link>https://medium.com/@vizy.dev/what-is-cloudflare-532153d53e6c?source=rss-07b3d31b2809------2</link>
            <guid isPermaLink="false">https://medium.com/p/532153d53e6c</guid>
            <category><![CDATA[computer-science]]></category>
            <category><![CDATA[internet]]></category>
            <category><![CDATA[networking]]></category>
            <category><![CDATA[cloudflare]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[VizyDev]]></dc:creator>
            <pubDate>Tue, 16 Jun 2026 04:45:43 GMT</pubDate>
            <atom:updated>2026-06-16T04:45:43.083Z</atom:updated>
            <content:encoded><![CDATA[<p>Understanding the network, DNS, CDN, and security layer</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*n6lkOLkNaH-TB4hzYjy22w.png" /></figure><h3><strong><em>What is Cloudflare?</em></strong></h3><p>Cloudflare is a global network infrastructure company. At its core, it sits between your users and your servers — intercepting every request, securing it, speeding it up, and routing it intelligently.</p><p>Think of it like a very smart security guard and delivery service combined. It stops bad actors at the door, serves cached content instantly, and only lets legitimate, optimized traffic through to your actual server.</p><p>Today, Cloudflare operates in <strong>over 335 cities across 125+ countries</strong>. Roughly 20% of all web traffic flows through its network. When a site goes down because of a DDoS attack, there’s a good chance Cloudflare is what stopped it.</p><h3><strong>How the internet actually works (briefly)</strong></h3><p>Before understanding Cloudflare, you need to understand the basic flow of a web request:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nwTPpi7Xv53bxZRxNb6JzQ.png" /><figcaption>Basic flow of a web request</figcaption></figure><ol><li><strong>You type a URL</strong> — your browser needs to know where to find the server for that domain.</li><li><strong>DNS lookup</strong> — your browser asks a DNS server: “What’s the IP address for example.com?”</li><li><strong>Connection</strong> — your browser connects to that IP address.</li><li><strong>Request travels</strong> — your HTTP request travels from your machine to the server, possibly across continents.</li><li><strong>Response comes back</strong> — the server sends back HTML/CSS/JS/images.</li></ol><p>Cloudflare inserts itself at step 2 onwards. When you put a domain on Cloudflare, you point your DNS at Cloudflare’s nameservers. From that moment, every request for your domain first hits Cloudflare’s network — not your server directly.</p><h3><strong>Setting up Cloudflare — your first 10 minutes</strong></h3><p><strong>Step 1: Create an account</strong></p><ul><li>Go to cloudflare.com and sign up for a free account. The free tier is genuinely useful — not a crippled trial.</li></ul><p><strong>Step 2: Add your website</strong></p><ul><li>Click <strong>Add a Site</strong> from your dashboard.</li><li>Enter your domain name (e.g. mywebsite.com)</li><li>Choose the <strong>Free plan</strong> and click Continue.</li></ul><p><strong>Step 3: Update your nameservers</strong></p><ul><li>Cloudflare will scan your existing DNS records and then give you two nameservers to set at your domain registrar (where you bought the domain — GoDaddy, Namecheap, Google Domains, etc.).</li></ul><p><strong>Step 4: Verify activation</strong></p><ul><li>Once active, your Cloudflare dashboard will show a green “Active” status. Every request to your domain now flows through Cloudflare.</li></ul><h3>Core Concepts</h3><p>To understand how Cloudflare protects and speeds up a website, you first need to understand how the foundational “plumbing” of the internet works. Here is a breakdown of core networking concepts and how Cloudflare layers on top of them.</p><h3>1. DNS: The Phone Book of the Internet</h3><p>The <strong>Domain Name System (DNS)</strong> translates human-readable domain names (like example.com) into computer-readable <strong>IP (Internet Protocol) addresses</strong> (like 192.0.2.1). Computers need these numerical addresses to find and talk to each other.</p><h4>Common DNS Record Types You’ll Actually Use</h4><p>When configuring your domain, you will interact with these primary record types:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2H-_pNxb2Zgx1CKDPp4R-w.png" /><figcaption>Common DNS records</figcaption></figure><ul><li><strong>A </strong>Record<strong><br>Purpose:</strong> Points a domain name directly to an IPv4 address.<br><strong>Example:</strong> example.com -&gt; 192.0.2.1</li><li><strong>AAAA </strong>Record<strong><br>Purpose:</strong> Points a domain name directly to an IPv6 address (the newer, longer IP format).<br><strong>Example:</strong> example.com -&gt; 2001:db8::1</li><li><strong>CNAME </strong>Record<strong><br>Purpose:</strong> Creates an alias. Points a subdomain to another domain name instead of a direct IP address.<br><strong>Example:</strong> www.example.com -&gt;example.com</li><li><strong>MX </strong>Record<strong><br>Purpose:</strong> Directs incoming email traffic to your designated mail server (such as Google Workspace or Microsoft Outlook).<br><strong>Example:</strong> mail.example.com</li><li><strong>TXT </strong>Record<strong><br>Purpose:</strong> Holds administrative text notes. It is most commonly used to verify domain ownership for third-party services (like Google Search Console) or configure email security frameworks.<br><strong>Example:</strong> v=spf1 include:_spf.google.com ~all</li></ul><h3>2. The Traffic Flow: Standard vs. Cloudflare Proxy</h3><p>To see exactly what happens when a user requests a website, let’s look at the architectural shift between a traditional direct connection and a Cloudflare-proxied connection.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oQHF0M0128BORkJ_m2mRLg.png" /></figure><h3>The Cloudflare Advantage: Speed &amp; “The Orange Cloud”</h3><p><strong>World’s Fastest DNS:</strong> Cloudflare operates <strong>1.1.1.1</strong>, which is the fastest public DNS resolver globally, boasting an average response time of roughly <strong>11ms</strong>.</p><p><strong>Proxied (Orange Cloud) vs. DNS-Only (Grey Cloud):</strong></p><ul><li><strong>Orange Cloud (Proxied):</strong> Web traffic is intercepted and routed <em>through</em> Cloudflare’s network before hitting your server. This hides your server’s true IP (<strong>Origin IP Protection</strong>), keeping it safe from direct attacks.</li><li><strong>Grey Cloud (DNS-Only):</strong> Cloudflare acts purely as a phone book. It hands your real server IP directly to the user, bypassing Cloudflare’s security and performance features.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/146/1*BJA6vJ3on-vj6JNuxYHCnQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/146/1*dAugPijxvsu05XiEXyXyUw.png" /></figure><h3>3. CDN &amp; Caching: Serving Content Faster</h3><p>A <strong>Content Delivery Network (CDN)</strong> consists of a globally distributed group of servers. Instead of forcing every user to travel across oceans to your primary server (the <strong>Origin Server</strong>), copies of your files are saved closer to the user.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*64zCDGQCkJvlvg2UT-mhWQ.png" /></figure><h4>Caching Behaviors</h4><p>Caching is the act of saving a temporary copy of a file at the network edge.</p><ul><li><strong>Default Behavior:</strong> Cloudflare automatically caches <strong>static files</strong> (images, CSS, JavaScript, fonts). It does <em>not</em> cache dynamic HTML files by default (like your checkout page or user dashboard).</li><li><strong>Cache Everything:</strong> You can force Cloudflare to cache absolute everything including raw HTML, by creating a <strong>Cache Rule</strong> (formerly Page Rules):</li></ul><pre>URL Pattern: example.com/*<br>Setting: Cache Level ➔ Cache Everything</pre><p>You can also explicitly instruct Cloudflare how to cache your content using <strong>HTTP Response Headers</strong> sent directly from your origin server application:</p><p>HTTP</p><pre># Tell Cloudflare and browsers to cache this file for 24 hours (86,400 seconds)<br>Cache-Control: public, max-age=86400<br><br># Tell Cloudflare never to cache this sensitive/dynamic file<br>Cache-Control: no-store</pre><h3>4. SSL/TLS: Encrypting the Web</h3><p><strong>SSL/TLS (Secure Sockets Layer / Transport Layer Security)</strong> is the cryptographic protocol that turns insecure http:// into secure https://, encrypting the data moving between a browser and a server.</p><p>Cloudflare eliminates manual certificate management by issuing and renewing free TLS certificates automatically. However, you must choose the correct <strong>SSL Mode</strong> based on your server’s setup:</p><ul><li><strong>Full (Strict) [Recommended]:</strong> Encrypts the entire journey. Traffic from the user to Cloudflare is encrypted, and traffic from Cloudflare to your origin server is <em>also</em> encrypted using a verified, valid SSL certificate installed on your server.</li><li><strong>Flexible [Use with Caution]:</strong> Encrypts only half the journey. Traffic from the user to Cloudflare is secure, but traffic from Cloudflare to your origin server travels over the open, unencrypted internet. Only use this as a temporary fix if your origin server cannot support an SSL certificate.</li></ul><h3>5. Security: DDoS Mitigation &amp; WAF</h3><p>Because Cloudflare sits like a protective shield in front of your server, it can filter out malicious web traffic before it ever touches your infrastructure.</p><h4>DDoS Mitigation</h4><p>A <strong>Distributed Denial of Service (DDoS)</strong> attack attempts to crash your server by overwhelming it with an artificial flood of traffic from millions of infected devices (botnets).</p><p>Cloudflare handles this at the network level. Because its network capacity is so vast, it simply absorbs the immense flood of garbage data at its edge data centers. Cloudflare’s automated systems have successfully blocked historic volumetric attacks scaling up to <strong>3.8 Terabits per second</strong> seamlessly without affecting legitimate users. This unmetered protection is turned on by default, even on their free plan.</p><h4>WAF (Web Application Firewall) Rules</h4><p>For targeted malicious activity (like spam bots, scraping, or hacking attempts), you can write customized rules to <strong>Block</strong>, <strong>Bypass</strong>, or <strong>Challenge</strong> traffic using variables like geographic location, IP address, or specific URLs.</p><ul><li><strong>Example: Block an Entire Country<br></strong>If you don’t do business in a specific region and see heavy bot traffic from it, you can block it entirely:<br>(ip.geoip.country eq &quot;CN&quot;) ➔ Action: Block</li><li><strong>Example: Rate-Limit a Login Page<br></strong>Stop brute-force password guessing attacks on sensitive endpoints:(http.request.uri.path eq &quot;/login&quot; and cf.threat_score gt 10) ➔ Action: Managed Challenge</li></ul><p>In Part 2, we move to Cloudflare Pages — how to deploy static sites and full-stack web apps directly onto Cloudflare’s network.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=532153d53e6c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[5 Things I Learned Shipping Side Projects as a Full-Time SWE in 2026]]></title>
            <link>https://medium.com/@vizy.dev/5-things-i-learned-shipping-side-projects-as-a-full-time-swe-in-2026-b6d5e0463799?source=rss-07b3d31b2809------2</link>
            <guid isPermaLink="false">https://medium.com/p/b6d5e0463799</guid>
            <category><![CDATA[side-project]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[build-in-public]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[VizyDev]]></dc:creator>
            <pubDate>Sat, 06 Jun 2026 19:09:45 GMT</pubDate>
            <atom:updated>2026-06-06T19:09:45.691Z</atom:updated>
            <content:encoded><![CDATA[<p><em>The gap between writing production code all day and actually shipping something of your own is wider than you think. AI made it narrower. Here’s what I’ve learned.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NTUP3AEObrxaP72yFa9auw.png" /><figcaption>Yes I use AI for image generation.</figcaption></figure><p>I write TypeScript at work. I write TypeScript at night. Same language, completely different experience.</p><p>At work, there’s a process. PRs get reviewed. Deployments are planned. There’s a staging environment, a QA cycle, and at least three people who will catch your mistakes before they hit production.</p><p>At home, there’s just you, a blank repo, a Claude window open on the side, and the quiet pressure of never actually finishing anything.</p><p>I’ve been shipping side projects on weekends for the past few years — LLM experiments, agent pipelines, half-finished SaaS ideas and the lessons I’ve picked up have made me a significantly better engineer at my day job too. Not because the code is better (it usually isn’t), but because the constraints are completely different.</p><p>2026 feels like a genuine inflection point for solo builders. The tools changed. The ceiling moved. Here’s what I’ve learned.</p><h3>1. The hardest part isn’t the code — and AI didn’t change that</h3><p>I used to think I wasn’t shipping because I needed to learn more. Better architecture. Cleaner abstractions. The right framework.</p><p>That was a lie I told myself.</p><p>Now I hear a new version of the same lie: <em>“I’ll ship once I figure out the right AI stack.”</em> Agents vs RAG vs fine-tuning. Which model. Which orchestration framework. It’s the same procrastination wearing a different hoodie.</p><p>The hardest part of shipping a side project is deciding what to cut. At work, the scope is defined for you. As a solo builder, every decision lands on you and the instinct is always to add, never to remove. AI makes this worse, not better, because the surface area of what you <em>could</em> build has exploded.</p><p>The projects I’ve actually shipped share one trait: I made a ruthless list of what the MVP was <em>not</em> going to do, and I held that line.</p><p>Practical tip: write a “not doing” list before you write a single line of code. In 2026 this list should explicitly include: <em>not building a custom model</em>, <em>not adding an agent until the non-agent version works</em>, <em>not integrating five AI APIs when one will do</em>. Mine usually has 10+ items now. It’s the most useful document in the project.</p><h3>2. Your production instincts will slow you down — but your AI instincts might too</h3><p>Four years of professional engineering gives you good instincts. Test coverage. Error handling. Scalable data models. Clean separation of concerns.</p><p>These instincts will actively hurt you on a side project in the early stages.</p><p>I’ve caught myself spending an afternoon setting up a proper monorepo with shared packages for a project that had zero users. I’ve agonized over database schema design for an app I hadn’t validated at all yet.</p><p>But in 2026 there’s a new trap: over-engineering the AI layer.</p><p>I’ve watched myself spend a weekend building a multi-agent orchestration system for a problem that a single well-prompted API call would have solved in an hour. I’ve added RAG pipelines to projects where the context window was already big enough to hold everything. I’ve reached for LangChain when a fetch request would do.</p><p>The mindset shift I needed: AI features have the same rules as every other feature. Start with the dumbest version that could possibly work. A hardcoded prompt in a single file ships faster than a beautiful agent framework with zero users.</p><p>You can always refactor. You can’t always get those weekends back.</p><h3>3. Agents changed the math on what one person can build — but not in the way you think</h3><p>This is the one that actually surprised me.</p><p>What moved the ceiling for solo builders in 2026 isn’t smarter models, it’s agents that can take actions. Code execution. Browser use. API calls. File systems. The ability to give an AI a goal and have it work toward it autonomously while you sleep.</p><p>I’ve run LLM experiments, built small tools on top of TensorFlow and NumPy, played with fine-tuning and embeddings. What used to take a team a recommendation engine, a content moderation layer, a smart search, a data pipeline — can now be prototyped by one person over a long weekend.</p><p>But here’s the part people skip: <strong>the leverage is in knowing when not to use it.</strong></p><p>Agents are remarkably bad at knowing when they’re confused. They’ll confidently go down the wrong path for a long time before failing. The engineers building things that actually work are the ones who understand the failure modes deeply enough to build guardrails not the ones who just wire up the most impressive-looking pipeline.</p><p>The useful mental model I’ve landed on: treat an AI agent like a very fast junior intern who never asks for help. You need to spec the work clearly, define what done looks like, and check the output. The productivity gain is real. The “just let it run” fantasy mostly isn’t.</p><p>If you’re not building with agentic workflows in your side projects yet, start now. Not because it’s trendy but because the gap between what one person can ship with agents vs without is genuinely large and growing.</p><h3>4. Vibe coding is real and the discourse around it is wrong</h3><p>Let me say something that might be unpopular: I vibe code my side projects. A lot.</p><p>I describe what I want, iterate on the output, fix the weird bits, describe the next thing. My side project codebases would horrify a senior engineer. They’d also horrify me if I looked at them too carefully.</p><p>They have users.</p><p>The discourse splits into two camps: people who say vibe coding is the future and you don’t need to know how to code anymore, and people who say it produces garbage that will collapse under any real load. Both are mostly wrong.</p><p>What’s actually true: vibe coding is a fantastic way to move fast on the parts of a project that don’t matter yet, and a terrible way to handle the parts that do. The skill is knowing the difference.</p><p>I use it for: boilerplate, first drafts of UI components, writing tests for logic I’ve already written, exploring unfamiliar APIs, gluing things together.</p><p>I don’t use it for: anything touching money, auth, data integrity, or anything I’d be embarrassed to explain in a code review.</p><p>The engineers who will get the most out of this era are the ones who use AI to move fast on the easy stuff and apply their actual engineering judgment to the 20% that matters. Not the ones who either refuse to touch it or outsource their thinking entirely.</p><h3>5. Side projects in 2026 are the best technical education available</h3><p>This is the one I didn’t expect when I started.</p><p>When you own the whole stack — frontend, backend, deployment, debugging at 1am, plus now: prompt engineering, model selection, eval loops, context management, cost optimization — your intuition about systems improves faster than any course or job could teach you.</p><p>The AI tooling space is moving so fast that the only way to actually understand it is to build with it. Not read about it. Not watch conference talks. Build something real where you feel the pain of a bad prompt in production, where you see your inference bill spike and have to fix it, where an agent does something completely unexpected and you have to understand why.</p><p>I’ve learned more about LLMs from breaking them in side projects than from everything else combined.</p><p>My code reviews got sharper. My architectural instincts improved. My ability to evaluate AI tools honestly — not based on hype but based on whether they actually helped me ship — got significantly better.</p><p>Side projects are where you build the judgment that no job description can teach you.</p><h3>Where I’m going next</h3><p>I’m starting to build in public — sharing the process, the stack choices, the AI experiments that failed, and the ones that worked.</p><p>If you’re a full-time SWE building side projects in private, I’d encourage you to do the same. The accountability is worth it. The feedback is worth it. And honestly, the people you meet who are doing the same thing are worth it too.</p><p>Follow along on X: <a href="https://x.com/vizydev">@vizydev</a></p><p>If any of this resonated — or if you disagree with any of it — drop a comment. I’m genuinely curious what other engineers building in 2026 are seeing.</p><p><em>I write about full-stack engineering, AI/LLM experiments, and building things on the side. If you found this useful, consider following for more.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b6d5e0463799" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>