<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged devjourney</title>
<link>https://coderlegion.com/tag/devjourney</link>
<description>Powered by Question2Answer</description>
<item>
<title>From GitHub to Codeberg: Rethinking Repository Management and Personal Website Hosting</title>
<link>https://coderlegion.com/32862/from-github-to-codeberg-rethinking-repository-management-and-personal-website-hosting</link>
<description>&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://synnaulaid.my.id/tags/developer/&quot;&gt;Developer&lt;/a&gt; platforms make it easier than ever to build and publish software. With hosted Git repositories and static &lt;a rel=&quot;nofollow&quot; href=&quot;https://synnaulaid.my.id/blog/20260407/how-to-create-a-personal-page-for-free/&quot;&gt;website deployment&lt;/a&gt;, an individual developer can maintain a portfolio without managing an entire server infrastructure.&lt;/p&gt;
&lt;p&gt;However, convenience also introduces an important question: how prepared are we when our existing workflow no longer meets our needs?&lt;/p&gt;
&lt;p&gt;I recently faced this question while maintaining my personal website and repositories.&lt;br&gt;
When a Familiar Workflow Stops Working&lt;/p&gt;
&lt;p&gt;GitHub had been an essential part of my development process. I used it to manage source code, track changes, and publish my personal website through GitHub Pages.&lt;/p&gt;
&lt;p&gt;The workflow was straightforward. I could commit changes, push updates, and use the hosting service to make my website publicly accessible.&lt;/p&gt;
&lt;p&gt;Eventually, I encountered an issue that affected website publishing. My account was still accessible, but the publishing functionality did not work as I expected. I could not establish the exact cause, so I avoided drawing conclusions about the platform or its policies.&lt;/p&gt;
&lt;p&gt;Nevertheless, the problem disrupted my workflow and encouraged me to explore alternative solutions.&lt;/p&gt;
&lt;p&gt;The experience highlighted something worth considering: even when source code is stored safely, the services surrounding a repository may introduce separate dependencies.&lt;/p&gt;
&lt;p&gt;Repository storage, continuous integration, deployment, domain management, and public hosting are related, but they are not necessarily the same responsibility.&lt;/p&gt;
&lt;p&gt;Understanding those distinctions can make future migrations easier.&lt;br&gt;
Moving Repositories to Codeberg&lt;/p&gt;
&lt;p&gt;I decided to move my repositories to Codeberg, a platform built around open-source software and Git-based collaboration.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codeberg.org/synnaulaid/synnaulaid.my.id/src/branch/master/docs/migration-notice.md&quot;&gt;A repository migration&lt;/a&gt; requires more than copying project files. Depending on the project, developers may need to verify branches, tags, commit history, remotes, and repository settings. Issues, pull requests, automation, and other platform-specific features may require separate consideration.&lt;/p&gt;
&lt;p&gt;A practical migration checklist includes:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Create a reliable backup of each repository.
Verify that the Git history and important branches are preserved.
Update remote URLs and test push and pull operations.
Review project documentation and any external integrations.
Confirm that essential workflows still function after migration.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Not every platform feature has a direct equivalent, so each project should be checked individually.&lt;/p&gt;
&lt;p&gt;The objective is not merely to move the code. It is to ensure that the development workflow remains usable afterward.&lt;br&gt;
Self-Hosting a &lt;a rel=&quot;nofollow&quot; href=&quot;https://synnaulaid.my.id/blog/20260407/how-to-create-a-personal-page-for-free/&quot;&gt;Personal Website&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For website deployment, I chose a home server instead of relying on my previous publishing workflow.&lt;/p&gt;
&lt;p&gt;Self-hosting provides a valuable learning opportunity, particularly for developers who want to understand how websites operate beyond application code.&lt;/p&gt;
&lt;p&gt;It also introduces several operational responsibilities.&lt;/p&gt;
&lt;p&gt;DNS records must point to the correct destination. Public access may require router configuration, a reverse proxy, or a suitable tunneling solution. HTTPS should be configured appropriately, while backups and software updates need to become part of regular maintenance.&lt;/p&gt;
&lt;p&gt;Availability is another consideration. A home server depends on electricity, network connectivity, hardware reliability, and the security of the surrounding environment.&lt;/p&gt;
&lt;p&gt;Self-hosting is therefore not automatically cheaper or more reliable than managed hosting. The right choice depends on the project, available resources, and the operator's willingness to maintain the system.&lt;br&gt;
A Better Understanding of Technical Dependencies&lt;/p&gt;
&lt;p&gt;This migration has encouraged me to think more carefully about portability, infrastructure, and recovery planning.&lt;/p&gt;
&lt;p&gt;Developers do not necessarily need to abandon hosted services. However, they benefit from knowing which components are essential, how those components interact, and how to replace them if necessary.&lt;/p&gt;
&lt;p&gt;I documented the personal side of this transition, including why I left my previous workflow and what I hope to learn from the move, in my original article:&lt;/p&gt;
&lt;p&gt;Read the full experience: &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://synnaulaid.my.id/blog/20261028/moving-on-not-out-of-hate-github-ke-codeberg/&quot;&gt;Moving On, Not Out of Hate: My Journey from GitHub to Codeberg&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For me, the move is both a practical adjustment and a learning project. By combining Codeberg for repository management with a home server for deployment, I hope to develop a better understanding of the infrastructure behind my personal projects.&lt;/p&gt;
&lt;p&gt;Sometimes, the most useful outcome of a technical problem is not the replacement tool itself, but the knowledge we gain while finding a new way forward.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/32862/from-github-to-codeberg-rethinking-repository-management-and-personal-website-hosting</guid>
<pubDate>Wed, 28 Oct 2026 15:35:59 +0000</pubDate>
</item>
<item>
<title>A Small Milestone in My Developer Journey</title>
<link>https://coderlegion.com/31641/a-small-milestone-in-my-developer-journey</link>
<description>&lt;p&gt;Hey developers! 👋&lt;/p&gt;
&lt;p&gt;I wanted to share a small milestone from my journey as an independent developer.&lt;/p&gt;
&lt;p&gt;After spending quite some time using GitHub Pages' default free domain, I've finally purchased my own custom domain. It might not sound like a big achievement, but it means a lot to me because I saved up for it little by little.&lt;/p&gt;
&lt;p&gt;I also had to step away from my developer activities for a while due to real-life responsibilities. Now, I'm slowly getting back into things and looking forward to sharing more projects, experiments, and technical notes.&lt;/p&gt;
&lt;p&gt;The best part is that I don't need to change my hosting setup. I'm still using GitHub Pages, with my new domain serving as the website's personal identity.&lt;/p&gt;
&lt;p&gt;I'm grateful for the free tools that make it easier for developers with limited budgets to start building online.&lt;/p&gt;
&lt;p&gt;I wrote a short reflection about this experience and what it means for my personal website, Simply Karya.&lt;/p&gt;
&lt;p&gt;Read it here: &lt;a rel=&quot;nofollow&quot; href=&quot;https://synnaulaid.my.id/blog/20261019/a-new-domain-a-new-chapter/&quot;&gt;A New Domain, A New Chapter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What's your story? Did you start with free hosting before moving to a custom domain?&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/31641/a-small-milestone-in-my-developer-journey</guid>
<pubDate>Sun, 18 Oct 2026 17:27:43 +0000</pubDate>
</item>
<item>
<title>How Adobe Firefly and Copilot Taught Me to Prompt for Code (Part 1)</title>
<link>https://coderlegion.com/31633/how-adobe-firefly-and-copilot-taught-me-to-prompt-for-code-part-1</link>
<description>&lt;p&gt;Every time the topic of AI comes up in developer spaces, the conversation usually splits into two extremes: people who claim AI takes &quot;zero effort&quot; because you just type a sentence and get a finished product, and people who dismiss prompting as a soft, non-technical skill that has nothing to do with &quot;real&quot; engineering.&lt;/p&gt;
&lt;p&gt;Anyone who has actually spent hours trying to force a foundation model to produce a specific, non-generic output knows that both takes are wrong.&lt;/p&gt;
&lt;p&gt;My goal wasn't to generate random fantasy landscapes or stock avatars. I wanted to recreate my dog—an American Pit Bull Terrier (APBT)—across distinct visual styles so I could design a clean, accurate brand logo. To do that, I set two strict rules for myself:&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;1.&lt;/strong&gt; &lt;strong&gt;Only Native Firefly&lt;/strong&gt;: I refused to jump to third-party models when things got difficult; I committed exclusively to the native Adobe Firefly model (working through Firefly Image 3 and 4, long before conversational in-canvas editing existed).&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;2. Only My Own Photos&lt;/strong&gt;: I never used stock presets or random internet pictures. Every single generation was fed exclusively with my own photographs of my dog.&lt;/p&gt;
&lt;p&gt;That self-imposed constraint turned into a masterclass in fighting statistical bias, understanding parameter pipelines, and sanitizing noisy inputs. Looking back, the exact workflow I had to build to get Firefly to respect canine anatomy is the same mental model required to get an LLM to write production-ready code.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Note: This is the first part of a multi-part series exploring how creative AI workflows translate directly into software engineering and systems architecture.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=15746578785841454019&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;my dog for reference
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.behance.net/gallery/226055205/Morgan-Vega?platform=direct&quot;&gt;Behance Project: Morgan &quot;Vega&quot;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;fighting-the-default-weight-why-lazy-prompts-fail-&quot;&gt;Fighting the &quot;Default Weight&quot; (Why Lazy Prompts Fail)&lt;/h3&gt;
&lt;p&gt;When I started experimenting with Firefly in 2024 and locked into a heavy daily workflow in 2025, I quickly hit a wall. If you type &quot;pitbull&quot; into an image model by itself, you do not get an accurate American Pit Bull Terrier.&lt;/p&gt;
&lt;p&gt;Because public stock datasets suffer from massive tag pollution—where people tag Mastiff crosses, Cane Corsos, American Bullies, and random block-headed mixes under the same umbrella term—the model’s latent space defaults to two extremes: either an exaggerated, short-legged caricature or a generic Labrador-mastiff hybrid with mushy features.&lt;/p&gt;
&lt;p&gt;Because I refused to switch to another generator, I had to learn how to override Firefly's statistical baseline using my own reference photos, active human feedback (RLHF), and structured parameter control.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Engineering Parallel:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;LLMs do the exact same thing with code. If you give a coding model a lazy prompt like &quot;build an API endpoint to process user data,&quot; its weights will pull straight toward the internet's most common, bloated, and outdated tutorials. To override the statistical default, you cannot rely on umbrella terms. You have to provide a structural blueprint and specify exact boundaries.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-firefly-actually-works-parameter-pipelines-amp-edge-copilot&quot;&gt;How Firefly Actually Works: Parameter Pipelines &amp;amp; Edge Copilot&lt;/h3&gt;
&lt;p&gt;Most people who haven't used Adobe Firefly assume it works like a simple chat box. In reality, Firefly’s interface is a structured parameter pipeline that separates geometry, style, and text tokens into distinct control layers.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=7167573050077163068&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=12213989863353670922&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Instead of relying on a single text prompt to do everything, Firefly breaks generation down into specific modules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General &amp;amp; Content Settings&lt;/strong&gt;: Choosing the base model (&lt;em&gt;Firefly Image 3 / 4&lt;/em&gt;), locking the &lt;em&gt;Aspect ratio&lt;/em&gt;, switching &lt;em&gt;Content type&lt;/em&gt; between &lt;em&gt;Photo&lt;/em&gt; and &lt;em&gt;Art&lt;/em&gt;, and dialing the &lt;em&gt;Visual intensity&lt;/em&gt; slider.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Composition Reference (Structure)&lt;/strong&gt;: This is where I uploaded my own photos of my dog. Under the hood, Firefly uses this slot for edge detection and depth mapping, forcing the new generation to follow the physical geometry of the uploaded photo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Style Reference &amp;amp; Effects Taxonomy:&lt;/strong&gt; Rather than guessing random adjectives, Firefly categorizes visual weights into structured buckets—&lt;em&gt;Movements&lt;/em&gt;, &lt;em&gt;Themes&lt;/em&gt;, &lt;em&gt;Techniques&lt;/em&gt;, &lt;em&gt;Effects&lt;/em&gt;, &lt;em&gt;Materials&lt;/em&gt;, and &lt;em&gt;Concepts&lt;/em&gt; (such as &lt;em&gt;Minimalism&lt;/em&gt;, &lt;em&gt;Flat design&lt;/em&gt;, &lt;em&gt;Anime&lt;/em&gt;, or Doodle drawing), alongside explicit dropdowns for &lt;em&gt;Color and tone&lt;/em&gt;, &lt;em&gt;Lighting&lt;/em&gt;, and &lt;em&gt;Camera angle&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To master this setup, I realized I needed to understand what all those art movements and techniques actually meant, and how Firefly's text parser expected them to be combined with my reference uploads.&lt;/p&gt;
&lt;p&gt;I opened &lt;strong&gt;Copilot in the Edge browser&lt;/strong&gt; and used it as my domain tutor and syntax compiler:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learning the Art Taxonomy:&lt;/strong&gt; I used Copilot to learn the technical differences between the styles available in Firefly—what separates a digital painting from continuous-contour linework, cross-hatched doodle styles, manga ink, or flat vector color blocking.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compiling Firefly-Specific Prompts&lt;/strong&gt;: Firefly didn't want chatty paragraphs; it wanted clean, comma-separated tokens that complemented the sidebar parameters. When the model kept cropping or distorting lower limbs, I used Copilot to help refine explicit anatomical and positional tokens (like &lt;em&gt;standing and showing his legs&lt;/em&gt;) that worked with my uploaded Composition Reference.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=14283121917887204311&quot; alt=&quot;&quot;&gt;&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.adobe.com/community/gallery/assets/75b0745c-b6e3-44a7-a2f4-26aa011cc19a&quot;&gt;Adobe Gallery&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=17280446436872332353&quot; alt=&quot;&quot;&gt;&lt;br&gt;
(&lt;code&gt;an American Pit Bull Terrier, black, standing, in a simple background, digital painting&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;One of my early experiments feeding my dog's photo into this pipeline was hand-picked by Adobe to be featured in the official &lt;strong&gt;Adobe Firefly Gallery&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you look at the prompt on that featured gallery card—&lt;code&gt;an American Pit Bull Terrier, black, standing, in a simple background, digital painting&lt;/code&gt;—a casual viewer might assume it took zero effort. What they don't see is how the pipeline worked together: because I fed my own photograph into the Composition Reference slot and gave continuous feedback on anatomically accurate runs, my photo carried the morphological constraints (the exact rose/half-pricked ears, the lean chest, the straight front assembly). That allowed the text prompt to stay surgical and declarative.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Engineering Parallel:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Prompting complex systems is configuration and technical specification. When your underlying architecture is solid—when your Pydantic schemas, type definitions, and structural interfaces are already passed into the system's parameters—you don't need to write a 500-word conversational essay begging the AI not to hallucinate. Your prompt can be a clean, concise instruction because the structural reference is already doing the heavy lifting.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-pre-editing-experiments-diagnosing-cross-attention-bleed&quot;&gt;The Pre-Editing Experiments: Diagnosing Cross-Attention Bleed&lt;/h3&gt;
&lt;p&gt;Even with Firefly's Composition Reference locking my dog's anatomy in place, pushing my raw photos across radically different art styles before in-canvas editing existed exposed a major flaw in how diffusion models read reference images.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=16697791684709526287&quot; alt=&quot;&quot;&gt; &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Manga drawing style of an American Pit Bull Terrier, black. 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=5702403718989328462&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=17990835431187139384&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; American Pit Bull Terrier, solid black, doodle style
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=6760457221779585084&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; American pit bull terrier, solid black, standing and showing his legs, doodle style 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=2369913449814901055&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;American pit bull terrier, solid black, standing and showing his legs, cartoon style
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=262291669817531290&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;black american pit bull terrier standing 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looking across these early runs—all generated from my own photos—you can see two things happening at once:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What Worked (Morphological Locking)&lt;/strong&gt;: Whether I pushed the engine toward stark white-on-black ink, clean &lt;em&gt;doodle style&lt;/em&gt; linework, &lt;em&gt;manga drawing style&lt;/em&gt;, or &lt;em&gt;cartoon style&lt;/em&gt; pop art, my dog's core anatomy, ear carriage, and muscle tone stayed true to my photos.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Where the Noise Leaked In (Environmental Contamination)&lt;/strong&gt;: Look closely at the backgrounds. Because Firefly's Composition Reference evaluates the entire uploaded image, it couldn't tell where my dog ended and the backyard began. In the manga generation, a metal pole and patio clutter from my original photo bled straight into the illustration. In the walking side-profiles, the model spent half its attention rendering the wooden deck planks and walls. And in the sketch and dark stencil, background shadows confused the style weights into hallucinating fake artist signatures and floating geometric shapes in the negative space.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;input-sanitization-the-1-1-cutout-breakthrough&quot;&gt;Input Sanitization: The 1:1 Cutout Breakthrough&lt;/h3&gt;
&lt;p&gt;Diagnosing why those background artifacts were happening led to my biggest workflow breakthrough: I started completely removing the background from my dog's photos and standardizing the canvas to a 1:1 square before uploading them into Firefly's Composition Reference&lt;/p&gt;
&lt;p&gt;Suddenly, every generation locked in without environmental bleed. Why?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Eliminating Cross-Attention Contamination:&lt;/strong&gt; In a raw outdoor photo, 60% of the pixels are grass, fences, poles, and shadows. The model’s attention layers try to apply your &lt;em&gt;Effects&lt;/em&gt; and &lt;em&gt;Styles&lt;/em&gt; across all that background noise at once. Stripping the background zeroed out those competing tokens, forcing 100% of the feature extraction onto the dog's silhouette.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unambiguous Edge Maps:&lt;/strong&gt; Isolating the subject gave Firefly's &lt;em&gt;Composition Reference&lt;/em&gt; algorithm a stark, vector-clean perimeter to color and shade within—instantly eliminating the hallucinated signatures and floating background scribbles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Native Latent Geometry:&lt;/strong&gt; Setting the input cutout and Firefly's &lt;em&gt;Aspect ratio&lt;/em&gt; parameter to a centered 1:1 square aligned with the native geometry of diffusion grids, eliminating compositional drift and giving me the exact, isolated character assets I needed to composite my final brand logo by hand.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;The Engineering Parallel:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Garbage context in, garbage code out. Those metal poles and fake signatures in my early dog drawings are the exact visual equivalent of what happens when a developer dumps an entire cluttered repository, unformatted stack traces, and five unrelated files into an LLM context window and says &quot;my code is a mess, fix it.&quot;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-takeaway-and-what-s-next-in-this-series-&quot;&gt;The Takeaway (And What's Next in This Series)&lt;/h3&gt;
&lt;p&gt;For a long time, I fell into the trap of thinking that being &quot;good at prompting&quot; didn't count as a real technical skill. We are conditioned to believe that unless we are suffering through manual boilerplate or memorizing every flag from scratch, we are somehow taking a shortcut.&lt;/p&gt;
&lt;p&gt;But refusing to take the easy route—sticking exclusively to the Firefly model, feeding it only my own photography, using Edge Copilot to master art taxonomy and syntax, diagnosing attention bleed across dozens of test runs, and engineering a clean 1:1 preprocessing pipeline—taught me what prompting actually is. Whether you are steering a diffusion model away from tag-polluted training data or directing a coding agent through a production refactor, the core discipline is the same: systems thinking.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Coming up next in this series:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the next post, I’ll be sharing my full Behance project, where I break down the complete visual archive of my Firefly attempts—showing the direct before-and-after impact of the 1:1 cutout pipeline—and how I took those isolated AI assets into Photoshop to composite and finish the final brand logo. Stay tuned!&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/31633/how-adobe-firefly-and-copilot-taught-me-to-prompt-for-code-part-1</guid>
<pubDate>Sun, 18 Oct 2026 17:06:01 +0000</pubDate>
</item>
<item>
<title>Landscape Layout &amp; Terracing | UE5 Devlog</title>
<link>https://coderlegion.com/30519/landscape-layout-terracing-ue5-devlog</link>
<description>&lt;p&gt;In this devlog, I showcase the landscape creation and terracing process for Kazuhara resort in Unreal Engine 5. Using Landscape Mode’s Sculpt, Flatten, and Smooth tools, I shape the terrain, create distinct terraces, and soften the transitions between elevations.&lt;/p&gt;
&lt;p&gt;The focus is on building a foundation for the resort, balancing usable flat areas with the natural slopes of the surrounding landscape. It’s a look at the work behind shaping the environment before the finer details bring it to life.&lt;/p&gt;
</description>
<category>Videos</category>
<guid isPermaLink="true">https://coderlegion.com/30519/landscape-layout-terracing-ue5-devlog</guid>
<pubDate>Fri, 09 Oct 2026 20:47:09 +0000</pubDate>
</item>
<item>
<title>Mohammed Ghaban Built an Arena Where AI Coding Agents Have to Prove Their Code Works</title>
<link>https://coderlegion.com/30304/mohammed-ghaban-built-an-arena-where-ai-coding-agents-have-to-prove-their-code-works</link>
<description>&lt;h2 id=&quot;mohammed-ghaban-built-an-arena-where-ai-coding-agents-have-to-prove-their-code-works&quot;&gt;Mohammed Ghaban Built an Arena Where AI Coding Agents Have to Prove Their Code Works&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;AI code can look right and still fail. Mohammed Ghaban built an arena that runs it to find out.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mohammed Ghaban is an AI/ML developer and open-source contributor from Yemen, focused on building practical AI applications, intelligent agents, and developer tools.&lt;/p&gt;
&lt;p&gt;His work spans &lt;strong&gt;Generative AI, LLMs, AI agents, machine learning, MLOps, and AI security&lt;/strong&gt;. But one of his most interesting projects takes a very practical approach to a growing problem in software development:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What happens when AI-generated code looks correct but isn't?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That question led Mohammed to build &lt;strong&gt;CodeBots Arena&lt;/strong&gt;, an AI-vs-AI programming battle arena where AI agents generate code, execute it in a controlled environment, and compete based on the results.&lt;/p&gt;
&lt;p&gt;The project combines &lt;strong&gt;FastAPI, React, Monaco Editor, Elo ratings, and RestrictedPython&lt;/strong&gt; to create an environment where AI-generated solutions can be tested rather than simply judged by how convincing they look.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-kaggle-to-an-ai-vs-ai-arena&quot;&gt;From Kaggle to an AI-vs-AI Arena&lt;/h3&gt;
&lt;p&gt;The idea behind CodeBots Arena grew from Mohammed's interest in AI competitions.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I was interested in creating a competition where AI systems could compete through programming, and I looked at the kinds of competitions available on Kaggle.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While exploring existing competitions, he realised that he wasn't finding exactly what he had in mind.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I realized I wasn't seeing the exact kind of AI-vs-AI coding competition I had in mind.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That led to a simple question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Instead of only participating in competitions, why not try to build one?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And that became CodeBots Arena.&lt;/p&gt;
&lt;p&gt;Rather than simply asking an AI model to produce a solution, Mohammed wanted to create a system where AI-generated solutions could actually compete, execute, and be evaluated.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-the-sandbox-matters&quot;&gt;Why the Sandbox Matters&lt;/h3&gt;
&lt;p&gt;There are two particularly interesting parts of CodeBots Arena: &lt;strong&gt;how the agents are evaluated and how their code is executed.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The project uses an &lt;strong&gt;Elo rating system&lt;/strong&gt; to track the relative performance of AI agents over repeated matches.&lt;/p&gt;
&lt;p&gt;As Mohammed explains:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“ELO provides a simple way to track relative performance over time.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But ranking the agents is only part of the problem.&lt;/p&gt;
&lt;p&gt;The generated code also needs to be executed safely.&lt;/p&gt;
&lt;p&gt;Mohammed makes an important distinction:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“AI-generated code cannot be treated as trusted code.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's why CodeBots Arena uses &lt;strong&gt;RestrictedPython&lt;/strong&gt; together with validation and testing to provide controlled execution.&lt;/p&gt;
&lt;p&gt;The result is more than two AI models generating code.&lt;/p&gt;
&lt;p&gt;It becomes an environment where developers can experiment with AI-generated programming solutions and evaluate what actually happens when those solutions are executed.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-ai-generated-code-looks-better-than-it-actually-is&quot;&gt;When AI-Generated Code Looks Better Than It Actually Is&lt;/h3&gt;
&lt;p&gt;Building CodeBots Arena changed the way Mohammed thinks about AI-generated code.&lt;/p&gt;
&lt;p&gt;One of the biggest lessons was how convincing generated code can be even when it is wrong.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“AI-generated code can look much more convincing than it actually is.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A solution might appear logically sound but still fail because of an edge case, an incorrect assumption, or a subtle implementation problem.&lt;/p&gt;
&lt;p&gt;That observation is central to Mohammed's interest in evaluation.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Watching generated code actually run changes the question from ‘Does this answer look good?’ to ‘Does this solution actually work under the conditions of the task?’”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That distinction becomes increasingly important as developers rely more heavily on AI coding tools.&lt;/p&gt;
&lt;p&gt;AI can produce code extremely quickly.&lt;/p&gt;
&lt;p&gt;But producing code and proving that the code works are two very different things.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-talk-is-cheap-show-me-the-code-&quot;&gt;“Talk Is Cheap. Show Me the Code.”&lt;/h3&gt;
&lt;p&gt;Mohammed's CoderLegion profile uses the famous Linus Torvalds quote:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Talk is cheap. Show me the code.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But Mohammed believes the idea takes on a slightly different meaning in the age of AI-generated software.&lt;/p&gt;
&lt;p&gt;AI can generate a large amount of code very quickly.&lt;/p&gt;
&lt;p&gt;The real question is what happens when that code is tested.&lt;/p&gt;
&lt;p&gt;As Mohammed puts it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“AI can generate a lot of code very quickly, but generating code is not the same as proving that the code works.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For him, showing the code increasingly means:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Show me the tests, show me the results, show me the benchmark, and show me what happens when the system fails.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That philosophy is at the heart of CodeBots Arena.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;a-bug-that-had-nothing-to-do-with-ai&quot;&gt;A Bug That Had Nothing to Do With AI&lt;/h3&gt;
&lt;p&gt;Not every challenge Mohammed encountered while building CodeBots Arena was related to artificial intelligence.&lt;/p&gt;
&lt;p&gt;He also documented a &lt;strong&gt;PYTHONPATH issue&lt;/strong&gt; where his tests worked locally but failed in CI.&lt;/p&gt;
&lt;p&gt;The experience highlighted an issue every developer eventually encounters:&lt;/p&gt;
&lt;p&gt;Something can work perfectly on your machine and still fail somewhere else.&lt;/p&gt;
&lt;p&gt;Debugging the problem required looking at the differences between the local development environment and the CI environment.&lt;/p&gt;
&lt;p&gt;The experience reinforced the importance of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reproducible environments&lt;/li&gt;
&lt;li&gt;Environment configuration&lt;/li&gt;
&lt;li&gt;Automated testing&lt;/li&gt;
&lt;li&gt;CI&lt;/li&gt;
&lt;li&gt;Not assuming that local success means a project is finished&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As Mohammed explained:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“A project can work perfectly on your machine and still fail when the environment changes.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For someone building an experimental platform where AI-generated code has to survive real execution, that lesson is particularly relevant.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;beyond-codebots-arena-benchmarks-and-ai-evaluation&quot;&gt;Beyond CodeBots Arena: Benchmarks and AI Evaluation&lt;/h3&gt;
&lt;p&gt;CodeBots Arena is only one part of Mohammed's work.&lt;/p&gt;
&lt;p&gt;His profile highlights ongoing work in &lt;strong&gt;AI/ML, LLMs, AI agents, benchmarking, Kaggle projects, open-source development, and machine learning experimentation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;He has also worked on projects involving &lt;strong&gt;Legal AI hallucination benchmarking&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;His interest in benchmarking comes from the same fundamental question behind CodeBots Arena: how can we measure whether an AI system is actually performing well?&lt;/p&gt;
&lt;p&gt;As Mohammed explains:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“A model can sound intelligent while still hallucinating, reasoning incorrectly, or failing on specific edge cases.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Benchmarking makes those weaknesses measurable.&lt;/p&gt;
&lt;p&gt;Instead of simply asking whether an AI response sounds intelligent, benchmarks can help reveal where a model succeeds, where it fails, and how its performance changes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-through-curiosity&quot;&gt;Learning Through Curiosity&lt;/h3&gt;
&lt;p&gt;Mohammed has accumulated significant experience through hands-on learning.&lt;/p&gt;
&lt;p&gt;His profile highlights &lt;strong&gt;87+ Google Developer Program badges and achievements&lt;/strong&gt;, more than &lt;strong&gt;115 completed Google Skills learning activities&lt;/strong&gt;, and &lt;strong&gt;33,402 Google Skills points&lt;/strong&gt;, including Diamond League status.&lt;/p&gt;
&lt;p&gt;His learning covers areas including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google Gemini&lt;/li&gt;
&lt;li&gt;Google Cloud&lt;/li&gt;
&lt;li&gt;AI agents&lt;/li&gt;
&lt;li&gt;Google ADK&lt;/li&gt;
&lt;li&gt;Machine learning&lt;/li&gt;
&lt;li&gt;Transformers&lt;/li&gt;
&lt;li&gt;Fine-tuning&lt;/li&gt;
&lt;li&gt;MLOps&lt;/li&gt;
&lt;li&gt;AI security&lt;/li&gt;
&lt;li&gt;Model evaluation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But Mohammed doesn't see the badges as the main objective.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“My learning pace comes mostly from curiosity rather than trying to collect badges.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That mindset comes through in the projects he builds.&lt;/p&gt;
&lt;p&gt;Rather than learning concepts only theoretically, he tends to turn them into experiments, benchmarks, open-source projects, and working software.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-without-a-computer&quot;&gt;Building Without a Computer&lt;/h3&gt;
&lt;p&gt;One of the more unusual parts of Mohammed's journey came when his computer stopped working.&lt;/p&gt;
&lt;p&gt;Because of his circumstances and the situation in Yemen, he wasn't able to immediately replace it.&lt;/p&gt;
&lt;p&gt;Instead of stopping his work completely, he continued primarily using his &lt;strong&gt;iPhone, browser-based tools, and free resources&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It wasn't easy.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“It has certainly been more difficult and sometimes frustrating, especially when working on technical projects that would normally require a full development environment.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But he decided not to allow the lack of hardware to completely stop him.&lt;/p&gt;
&lt;p&gt;It's a reminder that developers don't always get to build with the ideal setup.&lt;/p&gt;
&lt;p&gt;Sometimes you work with whatever you have available and keep moving forward.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-mohammed-is-exploring-next&quot;&gt;What Mohammed Is Exploring Next&lt;/h3&gt;
&lt;p&gt;Mohammed's current interests include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI agents&lt;/li&gt;
&lt;li&gt;Multi-agent systems&lt;/li&gt;
&lt;li&gt;LLM evaluation&lt;/li&gt;
&lt;li&gt;Generative AI&lt;/li&gt;
&lt;li&gt;AI-generated code&lt;/li&gt;
&lt;li&gt;Google Gemini&lt;/li&gt;
&lt;li&gt;Google ADK&lt;/li&gt;
&lt;li&gt;MLOps&lt;/li&gt;
&lt;li&gt;AI security&lt;/li&gt;
&lt;li&gt;Fine-tuning and Transformer architectures&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He is particularly interested in systems where AI agents can take actions, use tools, write or execute code, and then be evaluated based on what they actually accomplish.&lt;/p&gt;
&lt;p&gt;That makes CodeBots Arena a natural foundation for his future work.&lt;/p&gt;
&lt;p&gt;Mohammed's vision for the project is clear:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“A year from now, I'd like CodeBots Arena to be a more mature open-source project with stronger evaluation, more interesting competitions, and more opportunities for other developers to experiment with AI coding agents.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;build-before-you-feel-ready&quot;&gt;Build Before You Feel Ready&lt;/h3&gt;
&lt;p&gt;When asked what advice he would give other developers, Mohammed keeps it simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Build before you feel ready.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His approach is straightforward:&lt;/p&gt;
&lt;p&gt;Start with a small problem.&lt;/p&gt;
&lt;p&gt;Experiment.&lt;/p&gt;
&lt;p&gt;Fail.&lt;/p&gt;
&lt;p&gt;Debug.&lt;/p&gt;
&lt;p&gt;Try again.&lt;/p&gt;
&lt;p&gt;He doesn't expect every project to succeed.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I don't know exactly where every project will lead, and not everything I build will succeed, but I want to keep creating, learning, and improving.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That attitude is perhaps the strongest theme running through his work.&lt;/p&gt;
&lt;p&gt;Whether he's experimenting with AI agents, benchmarking models, competing on Kaggle, contributing to open source, or building CodeBots Arena, the focus remains on turning ideas into something that can actually be tested.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;proving-what-ai-can-actually-do&quot;&gt;Proving What AI Can Actually Do&lt;/h3&gt;
&lt;p&gt;AI-generated software is becoming increasingly capable.&lt;/p&gt;
&lt;p&gt;But capability isn't the same as reliability.&lt;/p&gt;
&lt;p&gt;Mohammed Ghaban's work with CodeBots Arena explores an important question for the next generation of software development:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What happens when we stop judging AI-generated code by how good it looks and start judging it by whether it actually works?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;His answer is to build an environment where the code has to prove itself.&lt;/p&gt;
&lt;p&gt;Generate it.&lt;/p&gt;
&lt;p&gt;Run it.&lt;/p&gt;
&lt;p&gt;Test it.&lt;/p&gt;
&lt;p&gt;Measure it.&lt;/p&gt;
&lt;p&gt;And learn from what fails.&lt;/p&gt;
&lt;p&gt;That's the idea behind CodeBots Arena — and it may become an increasingly important way to think about AI-assisted software development.&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30304/mohammed-ghaban-built-an-arena-where-ai-coding-agents-have-to-prove-their-code-works</guid>
<pubDate>Thu, 08 Oct 2026 13:37:53 +0000</pubDate>
</item>
<item>
<title>From Writing Web Novels to Shipping Software — Nocklock’s Developer Journey</title>
<link>https://coderlegion.com/30297/from-writing-web-novels-to-shipping-software-nocklocks-developer-journey</link>
<description>&lt;h2 id=&quot;from-writing-web-novels-to-shipping-software-nocklock-s-developer-journey&quot;&gt;From Writing Web Novels to Shipping Software — Nocklock’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“I think AI is most useful when it extends my thinking rather than replacing it.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nocklock didn't originally become a developer because programming was a lifelong childhood dream.&lt;/p&gt;
&lt;p&gt;It started for a much more practical reason: making a living.&lt;/p&gt;
&lt;p&gt;A few years ago, before AI became deeply integrated into everyday software development, Nocklock was looking for a practical way into the industry. In Korea, Java and Spring were widely used in enterprise and public-sector development, making them a natural choice.&lt;/p&gt;
&lt;p&gt;But programming eventually became interesting for a reason that had little to do with career practicality.&lt;/p&gt;
&lt;p&gt;Before becoming a developer, Nocklock had commercially published two web novels.&lt;/p&gt;
&lt;p&gt;That experience would unexpectedly influence the way he thinks about software.&lt;/p&gt;
&lt;p&gt;Writing fiction means creating a world, defining its rules, and allowing characters to interact within those rules.&lt;/p&gt;
&lt;p&gt;Software isn't so different.&lt;/p&gt;
&lt;p&gt;Programming languages have rules. Networks have rules. Data has structure. Business logic creates constraints. Developers build systems and user flows inside those constraints.&lt;/p&gt;
&lt;p&gt;The connection between writing and programming gave Nocklock a different way of thinking about development.&lt;/p&gt;
&lt;p&gt;Instead of seeing software only as code, he began seeing it as a system of possibilities.&lt;/p&gt;
&lt;p&gt;And that perspective continues to influence how he builds today.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;programming-started-as-a-practical-choice&quot;&gt;Programming Started as a Practical Choice&lt;/h3&gt;
&lt;p&gt;Nocklock's initial decision to learn programming was pragmatic.&lt;/p&gt;
&lt;p&gt;Java and Spring offered a realistic path into professional software development, particularly within Korea's enterprise and public-sector technology landscape.&lt;/p&gt;
&lt;p&gt;But choosing a technology for practical reasons doesn't necessarily mean remaining interested for practical reasons.&lt;/p&gt;
&lt;p&gt;As Nocklock gained experience, he discovered that programming gave him something he had already experienced through writing:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;the ability to create systems governed by rules.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When writing a novel, he might ask:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What if I were the character?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What if the situation were different?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What would happen if the rules changed?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;He now brings similar questions into software development.&lt;/p&gt;
&lt;p&gt;When building something, he tries to imagine different situations and perspectives.&lt;/p&gt;
&lt;p&gt;What if he were the user?&lt;/p&gt;
&lt;p&gt;What if the user knew nothing about the subject?&lt;/p&gt;
&lt;p&gt;What if the environment were different?&lt;/p&gt;
&lt;p&gt;What if an assumption turned out to be wrong?&lt;/p&gt;
&lt;p&gt;That habit of questioning has become part of how he approaches development.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-by-shipping&quot;&gt;Learning by Shipping&lt;/h3&gt;
&lt;p&gt;One of Nocklock's strongest beliefs is reflected directly in his profile:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;learning by shipping.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;He discovered why this approach worked for him while studying for Korea's Engineer Information Processing qualification.&lt;/p&gt;
&lt;p&gt;Much of the preparation involved studying and memorizing theory.&lt;/p&gt;
&lt;p&gt;But he noticed something interesting.&lt;/p&gt;
&lt;p&gt;He could forget information he had memorized for an exam.&lt;/p&gt;
&lt;p&gt;Yet he could still remember errors he had encountered while working, why they happened, and how he eventually solved them.&lt;/p&gt;
&lt;p&gt;The difference was experience.&lt;/p&gt;
&lt;p&gt;Knowledge connected to a real problem stayed with him.&lt;/p&gt;
&lt;p&gt;That realization changed how he approached learning.&lt;/p&gt;
&lt;p&gt;When he encountered an AI development competition, he began building rather than waiting until he had learned everything he thought he needed to know.&lt;/p&gt;
&lt;p&gt;He learned what was necessary while developing the project.&lt;/p&gt;
&lt;p&gt;He made mistakes.&lt;/p&gt;
&lt;p&gt;He investigated them.&lt;/p&gt;
&lt;p&gt;He fixed them.&lt;/p&gt;
&lt;p&gt;And eventually, he shipped.&lt;/p&gt;
&lt;p&gt;That's what &lt;strong&gt;learning by shipping&lt;/strong&gt; means to him.&lt;/p&gt;
&lt;p&gt;It doesn't mean abandoning study.&lt;/p&gt;
&lt;p&gt;It means turning knowledge into experience.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;security-lens-when-the-mvp-became-real&quot;&gt;Security Lens: When the MVP Became Real&lt;/h3&gt;
&lt;p&gt;One of the clearest examples of this philosophy was &lt;strong&gt;Security Lens&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The original idea sounded relatively straightforward.&lt;/p&gt;
&lt;p&gt;A user would upload an image, OCR would extract information, the system would identify potential privacy risks, and the user would receive useful results.&lt;/p&gt;
&lt;p&gt;But building the real product exposed a much messier reality.&lt;/p&gt;
&lt;p&gt;Real files and images didn't always behave as expected.&lt;/p&gt;
&lt;p&gt;OCR accuracy wasn't always reliable.&lt;/p&gt;
&lt;p&gt;Unexpected problems kept appearing.&lt;/p&gt;
&lt;p&gt;And once the core functionality finally worked, Nocklock realized something important:&lt;/p&gt;
&lt;p&gt;The main feature working didn't mean the product was finished.&lt;/p&gt;
&lt;p&gt;It meant the next phase had started.&lt;/p&gt;
&lt;p&gt;There were still improvements to make, problems to investigate, and a deadline approaching.&lt;/p&gt;
&lt;p&gt;That experience changed his understanding of what it means to ship software.&lt;/p&gt;
&lt;p&gt;Building the main feature is only one milestone.&lt;/p&gt;
&lt;p&gt;Shipping means confronting the difference between:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;the product you imagined&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;the product that actually exists.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-readme-became-a-product-review&quot;&gt;The README Became a Product Review&lt;/h3&gt;
&lt;p&gt;Nocklock initially thought writing the README would simply mean documenting what he had already built.&lt;/p&gt;
&lt;p&gt;Instead, documentation exposed problems in the product itself.&lt;/p&gt;
&lt;p&gt;During development, he had often moved quickly from one problem to the next.&lt;/p&gt;
&lt;p&gt;Get something working.&lt;/p&gt;
&lt;p&gt;Move forward.&lt;/p&gt;
&lt;p&gt;Solve the next issue.&lt;/p&gt;
&lt;p&gt;Keep building.&lt;/p&gt;
&lt;p&gt;But when he tried to explain the project clearly, he started noticing gaps.&lt;/p&gt;
&lt;p&gt;Sometimes he would describe a feature and suddenly question whether the feature was necessary at all.&lt;/p&gt;
&lt;p&gt;That changed the purpose of the README.&lt;/p&gt;
&lt;p&gt;It was no longer just documentation.&lt;/p&gt;
&lt;p&gt;It became a way of reviewing the product.&lt;/p&gt;
&lt;p&gt;Writing forced him to examine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The project structure&lt;/li&gt;
&lt;li&gt;Individual features&lt;/li&gt;
&lt;li&gt;Development decisions&lt;/li&gt;
&lt;li&gt;The reasoning behind those decisions&lt;/li&gt;
&lt;li&gt;Whether certain features were actually necessary&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In that sense, documentation became another form of development.&lt;/p&gt;
&lt;p&gt;Sometimes explaining what you built reveals whether you should have built it in the first place.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;a-new-laptop-revealed-hidden-complexity&quot;&gt;A New Laptop Revealed Hidden Complexity&lt;/h3&gt;
&lt;p&gt;Another unexpected lesson came from something much more ordinary:&lt;/p&gt;
&lt;p&gt;setting up a new laptop.&lt;/p&gt;
&lt;p&gt;Moving from an established development environment to a clean machine exposed how much invisible state had accumulated over time.&lt;/p&gt;
&lt;p&gt;JDK versions.&lt;/p&gt;
&lt;p&gt;PATH settings.&lt;/p&gt;
&lt;p&gt;Git configuration.&lt;/p&gt;
&lt;p&gt;IDE settings.&lt;/p&gt;
&lt;p&gt;Build synchronization.&lt;/p&gt;
&lt;p&gt;Environment variables.&lt;/p&gt;
&lt;p&gt;Small setup decisions that had gradually become invisible.&lt;/p&gt;
&lt;p&gt;On the old machine, those things simply worked.&lt;/p&gt;
&lt;p&gt;On the new one, they didn't.&lt;/p&gt;
&lt;p&gt;Suddenly, when something behaved unexpectedly, Nocklock had to ask:&lt;/p&gt;
&lt;p&gt;Is this a problem with my code?&lt;/p&gt;
&lt;p&gt;Is it the build state?&lt;/p&gt;
&lt;p&gt;The JDK?&lt;/p&gt;
&lt;p&gt;The IDE?&lt;/p&gt;
&lt;p&gt;The environment configuration?&lt;/p&gt;
&lt;p&gt;That experience led to an important realization:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The development environment is part of the system too.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A clean machine can reveal what you genuinely understand and what your previous environment had quietly been doing for you.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;debugging-doesn-t-stop-at-the-code&quot;&gt;Debugging Doesn't Stop at the Code&lt;/h3&gt;
&lt;p&gt;Deployment reinforced the same lesson.&lt;/p&gt;
&lt;p&gt;Local development can feel comfortable.&lt;/p&gt;
&lt;p&gt;Then the application gets deployed.&lt;/p&gt;
&lt;p&gt;Suddenly, ports, environment variables, runtime differences, external services, configuration and hidden assumptions all become part of the problem.&lt;/p&gt;
&lt;p&gt;Nocklock experienced this while deploying Security Lens to Railway.&lt;/p&gt;
&lt;p&gt;It also helped him understand why tools such as Docker became so important.&lt;/p&gt;
&lt;p&gt;Docker doesn't eliminate every deployment problem.&lt;/p&gt;
&lt;p&gt;But making the runtime environment reproducible can remove a significant category of differences between machines.&lt;/p&gt;
&lt;p&gt;As a result, his approach to debugging has expanded.&lt;/p&gt;
&lt;p&gt;He doesn't look only at the code anymore.&lt;/p&gt;
&lt;p&gt;He also considers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configuration&lt;/li&gt;
&lt;li&gt;Runtime&lt;/li&gt;
&lt;li&gt;Environment&lt;/li&gt;
&lt;li&gt;External dependencies&lt;/li&gt;
&lt;li&gt;Deployment conditions&lt;/li&gt;
&lt;li&gt;Assumptions connecting those pieces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sometimes the bug isn't in the code.&lt;/p&gt;
&lt;p&gt;Sometimes the code is behaving exactly as written inside an environment you misunderstood.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-java-and-spring-still-matter&quot;&gt;Why Java and Spring Still Matter&lt;/h3&gt;
&lt;p&gt;Nocklock originally chose Java and Spring because they were practical.&lt;/p&gt;
&lt;p&gt;After working with them professionally, however, he developed a different appreciation for the ecosystem.&lt;/p&gt;
&lt;p&gt;What stands out to him is its maturity and structure.&lt;/p&gt;
&lt;p&gt;Backend services can quickly become complicated.&lt;/p&gt;
&lt;p&gt;They may involve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business logic&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;External integrations&lt;/li&gt;
&lt;li&gt;Multiple requirements&lt;/li&gt;
&lt;li&gt;Different environments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In that situation, conventions and proven patterns can become extremely valuable.&lt;/p&gt;
&lt;p&gt;Spring provides abstractions that help developers build quickly while still leaving a deeper ecosystem underneath those abstractions to understand.&lt;/p&gt;
&lt;p&gt;But Nocklock doesn't believe Java or Spring should automatically be used for every problem.&lt;/p&gt;
&lt;p&gt;The technology should fit the problem.&lt;/p&gt;
&lt;p&gt;That idea connects directly to one of his broader principles:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;follow the problem, not a fixed stack.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;ai-should-extend-thinking-not-replace-it&quot;&gt;AI Should Extend Thinking, Not Replace It&lt;/h3&gt;
&lt;p&gt;Nocklock's approach to AI is deliberately different from simply asking an AI model to write everything.&lt;/p&gt;
&lt;p&gt;His first step isn't:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Write this for me.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Instead, he tries to explain what he's curious about, why he's curious about it, and how he thinks the pieces might connect.&lt;/p&gt;
&lt;p&gt;Then he asks AI to help explain the subject.&lt;/p&gt;
&lt;p&gt;Only after understanding the direction does he use AI for implementation, code review, identifying mistakes or suggesting improvements.&lt;/p&gt;
&lt;p&gt;That distinction matters to him.&lt;/p&gt;
&lt;p&gt;AI can provide an enormous amount of knowledge.&lt;/p&gt;
&lt;p&gt;Its ability to interact with tools and take action is also growing quickly.&lt;/p&gt;
&lt;p&gt;But Nocklock wants the important questions, judgment and decisions to remain his responsibility.&lt;/p&gt;
&lt;p&gt;The ideal relationship isn't human versus AI.&lt;/p&gt;
&lt;p&gt;It's human thinking enhanced by AI.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI becomes a multiplier for understanding rather than a substitute for understanding.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;following-the-problem-instead-of-the-stack&quot;&gt;Following the Problem Instead of the Stack&lt;/h3&gt;
&lt;p&gt;Nocklock doesn't want technology to be the starting point of a project.&lt;/p&gt;
&lt;p&gt;He starts with the problem.&lt;/p&gt;
&lt;p&gt;What is being built?&lt;/p&gt;
&lt;p&gt;How quickly does it need to be built?&lt;/p&gt;
&lt;p&gt;What constraints exist?&lt;/p&gt;
&lt;p&gt;What can realistically be maintained?&lt;/p&gt;
&lt;p&gt;What can be verified?&lt;/p&gt;
&lt;p&gt;Sometimes Java and Spring are the right choice because they are familiar and fit the requirements.&lt;/p&gt;
&lt;p&gt;Sometimes another technology is better.&lt;/p&gt;
&lt;p&gt;AI has made experimenting with unfamiliar technologies easier, but that doesn't mean every new technology deserves to be added to a project.&lt;/p&gt;
&lt;p&gt;In fact, sometimes following the problem means deliberately choosing something familiar and boring.&lt;/p&gt;
&lt;p&gt;That's an important distinction.&lt;/p&gt;
&lt;p&gt;Being flexible doesn't mean constantly chasing new technology.&lt;/p&gt;
&lt;p&gt;It means choosing technology based on what the problem actually requires.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-cost-of-moving-too-fast&quot;&gt;The Cost of Moving Too Fast&lt;/h3&gt;
&lt;p&gt;One mistake Nocklock continues to notice in himself is focusing heavily on implementation and assuming the structure can always be cleaned up later.&lt;/p&gt;
&lt;p&gt;Security Lens made this particularly obvious.&lt;/p&gt;
&lt;p&gt;Because of the competition deadline, he often solved the next problem in front of him and moved on.&lt;/p&gt;
&lt;p&gt;That approach helped maintain momentum.&lt;/p&gt;
&lt;p&gt;But later, while documenting the project, he could see where the structure had become messy.&lt;/p&gt;
&lt;p&gt;He could also see that some features probably didn't need to exist.&lt;/p&gt;
&lt;p&gt;The lesson wasn't that moving quickly was wrong.&lt;/p&gt;
&lt;p&gt;It was that speed doesn't remove the cost of decisions.&lt;/p&gt;
&lt;p&gt;It simply delays when you see that cost.&lt;/p&gt;
&lt;p&gt;Today, Nocklock tries to create small moments during development where he can step outside the code and ask:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does what I'm building still make sense?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That pause can prevent a lot of future cleanup.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-he-s-exploring-next&quot;&gt;What He's Exploring Next&lt;/h3&gt;
&lt;p&gt;Nocklock's interests are increasingly moving toward the intersection of:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backend development.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real products.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Security Lens began as a tool for detecting privacy risks in files before they are uploaded.&lt;/p&gt;
&lt;p&gt;Working on it opened up broader questions about digital content.&lt;/p&gt;
&lt;p&gt;How do we know whether an image or piece of content is authentic?&lt;/p&gt;
&lt;p&gt;Where did it come from?&lt;/p&gt;
&lt;p&gt;Was it generated or modified by AI?&lt;/p&gt;
&lt;p&gt;Can AI-generated media be used to imitate another person?&lt;/p&gt;
&lt;p&gt;These questions have made areas such as content provenance and identity risk particularly interesting to him.&lt;/p&gt;
&lt;p&gt;At the same time, he remains interested in building smaller experimental products.&lt;/p&gt;
&lt;p&gt;The goal is to test an idea quickly, receive real feedback and then decide whether the idea deserves further investment.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;build-something-smaller&quot;&gt;Build Something Smaller&lt;/h3&gt;
&lt;p&gt;When asked what advice he would give other developers, Nocklock's answer is straightforward:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build something smaller than the thing you originally wanted to build.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's easy to remain in preparation mode.&lt;/p&gt;
&lt;p&gt;There is always another:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Course&lt;/li&gt;
&lt;li&gt;Framework&lt;/li&gt;
&lt;li&gt;Tutorial&lt;/li&gt;
&lt;li&gt;Concept&lt;/li&gt;
&lt;li&gt;Technology&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;that could be learned first.&lt;/p&gt;
&lt;p&gt;But developers don't need to understand everything before starting.&lt;/p&gt;
&lt;p&gt;Build something small enough to finish.&lt;/p&gt;
&lt;p&gt;Let it break.&lt;/p&gt;
&lt;p&gt;Deploy it.&lt;/p&gt;
&lt;p&gt;Let another person use it.&lt;/p&gt;
&lt;p&gt;Then examine what goes wrong.&lt;/p&gt;
&lt;p&gt;Those problems will often tell you what you genuinely need to learn next.&lt;/p&gt;
&lt;p&gt;For Nocklock, one real error that requires investigation can teach more than memorizing ten definitions.&lt;/p&gt;
&lt;p&gt;Experience creates context.&lt;/p&gt;
&lt;p&gt;Context makes knowledge stick.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;becoming-more-than-a-framework-developer&quot;&gt;Becoming More Than a Framework Developer&lt;/h3&gt;
&lt;p&gt;Nocklock doesn't want to become a developer defined by a single framework.&lt;/p&gt;
&lt;p&gt;Java and Spring are an important foundation, but his longer-term goal is broader.&lt;/p&gt;
&lt;p&gt;He wants to become someone who can move comfortably between:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Engineering&lt;/li&gt;
&lt;li&gt;AI&lt;/li&gt;
&lt;li&gt;Product thinking&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;li&gt;Problem solving&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He wants to understand a problem, choose appropriate tools, build the system, deploy it, explain it clearly and improve it based on what actually happens.&lt;/p&gt;
&lt;p&gt;In other words:&lt;/p&gt;
&lt;p&gt;Not simply someone who writes code.&lt;/p&gt;
&lt;p&gt;Someone who can take an idea and keep working on it until it becomes something another person can actually use.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-writing-stories-to-building-systems&quot;&gt;From Writing Stories to Building Systems&lt;/h3&gt;
&lt;p&gt;There is an interesting connection running through Nocklock's entire journey.&lt;/p&gt;
&lt;p&gt;Before software, there was storytelling.&lt;/p&gt;
&lt;p&gt;He created fictional worlds, defined their rules and imagined what could happen inside them.&lt;/p&gt;
&lt;p&gt;Then came programming.&lt;/p&gt;
&lt;p&gt;Different syntax.&lt;/p&gt;
&lt;p&gt;Different constraints.&lt;/p&gt;
&lt;p&gt;Different tools.&lt;/p&gt;
&lt;p&gt;But a surprisingly similar creative process.&lt;/p&gt;
&lt;p&gt;Software also involves defining rules, creating systems and imagining what happens when different pieces interact.&lt;/p&gt;
&lt;p&gt;Today, AI adds another layer to that process.&lt;/p&gt;
&lt;p&gt;It can help him explore unfamiliar concepts, test ideas and move faster.&lt;/p&gt;
&lt;p&gt;But he still wants to be the person asking the questions.&lt;/p&gt;
&lt;p&gt;The person deciding what matters.&lt;/p&gt;
&lt;p&gt;The person choosing what to build.&lt;/p&gt;
&lt;p&gt;And ultimately, the person responsible for shipping it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;knowing-what-not-to-build&quot;&gt;Knowing What Not to Build&lt;/h3&gt;
&lt;p&gt;When Nocklock first started programming, he thought becoming a better developer mostly meant knowing more.&lt;/p&gt;
&lt;p&gt;More syntax.&lt;/p&gt;
&lt;p&gt;More frameworks.&lt;/p&gt;
&lt;p&gt;More technologies.&lt;/p&gt;
&lt;p&gt;His perspective has changed.&lt;/p&gt;
&lt;p&gt;Technical knowledge still matters.&lt;/p&gt;
&lt;p&gt;But software development is also about understanding the problem, questioning assumptions, debugging beyond the code, communicating decisions, working within constraints and actually shipping something people can use.&lt;/p&gt;
&lt;p&gt;He has also learned that knowing &lt;strong&gt;what not to build&lt;/strong&gt; can be just as important as knowing how to build something.&lt;/p&gt;
&lt;p&gt;Code remains at the center of the work.&lt;/p&gt;
&lt;p&gt;But it isn't the whole job anymore.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-developer-journey-continues&quot;&gt;The Developer Journey Continues&lt;/h3&gt;
&lt;p&gt;Nocklock's journey began with a practical career decision.&lt;/p&gt;
&lt;p&gt;It developed through Java and Spring.&lt;/p&gt;
&lt;p&gt;It was shaped by an earlier life as a published web novelist.&lt;/p&gt;
&lt;p&gt;It accelerated through learning by shipping.&lt;/p&gt;
&lt;p&gt;Security Lens taught him the difference between building an MVP and actually shipping a product.&lt;/p&gt;
&lt;p&gt;Documentation taught him to question his own decisions.&lt;/p&gt;
&lt;p&gt;Deployment taught him that the environment is part of the system.&lt;/p&gt;
&lt;p&gt;AI taught him another way to learn and work.&lt;/p&gt;
&lt;p&gt;And his current interests are taking him toward the intersection of backend engineering, AI, security and real-world products.&lt;/p&gt;
&lt;p&gt;His philosophy can be summed up simply:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Start with the problem.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build something small.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Let reality test it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Learn from what breaks.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ship it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then do it again.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-nocklock&quot;&gt;About Nocklock&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nocklock&lt;/strong&gt; is a developer building useful things with Java, Spring and AI.&lt;/p&gt;
&lt;p&gt;His approach centers on learning by shipping, documenting what works and following the problem rather than committing to a fixed technology stack.&lt;/p&gt;
&lt;p&gt;His current interests include backend development, AI, security, content provenance and experimental product development.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Nocklock&quot;&gt;View Nocklock's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://nocklock.tistory.com/&quot;&gt;Visit Nocklock's website&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers a place to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30297/from-writing-web-novels-to-shipping-software-nocklocks-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 13:10:12 +0000</pubDate>
</item>
<item>
<title>From Software Development to AI &amp; Real Estate Tech — Waqas Ahmad’s Developer Journey</title>
<link>https://coderlegion.com/30296/from-software-development-to-ai-real-estate-tech-waqas-ahmads-developer-journey</link>
<description>&lt;h2 id=&quot;from-software-development-to-ai-amp-real-estate-tech-waqas-ahmad-s-developer-journey&quot;&gt;From Software Development to AI &amp;amp; Real Estate Tech — Waqas Ahmad’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“Coding may help you build the product, but understanding people helps you build something people actually want to use.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Waqas Ahmad's journey into technology didn't begin with a computer.&lt;/p&gt;
&lt;p&gt;It began with his family.&lt;/p&gt;
&lt;p&gt;Growing up, he watched his father work hard to build a better future for the family. His father had come from a rural area near Burewala, supported his own education by teaching, and later spent years serving patients despite limited medical facilities.&lt;/p&gt;
&lt;p&gt;That example shaped Waqas's attitude toward education, hard work and persistence.&lt;/p&gt;
&lt;p&gt;Initially, Waqas wanted to become a doctor.&lt;/p&gt;
&lt;p&gt;He chose the medical stream during matric, but his father encouraged him to consider technology, believing computers would become increasingly important.&lt;/p&gt;
&lt;p&gt;Waqas changed direction.&lt;/p&gt;
&lt;p&gt;He studied ICS and eventually enrolled in a BS Computer Science program at Virtual University of Pakistan.&lt;/p&gt;
&lt;p&gt;But his path into software development wasn't straightforward.&lt;/p&gt;
&lt;p&gt;While studying, he also had family responsibilities and worked different local jobs, including as a helper, cashier and later handling accounts and store responsibilities at a restaurant.&lt;/p&gt;
&lt;p&gt;He continued studying alongside those responsibilities.&lt;/p&gt;
&lt;p&gt;Eventually, a school friend, Saulat Abbas, helped strengthen his programming skills and encouraged him to keep coding.&lt;/p&gt;
&lt;p&gt;Waqas started small.&lt;/p&gt;
&lt;p&gt;Calculators.&lt;/p&gt;
&lt;p&gt;Simple JavaScript games.&lt;/p&gt;
&lt;p&gt;Small projects.&lt;/p&gt;
&lt;p&gt;Then those experiments gradually became something more serious.&lt;/p&gt;
&lt;p&gt;He joined Pixel Perfects while still completing his degree and began working on real software projects.&lt;/p&gt;
&lt;p&gt;That was when technology stopped being only something he was studying.&lt;/p&gt;
&lt;p&gt;It became something he was building.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-learning-to-building-real-products&quot;&gt;From Learning to Building Real Products&lt;/h3&gt;
&lt;p&gt;Early in his development journey, Waqas was particularly interested in frontend development and UI/UX.&lt;/p&gt;
&lt;p&gt;He enjoyed thinking about how an interface should look, how users should move through it and how a product could become easier to understand.&lt;/p&gt;
&lt;p&gt;But working on real projects taught him that building software is only part of the equation.&lt;/p&gt;
&lt;p&gt;A product also needs users.&lt;/p&gt;
&lt;p&gt;Someone needs to understand those users.&lt;/p&gt;
&lt;p&gt;Someone needs to communicate with clients.&lt;/p&gt;
&lt;p&gt;Someone needs to explain what the product does.&lt;/p&gt;
&lt;p&gt;Someone needs to market it.&lt;/p&gt;
&lt;p&gt;And someone needs to make sure people can actually find it.&lt;/p&gt;
&lt;p&gt;That realization gradually expanded Waqas's role beyond pure development.&lt;/p&gt;
&lt;p&gt;His experience at Pixel Perfects exposed him to both sides.&lt;/p&gt;
&lt;p&gt;He worked on frontend and full-stack projects before moving into customer support and client communication.&lt;/p&gt;
&lt;p&gt;He discussed requirements with clients, handled orders and revisions, coordinated with developers and designers, and helped ensure projects were delivered according to expectations.&lt;/p&gt;
&lt;p&gt;Later, when EstateAI launched, his responsibilities expanded further into SEO, content marketing, product listings, directory submissions, blogs and social media.&lt;/p&gt;
&lt;p&gt;His technical background became an advantage.&lt;/p&gt;
&lt;p&gt;He wasn't simply marketing a technology product.&lt;/p&gt;
&lt;p&gt;He understood the technology behind it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-frontend-remained-important&quot;&gt;Why Frontend Remained Important&lt;/h3&gt;
&lt;p&gt;Although Waqas has worked across the stack, frontend and product experience remain the areas he enjoys most.&lt;/p&gt;
&lt;p&gt;He particularly enjoys taking an idea and turning it into an interface that people can actually use.&lt;/p&gt;
&lt;p&gt;Early in his development journey, he noticed that some of his friends were stronger in programming logic while he had a stronger eye for interfaces and user experience.&lt;/p&gt;
&lt;p&gt;Instead of treating that difference as a weakness, they worked together.&lt;/p&gt;
&lt;p&gt;He learned from them.&lt;/p&gt;
&lt;p&gt;They learned from him.&lt;/p&gt;
&lt;p&gt;Over time, Waqas became more comfortable working across the stack.&lt;/p&gt;
&lt;p&gt;His experience includes technologies such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;React.js&lt;/li&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Express.js&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;Bootstrap&lt;/li&gt;
&lt;li&gt;Git &amp;amp; GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But technical breadth isn't the only lesson he took from full-stack development.&lt;/p&gt;
&lt;p&gt;He learned that a feature can technically work and still have a problem.&lt;/p&gt;
&lt;p&gt;If users find it confusing or difficult to use, the product still needs improvement.&lt;/p&gt;
&lt;p&gt;That perspective has remained with him even as his career expanded into customer-facing and content roles.&lt;/p&gt;
&lt;p&gt;He naturally thinks about both sides:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How does it work technically?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How does it feel to the person using it?&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-development-meets-content&quot;&gt;When Development Meets Content&lt;/h3&gt;
&lt;p&gt;Waqas's move into content creation wasn't a complete departure from software development.&lt;/p&gt;
&lt;p&gt;It was an extension of it.&lt;/p&gt;
&lt;p&gt;He discovered that technical products need communication.&lt;/p&gt;
&lt;p&gt;A product can be well engineered and still fail to reach people if nobody understands what it does or why it matters.&lt;/p&gt;
&lt;p&gt;His work in content and SEO gave him a different perspective on technology.&lt;/p&gt;
&lt;p&gt;He began creating blogs, articles and social media content.&lt;/p&gt;
&lt;p&gt;He worked on SEO and backlink building.&lt;/p&gt;
&lt;p&gt;He listed products on relevant platforms.&lt;/p&gt;
&lt;p&gt;He helped with directory submissions and online visibility.&lt;/p&gt;
&lt;p&gt;He also continued communicating directly with customers.&lt;/p&gt;
&lt;p&gt;That combination taught him something important:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Good software needs good communication.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And good technical content requires an understanding of the technology behind it.&lt;/p&gt;
&lt;p&gt;For Waqas, development and content are therefore not completely separate disciplines.&lt;/p&gt;
&lt;p&gt;They solve different parts of the same problem.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;estateai-applying-ai-to-real-estate&quot;&gt;EstateAI: Applying AI to Real Estate&lt;/h3&gt;
&lt;p&gt;One of the most important products in Waqas's current journey is &lt;strong&gt;EstateAI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The idea comes from a practical problem in real estate marketing.&lt;/p&gt;
&lt;p&gt;Property professionals often need to prepare and improve large numbers of property images before they can effectively market a listing.&lt;/p&gt;
&lt;p&gt;That can involve repetitive tasks such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improving images&lt;/li&gt;
&lt;li&gt;Staging empty rooms&lt;/li&gt;
&lt;li&gt;Changing the atmosphere of a photo&lt;/li&gt;
&lt;li&gt;Removing unwanted objects&lt;/li&gt;
&lt;li&gt;Visualizing different possibilities for a property&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;EstateAI approaches this as an AI-powered property marketing workspace.&lt;/p&gt;
&lt;p&gt;The goal isn't simply to generate an impressive image.&lt;/p&gt;
&lt;p&gt;It's to make AI useful inside an actual property marketing workflow.&lt;/p&gt;
&lt;p&gt;That distinction matters.&lt;/p&gt;
&lt;p&gt;A real estate professional needs more than an attractive AI-generated image.&lt;/p&gt;
&lt;p&gt;The property still needs to look like the same property.&lt;/p&gt;
&lt;p&gt;Its architecture matters.&lt;/p&gt;
&lt;p&gt;The room layout matters.&lt;/p&gt;
&lt;p&gt;The camera perspective matters.&lt;/p&gt;
&lt;p&gt;The overall identity of the space matters.&lt;/p&gt;
&lt;p&gt;AI becomes useful when it improves the presentation without losing those important characteristics.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;making-ai-useful-instead-of-just-impressive&quot;&gt;Making AI Useful Instead of Just Impressive&lt;/h3&gt;
&lt;p&gt;One of the biggest challenges Waqas sees in AI-powered real estate technology is balancing visual quality with accuracy.&lt;/p&gt;
&lt;p&gt;People may see impressive AI-generated images and assume every result will automatically be perfect.&lt;/p&gt;
&lt;p&gt;Professional workflows are different.&lt;/p&gt;
&lt;p&gt;Reliability and consistency matter just as much as visual quality.&lt;/p&gt;
&lt;p&gt;There is another challenge too:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The user shouldn't need to understand the technology.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A realtor shouldn't have to understand AI models, prompting techniques or complicated settings just to improve a property photo.&lt;/p&gt;
&lt;p&gt;That leads to one of Waqas's central product principles:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The value of AI isn't only in the underlying technology. It's in turning that technology into a workflow that solves a specific problem without creating unnecessary complexity for the user.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;start-with-the-user-not-the-technology&quot;&gt;Start With the User, Not the Technology&lt;/h3&gt;
&lt;p&gt;Waqas's experience in customer support has strongly influenced how he approaches product development.&lt;/p&gt;
&lt;p&gt;When you communicate directly with customers, you hear things developers don't always hear.&lt;/p&gt;
&lt;p&gt;Where people get confused.&lt;/p&gt;
&lt;p&gt;What they expected.&lt;/p&gt;
&lt;p&gt;What frustrates them.&lt;/p&gt;
&lt;p&gt;Which features they actually care about.&lt;/p&gt;
&lt;p&gt;That experience changed how Waqas thinks about software.&lt;/p&gt;
&lt;p&gt;Instead of starting with:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“What can this technology do?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;He prefers to start with:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“What problem are we solving?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And then:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Does this actually make the user's work easier?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is particularly important with AI.&lt;/p&gt;
&lt;p&gt;AI makes it possible to build an enormous number of technically impressive features.&lt;/p&gt;
&lt;p&gt;But technically impressive doesn't automatically mean useful.&lt;/p&gt;
&lt;p&gt;Good product development means being honest about what the technology can actually do while designing the experience around what users genuinely need.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderswire-and-the-reality-of-product-development&quot;&gt;CodersWire and the Reality of Product Development&lt;/h3&gt;
&lt;p&gt;Another important project in Waqas's journey was &lt;strong&gt;CodersWire&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Unlike an academic exercise, it gave him an opportunity to work on a real-world product.&lt;/p&gt;
&lt;p&gt;His contribution was mainly focused on the frontend and UI/UX side, working with technologies including Next.js, TypeScript, MUI, Tailwind CSS, Google Maps and React Slick.&lt;/p&gt;
&lt;p&gt;The project also involved backend technologies including NestJS, MySQL, TypeORM, AWS and Nodemailer.&lt;/p&gt;
&lt;p&gt;The experience reinforced a lesson that goes beyond any individual technology:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building software is very different from completing a coding task.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A real product requires thinking about the complete system.&lt;/p&gt;
&lt;p&gt;How components communicate.&lt;/p&gt;
&lt;p&gt;How users interact with the interface.&lt;/p&gt;
&lt;p&gt;How the application evolves.&lt;/p&gt;
&lt;p&gt;How different people contribute.&lt;/p&gt;
&lt;p&gt;How the product responds to changing requirements.&lt;/p&gt;
&lt;p&gt;It also reinforced the importance of collaboration.&lt;/p&gt;
&lt;p&gt;Waqas had friends and colleagues who were stronger in areas where he was still developing, particularly programming logic and backend concepts.&lt;/p&gt;
&lt;p&gt;Working with them helped him improve faster than trying to learn everything alone.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-customer-support-taught-him-about-ux&quot;&gt;What Customer Support Taught Him About UX&lt;/h3&gt;
&lt;p&gt;Working directly with customers changed Waqas's thinking about software more than he expected.&lt;/p&gt;
&lt;p&gt;As a developer, it can be easy to focus on whether a feature technically works.&lt;/p&gt;
&lt;p&gt;Customer conversations reveal another reality.&lt;/p&gt;
&lt;p&gt;A technically correct product can still be difficult to use.&lt;/p&gt;
&lt;p&gt;Or difficult to understand.&lt;/p&gt;
&lt;p&gt;Or simply different from what the customer expected.&lt;/p&gt;
&lt;p&gt;In his customer-facing role, Waqas dealt with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project discussions&lt;/li&gt;
&lt;li&gt;Client requirements&lt;/li&gt;
&lt;li&gt;Orders&lt;/li&gt;
&lt;li&gt;Coordination&lt;/li&gt;
&lt;li&gt;Deliveries&lt;/li&gt;
&lt;li&gt;Revisions&lt;/li&gt;
&lt;li&gt;Communication between customers, designers and developers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That experience taught him to look beyond what customers literally say and try to understand what they actually need.&lt;/p&gt;
&lt;p&gt;He now carries that perspective into both product development and content creation.&lt;/p&gt;
&lt;p&gt;When he explains or promotes a product, he tries to think about the questions a real user would ask rather than simply listing technical features.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;turning-complex-technology-into-simple-ideas&quot;&gt;Turning Complex Technology Into Simple Ideas&lt;/h3&gt;
&lt;p&gt;Waqas's approach to technical content starts with the audience.&lt;/p&gt;
&lt;p&gt;A developer might immediately understand terms such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;AI models&lt;/li&gt;
&lt;li&gt;Server-side rendering&lt;/li&gt;
&lt;li&gt;Automation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But a business owner or general user may not need to understand all of those technical details.&lt;/p&gt;
&lt;p&gt;So Waqas asks three questions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What does this technology do?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How can it help the person reading it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From there, he prefers simple language, practical examples and real use cases.&lt;/p&gt;
&lt;p&gt;His development background helps him understand the technical side.&lt;/p&gt;
&lt;p&gt;His customer-facing experience helps him communicate that technical side.&lt;/p&gt;
&lt;p&gt;For him, good technical content shouldn't make readers feel like they need a technical background just to understand the idea.&lt;/p&gt;
&lt;p&gt;It should leave them with a clear understanding of what the technology means and why it matters.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;ai-and-the-role-of-human-judgment&quot;&gt;AI and the Role of Human Judgment&lt;/h3&gt;
&lt;p&gt;Waqas sees AI as one of the most useful tools available to modern developers and content creators.&lt;/p&gt;
&lt;p&gt;It can reduce repetitive work.&lt;/p&gt;
&lt;p&gt;It can help explore solutions.&lt;/p&gt;
&lt;p&gt;It can generate initial code.&lt;/p&gt;
&lt;p&gt;It can help with debugging ideas.&lt;/p&gt;
&lt;p&gt;It can support learning unfamiliar concepts.&lt;/p&gt;
&lt;p&gt;In content and marketing, AI can assist with research, brainstorming, drafting and organizing information.&lt;/p&gt;
&lt;p&gt;But Waqas doesn't see AI as a replacement for human judgment.&lt;/p&gt;
&lt;p&gt;In fact, he believes AI can make human judgment more important.&lt;/p&gt;
&lt;p&gt;Someone still needs to decide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the output accurate?&lt;/li&gt;
&lt;li&gt;Does it actually solve the problem?&lt;/li&gt;
&lt;li&gt;Is the message appropriate for the audience?&lt;/li&gt;
&lt;li&gt;Does the result feel authentic?&lt;/li&gt;
&lt;li&gt;Is the idea worth pursuing?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI can generate possibilities.&lt;/p&gt;
&lt;p&gt;Humans still need to decide which possibilities are worth pursuing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-challenge-of-building-while-life-keeps-moving&quot;&gt;The Challenge of Building While Life Keeps Moving&lt;/h3&gt;
&lt;p&gt;One of the biggest challenges in Waqas's journey wasn't purely technical.&lt;/p&gt;
&lt;p&gt;It was building a career while managing responsibilities outside his studies.&lt;/p&gt;
&lt;p&gt;There were periods when he worked long hours in local jobs while continuing his education.&lt;/p&gt;
&lt;p&gt;He also had family responsibilities.&lt;/p&gt;
&lt;p&gt;That made his path slower and more difficult than simply focusing entirely on university and coding.&lt;/p&gt;
&lt;p&gt;There was another challenge too.&lt;/p&gt;
&lt;p&gt;He recognized that he wasn't equally strong in every part of development.&lt;/p&gt;
&lt;p&gt;UI/UX and frontend came naturally to him.&lt;/p&gt;
&lt;p&gt;Programming logic required more practice.&lt;/p&gt;
&lt;p&gt;Instead of treating that difference as a reason to stop, he learned from people around him.&lt;/p&gt;
&lt;p&gt;Saulat Abbas helped strengthen his coding foundation.&lt;/p&gt;
&lt;p&gt;Working with Abdullah Sheikh taught him the value of collaboration, particularly because Abdullah was strong with JavaScript logic.&lt;/p&gt;
&lt;p&gt;That experience taught Waqas something important:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Progress doesn't always mean being the best person in the room.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes it means finding people you can learn from.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;don-t-limit-yourself-to-coding&quot;&gt;Don't Limit Yourself to Coding&lt;/h3&gt;
&lt;p&gt;For Waqas, one of the biggest lessons from his career is that developers shouldn't limit themselves to coding.&lt;/p&gt;
&lt;p&gt;Technical skills are important.&lt;/p&gt;
&lt;p&gt;But building a product requires much more.&lt;/p&gt;
&lt;p&gt;It requires understanding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Users&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Marketing&lt;/li&gt;
&lt;li&gt;Customer support&lt;/li&gt;
&lt;li&gt;Business problems&lt;/li&gt;
&lt;li&gt;Product positioning&lt;/li&gt;
&lt;li&gt;User experience&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;His own career demonstrates that.&lt;/p&gt;
&lt;p&gt;He has moved between:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Development.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Customer support.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Content.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SEO.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Product marketing.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Each role gave him a different perspective on how software actually reaches people and serves customers.&lt;/p&gt;
&lt;p&gt;That combination has become one of his strengths.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;start-small-and-build-for-real&quot;&gt;Start Small and Build for Real&lt;/h3&gt;
&lt;p&gt;For developers who want to build their own products, Waqas recommends starting before they feel completely ready.&lt;/p&gt;
&lt;p&gt;Talk to users early.&lt;/p&gt;
&lt;p&gt;Understand the problem before deciding what technology to build.&lt;/p&gt;
&lt;p&gt;Learn enough about marketing and communication to explain the product clearly.&lt;/p&gt;
&lt;p&gt;And don't wait until you know everything.&lt;/p&gt;
&lt;p&gt;A first project doesn't need to be impressive.&lt;/p&gt;
&lt;p&gt;It could be:&lt;/p&gt;
&lt;p&gt;A calculator.&lt;/p&gt;
&lt;p&gt;A simple game.&lt;/p&gt;
&lt;p&gt;A small web application.&lt;/p&gt;
&lt;p&gt;What matters is actually building it.&lt;/p&gt;
&lt;p&gt;Those early projects teach concepts that tutorials alone can't provide.&lt;/p&gt;
&lt;p&gt;They also create the confidence needed to tackle larger problems later.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;don-t-compare-your-timeline&quot;&gt;Don't Compare Your Timeline&lt;/h3&gt;
&lt;p&gt;Waqas's own journey is a good example of why comparing development timelines can be misleading.&lt;/p&gt;
&lt;p&gt;His path wasn't straightforward.&lt;/p&gt;
&lt;p&gt;He changed direction from medicine to computer science.&lt;/p&gt;
&lt;p&gt;He worked local jobs while studying.&lt;/p&gt;
&lt;p&gt;He developed his programming skills gradually.&lt;/p&gt;
&lt;p&gt;He moved between development, customer support, content, SEO and product marketing.&lt;/p&gt;
&lt;p&gt;He became involved with AI and real-estate technology.&lt;/p&gt;
&lt;p&gt;None of it happened through a perfectly planned route.&lt;/p&gt;
&lt;p&gt;And that's okay.&lt;/p&gt;
&lt;p&gt;His advice is not to compare your timeline with someone else's.&lt;/p&gt;
&lt;p&gt;Technology changes constantly.&lt;/p&gt;
&lt;p&gt;The important skills are not limited to a particular framework or programming language.&lt;/p&gt;
&lt;p&gt;The ability to learn.&lt;/p&gt;
&lt;p&gt;The ability to adapt.&lt;/p&gt;
&lt;p&gt;The ability to communicate.&lt;/p&gt;
&lt;p&gt;And the willingness to keep improving.&lt;/p&gt;
&lt;p&gt;Those skills continue to matter even when the technology changes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;looking-ahead-ai-saas-and-real-estate&quot;&gt;Looking Ahead: AI, SaaS and Real Estate&lt;/h3&gt;
&lt;p&gt;Waqas's current interests sit at the intersection of three areas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SaaS.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real estate technology.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;His experience with EstateAI has shown him how much opportunity exists in industries that still contain manual and repetitive workflows.&lt;/p&gt;
&lt;p&gt;He wants to continue exploring AI-powered products that solve practical business problems rather than simply adding AI because it is popular.&lt;/p&gt;
&lt;p&gt;At the same time, he wants to continue improving his development skills while remaining involved in content, SEO and product marketing.&lt;/p&gt;
&lt;p&gt;That combination suits the way he naturally thinks about technology.&lt;/p&gt;
&lt;p&gt;He enjoys being involved at different stages of a product:&lt;/p&gt;
&lt;p&gt;From understanding the technology.&lt;/p&gt;
&lt;p&gt;To thinking about the user.&lt;/p&gt;
&lt;p&gt;To communicating the product's value.&lt;/p&gt;
&lt;p&gt;To helping people discover it.&lt;/p&gt;
&lt;p&gt;Long term, he wants to contribute to products where technology, business and user experience come together in a meaningful way.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-doctor-to-developer&quot;&gt;From Doctor to Developer&lt;/h3&gt;
&lt;p&gt;Looking back, Waqas's journey could have gone in a completely different direction.&lt;/p&gt;
&lt;p&gt;He initially wanted to become a doctor.&lt;/p&gt;
&lt;p&gt;His father encouraged him to consider technology.&lt;/p&gt;
&lt;p&gt;He changed direction.&lt;/p&gt;
&lt;p&gt;He studied computer science.&lt;/p&gt;
&lt;p&gt;He worked local jobs while studying.&lt;/p&gt;
&lt;p&gt;He learned from friends.&lt;/p&gt;
&lt;p&gt;He built small projects.&lt;/p&gt;
&lt;p&gt;He entered professional software development.&lt;/p&gt;
&lt;p&gt;Then his career expanded beyond development into customer support, content, SEO and product marketing.&lt;/p&gt;
&lt;p&gt;Today, he's working around AI and real-estate technology while continuing to develop his technical skills.&lt;/p&gt;
&lt;p&gt;The journey wasn't linear.&lt;/p&gt;
&lt;p&gt;But every stage contributed something.&lt;/p&gt;
&lt;p&gt;His father's example taught him persistence.&lt;/p&gt;
&lt;p&gt;Working while studying taught him resilience.&lt;/p&gt;
&lt;p&gt;Friends taught him collaboration.&lt;/p&gt;
&lt;p&gt;Development taught him how to build.&lt;/p&gt;
&lt;p&gt;Customer support taught him how users think.&lt;/p&gt;
&lt;p&gt;Content and SEO taught him how to communicate value.&lt;/p&gt;
&lt;p&gt;And AI is giving him new ways to connect technology with real-world problems.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-at-the-intersection&quot;&gt;Building at the Intersection&lt;/h3&gt;
&lt;p&gt;Waqas's story isn't simply about becoming a better programmer.&lt;/p&gt;
&lt;p&gt;It's about discovering that technology products live at the intersection of many disciplines.&lt;/p&gt;
&lt;p&gt;Code matters.&lt;/p&gt;
&lt;p&gt;But so does design.&lt;/p&gt;
&lt;p&gt;So does communication.&lt;/p&gt;
&lt;p&gt;So does marketing.&lt;/p&gt;
&lt;p&gt;So does customer understanding.&lt;/p&gt;
&lt;p&gt;And increasingly, so does AI.&lt;/p&gt;
&lt;p&gt;His journey has taken him across all of those areas.&lt;/p&gt;
&lt;p&gt;And that may ultimately become his biggest advantage.&lt;/p&gt;
&lt;p&gt;Because building a useful product isn't just about asking:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Can we build it?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's also about asking:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Should we build it?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Who needs it?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Will they understand it?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Will they actually use it?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Does it solve a real problem?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For Waqas Ahmad, those questions are becoming just as important as the code itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-waqas-ahmad&quot;&gt;About Waqas Ahmad&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Waqas Ahmad&lt;/strong&gt; is a Software Engineer and Content Creator working across software development, AI, digital marketing and real-estate technology.&lt;/p&gt;
&lt;p&gt;His technical background includes JavaScript, TypeScript, React.js, Next.js, Node.js, Express.js, MongoDB, MySQL, Firebase, REST APIs, Tailwind CSS, Bootstrap and Git/GitHub.&lt;/p&gt;
&lt;p&gt;He has worked on full-stack applications, developer platforms and AI-powered real-estate products, while also building experience in customer support, SEO, content marketing and product communication.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/WAQAS+AHMAD&quot;&gt;View Waqas's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.dotera.co&quot;&gt;Visit Waqas's website&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-1&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30296/from-software-development-to-ai-real-estate-tech-waqas-ahmads-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 12:57:44 +0000</pubDate>
</item>
<item>
<title>From 0 to 1: Muhammad Sameer’s Journey Building SMS AI</title>
<link>https://coderlegion.com/30293/from-0-to-1-muhammad-sameers-journey-building-sms-ai</link>
<description>&lt;h2 id=&quot;from-0-to-1-muhammad-sameer-s-journey-building-sms-ai&quot;&gt;From 0 to 1: Muhammad Sameer’s Journey Building SMS AI&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“0 to 1 is taking a totally blank canvas or a messy problem and turning it into a working URL.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Muhammad Sameer, software development isn't just about writing code.&lt;/p&gt;
&lt;p&gt;It's about taking something that doesn't exist and turning it into something real.&lt;/p&gt;
&lt;p&gt;A blank canvas.&lt;/p&gt;
&lt;p&gt;A messy problem.&lt;/p&gt;
&lt;p&gt;A late night of coding.&lt;/p&gt;
&lt;p&gt;And eventually, a URL that people can actually open and use.&lt;/p&gt;
&lt;p&gt;That philosophy has shaped his journey from learning to code in Pakistan to becoming an independent software engineer and building his own AI products.&lt;/p&gt;
&lt;p&gt;Today, his focus is &lt;strong&gt;SMS AI&lt;/strong&gt;—an AI workspace and engine designed to bring multiple AI-powered capabilities into one place while keeping the experience fast and practical.&lt;/p&gt;
&lt;p&gt;But getting there has involved much more than simply building another AI interface.&lt;/p&gt;
&lt;p&gt;It has meant learning to move independently, making difficult technical trade-offs, optimizing performance, listening to users and accepting that a real product only truly begins once people start using it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;choosing-independence&quot;&gt;Choosing Independence&lt;/h3&gt;
&lt;p&gt;Muhammad's journey into software development began in Pakistan.&lt;/p&gt;
&lt;p&gt;As he learned to code, he gradually became frustrated with the traditional corporate approach to software development.&lt;/p&gt;
&lt;p&gt;There was too much waiting for permission.&lt;/p&gt;
&lt;p&gt;Too many decisions that depended on someone else.&lt;/p&gt;
&lt;p&gt;Going independent changed that.&lt;/p&gt;
&lt;p&gt;It gave him the freedom to choose his own technology stack, move quickly and, perhaps most importantly, own his mistakes.&lt;/p&gt;
&lt;p&gt;That freedom came with responsibility.&lt;/p&gt;
&lt;p&gt;When you're working independently, there isn't always another person to blame when something doesn't work.&lt;/p&gt;
&lt;p&gt;If the product breaks, you fix it.&lt;/p&gt;
&lt;p&gt;If the technology choice was wrong, you rethink it.&lt;/p&gt;
&lt;p&gt;If users don't like something, you have to listen.&lt;/p&gt;
&lt;p&gt;For Muhammad, that trade-off is worth it.&lt;/p&gt;
&lt;p&gt;The ability to move from an idea to implementation without waiting for permission became one of the biggest motivations behind his independent journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-0-to-1-really-means&quot;&gt;What “0 to 1” Really Means&lt;/h3&gt;
&lt;p&gt;Muhammad's definition of building from 0 to 1 is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Take a blank canvas or a messy problem and turn it into a working URL.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But getting from zero to something real isn't always a clean process.&lt;/p&gt;
&lt;p&gt;It requires instinct.&lt;/p&gt;
&lt;p&gt;Experimentation.&lt;/p&gt;
&lt;p&gt;Rapid prototyping.&lt;/p&gt;
&lt;p&gt;And a willingness to make decisions without knowing whether they will ultimately be correct.&lt;/p&gt;
&lt;p&gt;For Muhammad, one of the most rewarding moments is seeing an idea become something that people are actually clicking on.&lt;/p&gt;
&lt;p&gt;That's the moment when an abstract idea becomes a real product.&lt;/p&gt;
&lt;p&gt;It's also what keeps him building.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-problem-behind-sms-ai&quot;&gt;The Problem Behind SMS AI&lt;/h3&gt;
&lt;p&gt;The idea for SMS AI came from a problem Muhammad experienced himself.&lt;/p&gt;
&lt;p&gt;As a developer, his browser had become overwhelmed with tabs.&lt;/p&gt;
&lt;p&gt;Tabs for coding.&lt;/p&gt;
&lt;p&gt;Tabs for searching.&lt;/p&gt;
&lt;p&gt;Tabs for reading PDFs.&lt;/p&gt;
&lt;p&gt;Tabs for generating images.&lt;/p&gt;
&lt;p&gt;Tabs for different AI tools.&lt;/p&gt;
&lt;p&gt;Each tool might be useful individually.&lt;/p&gt;
&lt;p&gt;But together, they created what Muhammad describes as &lt;strong&gt;“tab fatigue.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The problem wasn't necessarily that the tools were bad.&lt;/p&gt;
&lt;p&gt;It was that the workflow had become fragmented.&lt;/p&gt;
&lt;p&gt;Instead of moving between multiple services, Muhammad wanted a unified environment where those capabilities could live together.&lt;/p&gt;
&lt;p&gt;That became the idea behind &lt;strong&gt;SMS AI Workspace&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-a-unified-ai-workspace&quot;&gt;Building a Unified AI Workspace&lt;/h3&gt;
&lt;p&gt;The goal of SMS AI Workspace is to bring different AI-powered capabilities into one command center.&lt;/p&gt;
&lt;p&gt;Instead of constantly switching between tools, users can work from a single environment.&lt;/p&gt;
&lt;p&gt;The workspace acts as the visible frontend—the part users interact with.&lt;/p&gt;
&lt;p&gt;But behind that interface is another important component:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The SMS AI Engine.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Muhammad deliberately separates the two.&lt;/p&gt;
&lt;p&gt;The Workspace is the cockpit.&lt;/p&gt;
&lt;p&gt;The Engine is the infrastructure underneath it.&lt;/p&gt;
&lt;p&gt;That separation allows the visible product to remain focused on the user experience while the engine handles the more complex AI operations behind the scenes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-engine-behind-the-workspace&quot;&gt;The Engine Behind the Workspace&lt;/h3&gt;
&lt;p&gt;The SMS AI Engine acts as middleware for the system.&lt;/p&gt;
&lt;p&gt;It handles model routing and vector searches and decides what kind of model should handle a particular request.&lt;/p&gt;
&lt;p&gt;Not every task needs the most powerful reasoning model.&lt;/p&gt;
&lt;p&gt;Some requests can be handled by a faster and cheaper model.&lt;/p&gt;
&lt;p&gt;Others require a heavier reasoning engine.&lt;/p&gt;
&lt;p&gt;Automatically choosing between those options helps Muhammad manage one of the realities of building AI products:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI can get expensive quickly.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Model selection therefore isn't simply a question of which model is technically the best.&lt;/p&gt;
&lt;p&gt;It's also a question of cost, speed and what the user actually needs.&lt;/p&gt;
&lt;p&gt;The engine helps make those trade-offs behind the scenes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;chasing-sub-100ms-responsiveness&quot;&gt;Chasing Sub-100ms Responsiveness&lt;/h3&gt;
&lt;p&gt;Building an AI workspace wasn't only about getting the features working.&lt;/p&gt;
&lt;p&gt;Muhammad wanted the application to feel fast.&lt;/p&gt;
&lt;p&gt;That meant looking closely at everything happening between the user's action and what appeared on the screen.&lt;/p&gt;
&lt;p&gt;He worked aggressively to remove blocking code within the framework he was using on Lovable.dev.&lt;/p&gt;
&lt;p&gt;He introduced &lt;strong&gt;virtualized list rendering&lt;/strong&gt;, allowing the page to process only the text that is actually visible rather than everything in a large list.&lt;/p&gt;
&lt;p&gt;He also implemented &lt;strong&gt;token buffers&lt;/strong&gt; to reduce heavy screen re-renders.&lt;/p&gt;
&lt;p&gt;And he used &lt;strong&gt;optimistic UI updates&lt;/strong&gt;, allowing user messages to appear immediately while the server connection is still being established.&lt;/p&gt;
&lt;p&gt;The goal was straightforward:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Make the application feel instantaneous.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For Muhammad, speed isn't simply a technical metric.&lt;/p&gt;
&lt;p&gt;It's a product feature.&lt;/p&gt;
&lt;p&gt;If an application feels slow, users leave.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-reality-of-building-alone&quot;&gt;The Reality of Building Alone&lt;/h3&gt;
&lt;p&gt;Being an independent builder means making decisions constantly.&lt;/p&gt;
&lt;p&gt;There are always more things to fix than there is time to fix them.&lt;/p&gt;
&lt;p&gt;Muhammad describes the process as a brutal exercise in triage.&lt;/p&gt;
&lt;p&gt;He separates work into three broad categories:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Game-breaking bugs&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Features users are actively asking for&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visual polish&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That prioritization helps him avoid spending too much time making something look perfect while an important problem remains unresolved.&lt;/p&gt;
&lt;p&gt;It also reflects a broader lesson from building a real product:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not everything can be done at once.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A solo developer has to decide what matters most right now.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;speed-is-a-feature&quot;&gt;Speed Is a Feature&lt;/h3&gt;
&lt;p&gt;One of Muhammad's strongest product lessons is that speed itself can be a feature.&lt;/p&gt;
&lt;p&gt;Users don't necessarily care how complicated the underlying implementation is.&lt;/p&gt;
&lt;p&gt;They care about how the product feels.&lt;/p&gt;
&lt;p&gt;If an application responds quickly, it feels polished.&lt;/p&gt;
&lt;p&gt;If it constantly waits, users become frustrated.&lt;/p&gt;
&lt;p&gt;That makes performance part of the user experience rather than something that belongs exclusively to the engineering side.&lt;/p&gt;
&lt;p&gt;For SMS AI, that meant optimizing rendering, network interactions and the way information is displayed—not simply making the underlying functionality work.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-for-developers-means-listening-to-developers&quot;&gt;Building for Developers Means Listening to Developers&lt;/h3&gt;
&lt;p&gt;Muhammad believes developers don't necessarily want corporate-style marketing.&lt;/p&gt;
&lt;p&gt;They want tools that work.&lt;/p&gt;
&lt;p&gt;And they want creators who listen.&lt;/p&gt;
&lt;p&gt;That means being honest when something is broken.&lt;/p&gt;
&lt;p&gt;If a bug appears and the creator acknowledges it and fixes it quickly, users notice.&lt;/p&gt;
&lt;p&gt;That responsiveness builds trust.&lt;/p&gt;
&lt;p&gt;For Muhammad, the relationship between a product builder and the developer community isn't primarily about polished promotional messaging.&lt;/p&gt;
&lt;p&gt;It's about credibility.&lt;/p&gt;
&lt;p&gt;Build something useful.&lt;/p&gt;
&lt;p&gt;Listen to the people using it.&lt;/p&gt;
&lt;p&gt;Fix problems.&lt;/p&gt;
&lt;p&gt;Keep improving.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-difference-between-a-portfolio-project-and-a-real-product&quot;&gt;The Difference Between a Portfolio Project and a Real Product&lt;/h3&gt;
&lt;p&gt;One of Muhammad's strongest lessons is the difference between building something for a portfolio and building something that real people depend on.&lt;/p&gt;
&lt;p&gt;A portfolio project exists in a safe environment.&lt;/p&gt;
&lt;p&gt;You decide what it should do.&lt;/p&gt;
&lt;p&gt;You control the testing.&lt;/p&gt;
&lt;p&gt;You know how it works.&lt;/p&gt;
&lt;p&gt;A real product is different.&lt;/p&gt;
&lt;p&gt;Real users do things you never expected.&lt;/p&gt;
&lt;p&gt;They find bugs you didn't know existed.&lt;/p&gt;
&lt;p&gt;They ask for features you didn't plan.&lt;/p&gt;
&lt;p&gt;They use the product in ways you never imagined.&lt;/p&gt;
&lt;p&gt;That's why Muhammad encourages developers to &lt;strong&gt;ship before they feel completely ready&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The product doesn't truly begin evolving until real people start using it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;ship-before-you-re-ready&quot;&gt;Ship Before You're Ready&lt;/h3&gt;
&lt;p&gt;For builders, waiting until everything feels perfect can become a trap.&lt;/p&gt;
&lt;p&gt;There will always be another feature to add.&lt;/p&gt;
&lt;p&gt;Another design detail to improve.&lt;/p&gt;
&lt;p&gt;Another bug to investigate.&lt;/p&gt;
&lt;p&gt;Another part of the architecture that could be cleaner.&lt;/p&gt;
&lt;p&gt;Muhammad's advice is therefore direct:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ship your code way before you feel completely ready.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once the product is in front of real users, development becomes much more grounded.&lt;/p&gt;
&lt;p&gt;Instead of asking:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“What do I think users might want?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can observe:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“What are users actually doing?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That feedback becomes far more valuable than assumptions made in isolation.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;finding-problems-worth-solving&quot;&gt;Finding Problems Worth Solving&lt;/h3&gt;
&lt;p&gt;Muhammad's approach to building products starts with a problem that genuinely annoys him.&lt;/p&gt;
&lt;p&gt;The SMS AI Workspace emerged from his own frustration with having too many disconnected tools open in his browser.&lt;/p&gt;
&lt;p&gt;That personal connection matters.&lt;/p&gt;
&lt;p&gt;When the creator experiences the problem directly, there is already a reason to keep working when implementation becomes difficult.&lt;/p&gt;
&lt;p&gt;His advice to other builders reflects the same principle:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Find something that annoys you.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then build the simplest version that could make the problem better.&lt;/p&gt;
&lt;p&gt;Put it in front of people.&lt;/p&gt;
&lt;p&gt;Let reality determine what happens next.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-s-next-for-sms-ai-&quot;&gt;What's Next for SMS AI?&lt;/h3&gt;
&lt;p&gt;Muhammad's next focus is not simply adding more features.&lt;/p&gt;
&lt;p&gt;He's working on cleaning up layout clutter and improving the overall experience.&lt;/p&gt;
&lt;p&gt;He's also building something he calls the &lt;strong&gt;Memory Vault&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The idea is to allow the AI to remember a user's coding guidelines and project styles across sessions.&lt;/p&gt;
&lt;p&gt;Instead of repeatedly explaining the same technology stack, preferences and conventions, the user could establish those details once and have the system remember them.&lt;/p&gt;
&lt;p&gt;For developers working across multiple projects, that could make AI interactions much more consistent.&lt;/p&gt;
&lt;p&gt;The goal isn't simply to make the AI remember more.&lt;/p&gt;
&lt;p&gt;It's to make the workspace feel more personalized and useful over time.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-the-future-one-product-at-a-time&quot;&gt;Building the Future One Product at a Time&lt;/h3&gt;
&lt;p&gt;Muhammad's journey is ultimately a story about moving from learning to building.&lt;/p&gt;
&lt;p&gt;From waiting for permission to making his own decisions.&lt;/p&gt;
&lt;p&gt;From having an idea to turning it into a working URL.&lt;/p&gt;
&lt;p&gt;From building projects privately to putting products in front of real users.&lt;/p&gt;
&lt;p&gt;And from thinking about what a product should do to learning what it actually needs to become through user feedback.&lt;/p&gt;
&lt;p&gt;SMS AI is still evolving.&lt;/p&gt;
&lt;p&gt;So is Muhammad's journey.&lt;/p&gt;
&lt;p&gt;But his philosophy is already clear:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build quickly.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Listen carefully.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fix what breaks.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Keep moving from 0 to 1.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-muhammad-sameer&quot;&gt;About Muhammad Sameer&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Muhammad Sameer&lt;/strong&gt; is an independent software engineer and full-stack developer focused on rapid product development and next-generation AI platforms.&lt;/p&gt;
&lt;p&gt;He is the &lt;strong&gt;Founder of Deltacoders&lt;/strong&gt; and the creator of &lt;strong&gt;SMS AI&lt;/strong&gt;, including SMS AI Workspace and SMS AI Engine.&lt;/p&gt;
&lt;p&gt;His work focuses on AI products, web development, developer tools and taking products from idea to working implementation.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/m_sameer&quot;&gt;View Muhammad's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-2&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30293/from-0-to-1-muhammad-sameers-journey-building-sms-ai</guid>
<pubDate>Thu, 08 Oct 2026 12:46:36 +0000</pubDate>
</item>
<item>
<title>From Game Reverse Engineering to IoT Security — Kostas Ereksonas’s Developer Journey</title>
<link>https://coderlegion.com/30292/from-game-reverse-engineering-to-iot-security-kostas-ereksonass-developer-journey</link>
<description>&lt;h2 id=&quot;from-game-reverse-engineering-to-iot-security-kostas-ereksonas-s-developer-journey&quot;&gt;From Game Reverse Engineering to IoT Security — Kostas Ereksonas’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“Having a community of like-minded individuals also helps tremendously.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Kostas Ereksonas's journey into cybersecurity began long before he had a formal security role.&lt;/p&gt;
&lt;p&gt;It started with a computer.&lt;/p&gt;
&lt;p&gt;Then hardware.&lt;/p&gt;
&lt;p&gt;Then game modifications.&lt;/p&gt;
&lt;p&gt;Then reverse engineering.&lt;/p&gt;
&lt;p&gt;And eventually, a much bigger question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How secure are the connected devices that surround us every day?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Today, Kostas works across cybersecurity, network analysis, IoT security, machine learning and post-quantum cryptography.&lt;/p&gt;
&lt;p&gt;His work involves everything from analyzing Android applications and IP cameras to reverse engineering network protocols, studying encrypted traffic and thinking about how organizations will migrate to post-quantum cryptography.&lt;/p&gt;
&lt;p&gt;What connects all of these areas is curiosity.&lt;/p&gt;
&lt;p&gt;Rather than simply using technology, Kostas wants to understand what happens underneath it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-first-computer&quot;&gt;The First Computer&lt;/h3&gt;
&lt;p&gt;Kostas first became interested in computers while he was still in primary school.&lt;/p&gt;
&lt;p&gt;It was around the time his parents got their first desktop computer.&lt;/p&gt;
&lt;p&gt;He immediately became interested in what was happening inside it.&lt;/p&gt;
&lt;p&gt;Hardware.&lt;/p&gt;
&lt;p&gt;Low-level BIOS settings.&lt;/p&gt;
&lt;p&gt;The things most people never needed to touch.&lt;/p&gt;
&lt;p&gt;That curiosity soon expanded into something more experimental.&lt;/p&gt;
&lt;p&gt;Games became an opportunity to investigate how software worked.&lt;/p&gt;
&lt;p&gt;Kostas started modifying games and experimenting with tools such as Cheat Engine.&lt;/p&gt;
&lt;p&gt;He wasn't satisfied with simply playing.&lt;/p&gt;
&lt;p&gt;He wanted to understand how the game mechanics worked and whether they could be changed.&lt;/p&gt;
&lt;p&gt;That naturally led him toward reverse engineering binaries.&lt;/p&gt;
&lt;p&gt;At the same time, he began learning the fundamentals of JavaScript and C++ during middle school.&lt;/p&gt;
&lt;p&gt;Those experiences eventually convinced him that Information Technology was the direction he wanted to pursue.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-game-modification-to-cybersecurity&quot;&gt;From Game Modification to Cybersecurity&lt;/h3&gt;
&lt;p&gt;Kostas's formal transition into cybersecurity happened while working on his Bachelor's thesis.&lt;/p&gt;
&lt;p&gt;The subject was an internet-connected surveillance camera.&lt;/p&gt;
&lt;p&gt;The project exposed him to something that changed the way he thought about connected devices.&lt;/p&gt;
&lt;p&gt;The camera's security was patchy and outdated.&lt;/p&gt;
&lt;p&gt;Instead of simply treating those limitations as part of the project, Kostas became interested in understanding them more deeply.&lt;/p&gt;
&lt;p&gt;That investigation pulled him into the world of IoT security.&lt;/p&gt;
&lt;p&gt;Along the way, his interests also expanded into data science and statistical analysis of network traffic.&lt;/p&gt;
&lt;p&gt;This combination would later become important to his work in network intrusion detection.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-iot-security-matters&quot;&gt;Why IoT Security Matters&lt;/h3&gt;
&lt;p&gt;IoT devices create a particularly interesting security problem.&lt;/p&gt;
&lt;p&gt;They are everywhere.&lt;/p&gt;
&lt;p&gt;They often have constrained computing resources.&lt;/p&gt;
&lt;p&gt;They can remain deployed for years.&lt;/p&gt;
&lt;p&gt;And many users understandably assume that a device is safe simply because it is connected behind a router.&lt;/p&gt;
&lt;p&gt;Kostas strongly disagrees with that assumption.&lt;/p&gt;
&lt;p&gt;An end-of-life IoT device with known vulnerabilities can become a serious security risk if it remains connected to a network containing business-critical or sensitive systems.&lt;/p&gt;
&lt;p&gt;Some devices may also contain weak security practices such as hardcoded credentials, weak encryption or undocumented functionality.&lt;/p&gt;
&lt;p&gt;The problem isn't necessarily that every IoT device is inherently dangerous.&lt;/p&gt;
&lt;p&gt;The problem is that these devices often become part of an organization's attack surface without receiving the same level of security attention as traditional computers and servers.&lt;/p&gt;
&lt;p&gt;For Kostas, raising awareness of those risks is an important part of IoT security.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;looking-beyond-the-interface&quot;&gt;Looking Beyond the Interface&lt;/h3&gt;
&lt;p&gt;When Kostas investigates an application or connected device, he doesn't start by assuming the interface tells the whole story.&lt;/p&gt;
&lt;p&gt;He starts by observing.&lt;/p&gt;
&lt;p&gt;For an Android application, that might mean clicking through the application and watching what data moves between components.&lt;/p&gt;
&lt;p&gt;For an IP camera or IoT control panel, it might mean observing the communication between the device and its surrounding infrastructure.&lt;/p&gt;
&lt;p&gt;The goal is to identify patterns.&lt;/p&gt;
&lt;p&gt;Once those patterns become visible, he can begin working out how the underlying system behaves.&lt;/p&gt;
&lt;p&gt;Sometimes the technology turns out to be based on a familiar standard.&lt;/p&gt;
&lt;p&gt;For example, while analyzing an Android application, Kostas encountered a standard AES-CBC implementation used for locally stored data.&lt;/p&gt;
&lt;p&gt;The cryptographic algorithm itself wasn't unusual.&lt;/p&gt;
&lt;p&gt;The problem was how it had been implemented and configured.&lt;/p&gt;
&lt;p&gt;Hardcoded keys and passwords don't suddenly become secure simply because a standard encryption algorithm is being used.&lt;/p&gt;
&lt;p&gt;The same principle applies to network protocols.&lt;/p&gt;
&lt;p&gt;When a protocol operates over TCP/IP, tools such as Wireshark can reconstruct the network byte stream.&lt;/p&gt;
&lt;p&gt;The researcher's job then becomes understanding how those bytes correspond to the application's protocol.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-investigation-that-required-everything-he-had-learned&quot;&gt;The Investigation That Required Everything He Had Learned&lt;/h3&gt;
&lt;p&gt;One of Kostas's most challenging investigations involved a Perenio Peifc01 IP camera.&lt;/p&gt;
&lt;p&gt;The difficulty wasn't necessarily that the device used an impossibly complicated technology.&lt;/p&gt;
&lt;p&gt;It was that there wasn't much existing research available about that particular model.&lt;/p&gt;
&lt;p&gt;Compared with more widely investigated IP cameras, there were fewer write-ups and fewer resources to build upon.&lt;/p&gt;
&lt;p&gt;That meant Kostas had to rely heavily on experience gained from previous investigations.&lt;/p&gt;
&lt;p&gt;He applied what he had already learned from analyzing IP cameras and their Android applications.&lt;/p&gt;
&lt;p&gt;That experience helped him identify how locally stored data was protected and analyze the audio and video stream transmitted through RTP over UDP.&lt;/p&gt;
&lt;p&gt;Wireshark became an important part of understanding what was happening on the network.&lt;/p&gt;
&lt;p&gt;The investigation reinforced an important lesson:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Previous investigations become tools for future investigations.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Every device teaches you something that can become useful when the next unfamiliar system appears.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-dangerous-it-s-behind-a-router-assumption&quot;&gt;The Dangerous “It's Behind a Router” Assumption&lt;/h3&gt;
&lt;p&gt;One of the security assumptions Kostas considers particularly dangerous is:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“It's behind a router, so it must be safe.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A router is not a security guarantee.&lt;/p&gt;
&lt;p&gt;An IoT device can communicate with external cloud services.&lt;/p&gt;
&lt;p&gt;It can contain vulnerabilities.&lt;/p&gt;
&lt;p&gt;It can become compromised.&lt;/p&gt;
&lt;p&gt;And once an attacker controls one device inside a network, that device may become a stepping stone toward other systems.&lt;/p&gt;
&lt;p&gt;Cloud communication introduces additional considerations as well.&lt;/p&gt;
&lt;p&gt;A compromised or poorly secured device may communicate with its vendor's infrastructure in ways that create additional attack opportunities.&lt;/p&gt;
&lt;p&gt;For Kostas, network isolation and understanding what devices are actually communicating with are therefore critical parts of securing IoT environments.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;detecting-attacks-when-traffic-is-encrypted&quot;&gt;Detecting Attacks When Traffic Is Encrypted&lt;/h3&gt;
&lt;p&gt;Modern network security faces another major challenge:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Much of today's network traffic is encrypted.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Traditional payload inspection becomes more difficult when security systems cannot simply inspect the contents of every packet.&lt;/p&gt;
&lt;p&gt;That makes statistical analysis increasingly useful.&lt;/p&gt;
&lt;p&gt;Instead of asking only:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“What does this packet contain?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;security systems can ask:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Does this traffic behave normally?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For example, a system might examine characteristics such as packet counts or connection behaviour within a particular time window.&lt;/p&gt;
&lt;p&gt;An unusual pattern can then become a signal worth investigating.&lt;/p&gt;
&lt;p&gt;This approach doesn't replace traditional security analysis.&lt;/p&gt;
&lt;p&gt;Instead, it adds another layer.&lt;/p&gt;
&lt;p&gt;The system learns what normal behaviour looks like and searches for deviations.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;where-machine-learning-can-help&quot;&gt;Where Machine Learning Can Help&lt;/h3&gt;
&lt;p&gt;Kostas sees several promising applications for machine learning in cybersecurity.&lt;/p&gt;
&lt;h4 id=&quot;network-and-endpoint-anomaly-detection&quot;&gt;Network and Endpoint Anomaly Detection&lt;/h4&gt;
&lt;p&gt;Machine learning can model relationships between many network traffic characteristics and identify deviations from normal behaviour.&lt;/p&gt;
&lt;p&gt;This can be particularly useful when the data contains many interacting variables that would be difficult to monitor manually.&lt;/p&gt;
&lt;h4 id=&quot;detecting-previously-unknown-attacks&quot;&gt;Detecting Previously Unknown Attacks&lt;/h4&gt;
&lt;p&gt;Machine learning can also help identify patterns that haven't previously been classified.&lt;/p&gt;
&lt;p&gt;That could potentially help researchers investigate previously unseen attacks.&lt;/p&gt;
&lt;p&gt;But Kostas emphasizes an important limitation.&lt;/p&gt;
&lt;p&gt;An unusual pattern isn't automatically malicious.&lt;/p&gt;
&lt;p&gt;It could simply be a legitimate action that the system hasn't encountered before.&lt;/p&gt;
&lt;p&gt;Human review remains important.&lt;/p&gt;
&lt;h4 id=&quot;malware-and-behavioural-analysis&quot;&gt;Malware and Behavioural Analysis&lt;/h4&gt;
&lt;p&gt;Models can also be used to analyze characteristics such as binaries, system calls, API behaviour, memory characteristics and process trees.&lt;/p&gt;
&lt;h4 id=&quot;phishing-and-social-engineering&quot;&gt;Phishing and Social Engineering&lt;/h4&gt;
&lt;p&gt;NLP and LLM-based systems can analyze emails, URLs, domains and contextual signals to identify potentially malicious communication.&lt;/p&gt;
&lt;h4 id=&quot;alert-prioritization&quot;&gt;Alert Prioritization&lt;/h4&gt;
&lt;p&gt;Security operations teams can receive enormous numbers of alerts.&lt;/p&gt;
&lt;p&gt;Machine learning can help prioritize those alerts.&lt;/p&gt;
&lt;p&gt;But the challenge remains balancing detection with false positives.&lt;/p&gt;
&lt;p&gt;A system that flags everything isn't useful.&lt;/p&gt;
&lt;p&gt;A system that misses important attacks isn't useful either.&lt;/p&gt;
&lt;p&gt;The quality of the underlying data therefore becomes critical.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;research-and-engineering&quot;&gt;Research and Engineering&lt;/h3&gt;
&lt;p&gt;Kostas describes one of his biggest lessons from combining research and engineering in a simple way:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Be methodical and persistent.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Security research can involve long periods where the answer isn't obvious.&lt;/p&gt;
&lt;p&gt;A device may not behave as expected.&lt;/p&gt;
&lt;p&gt;A protocol may not be documented.&lt;/p&gt;
&lt;p&gt;Existing research may not exist.&lt;/p&gt;
&lt;p&gt;A model may produce an unexpected result.&lt;/p&gt;
&lt;p&gt;The temptation is to jump from one idea to another.&lt;/p&gt;
&lt;p&gt;Instead, Kostas's approach is to keep investigating systematically.&lt;/p&gt;
&lt;p&gt;Observation.&lt;/p&gt;
&lt;p&gt;Experimentation.&lt;/p&gt;
&lt;p&gt;Analysis.&lt;/p&gt;
&lt;p&gt;Iteration.&lt;/p&gt;
&lt;p&gt;Then repeat.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;preparing-for-the-post-quantum-era&quot;&gt;Preparing for the Post-Quantum Era&lt;/h3&gt;
&lt;p&gt;Another major area of Kostas's work is post-quantum cryptography.&lt;/p&gt;
&lt;p&gt;He was given an opportunity to work on a project involving Quantum Key Distribution, which introduced another dimension to his security research.&lt;/p&gt;
&lt;p&gt;But the larger issue is broader than quantum networking.&lt;/p&gt;
&lt;p&gt;Organizations need to start thinking about post-quantum migration now.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;Because cryptographic migration takes time.&lt;/p&gt;
&lt;p&gt;Some information being protected today may need to remain confidential for decades.&lt;/p&gt;
&lt;p&gt;An attacker could potentially capture encrypted information today and store it.&lt;/p&gt;
&lt;p&gt;If sufficiently powerful quantum computers become available in the future, some current public-key cryptographic systems could become vulnerable.&lt;/p&gt;
&lt;p&gt;That creates a particularly important problem for long-lived sensitive information.&lt;/p&gt;
&lt;p&gt;Intellectual property.&lt;/p&gt;
&lt;p&gt;Financial records.&lt;/p&gt;
&lt;p&gt;Government information.&lt;/p&gt;
&lt;p&gt;Personal data.&lt;/p&gt;
&lt;p&gt;The challenge isn't simply replacing one cryptographic algorithm with another.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-real-problem-is-finding-the-cryptography&quot;&gt;The Real Problem Is Finding the Cryptography&lt;/h3&gt;
&lt;p&gt;One of the hardest parts of post-quantum migration may actually happen before any algorithm is replaced.&lt;/p&gt;
&lt;p&gt;Organizations first need to know:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where is cryptography being used?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It isn't always obvious.&lt;/p&gt;
&lt;p&gt;Cryptographic dependencies can exist inside:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Libraries&lt;/li&gt;
&lt;li&gt;Network protocols&lt;/li&gt;
&lt;li&gt;Firmware&lt;/li&gt;
&lt;li&gt;Hardware security modules&lt;/li&gt;
&lt;li&gt;Third-party SaaS platforms&lt;/li&gt;
&lt;li&gt;Legacy applications&lt;/li&gt;
&lt;li&gt;Proprietary communication protocols&lt;/li&gt;
&lt;li&gt;Operating systems&lt;/li&gt;
&lt;li&gt;Infrastructure services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An organization may know it uses TLS and certificates without knowing every underlying place where RSA, ECC or Diffie-Hellman dependencies exist.&lt;/p&gt;
&lt;p&gt;IoT creates an additional complication.&lt;/p&gt;
&lt;p&gt;A camera, industrial controller or network appliance may have limited CPU, RAM or flash storage.&lt;/p&gt;
&lt;p&gt;It may also have a deployment lifetime of ten or fifteen years.&lt;/p&gt;
&lt;p&gt;Replacing the hardware simply because its cryptography is no longer suitable isn't always practical.&lt;/p&gt;
&lt;p&gt;And even if an organization is ready to migrate its own software, its vendors and infrastructure providers may not be ready.&lt;/p&gt;
&lt;p&gt;That makes &lt;strong&gt;cryptographic inventory and crypto agility&lt;/strong&gt; increasingly important.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;security-must-work-outside-the-laboratory&quot;&gt;Security Must Work Outside the Laboratory&lt;/h3&gt;
&lt;p&gt;For Kostas, one of the biggest challenges in emerging security technologies is proving that something works in the real world.&lt;/p&gt;
&lt;p&gt;A technology can perform extremely well in a controlled benchmark.&lt;/p&gt;
&lt;p&gt;Production environments are different.&lt;/p&gt;
&lt;p&gt;Real networks contain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Legacy systems&lt;/li&gt;
&lt;li&gt;Proprietary devices&lt;/li&gt;
&lt;li&gt;Encrypted protocols&lt;/li&gt;
&lt;li&gt;Unusual traffic&lt;/li&gt;
&lt;li&gt;Previously unseen behaviours&lt;/li&gt;
&lt;li&gt;Unexpected interactions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A solution that works perfectly under controlled conditions may behave very differently when exposed to that complexity.&lt;/p&gt;
&lt;p&gt;That's why practical evaluation matters.&lt;/p&gt;
&lt;p&gt;Security research shouldn't stop at the benchmark.&lt;/p&gt;
&lt;p&gt;It needs to be tested against environments that are messy, changing and unpredictable.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;one-toolkit-many-problems&quot;&gt;One Toolkit, Many Problems&lt;/h3&gt;
&lt;p&gt;Kostas doesn't believe there is one universal security tool.&lt;/p&gt;
&lt;p&gt;The tools he uses depend on the problem.&lt;/p&gt;
&lt;p&gt;An Android application investigation requires a different workflow from network protocol analysis.&lt;/p&gt;
&lt;p&gt;A QKD simulation requires something different again.&lt;/p&gt;
&lt;p&gt;A post-quantum cryptography inventory script has its own requirements.&lt;/p&gt;
&lt;p&gt;His toolkit includes technologies such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wireshark&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Frida&lt;/li&gt;
&lt;li&gt;Burp Suite&lt;/li&gt;
&lt;li&gt;Lua&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The important part isn't memorizing a list of tools.&lt;/p&gt;
&lt;p&gt;It's knowing which tool is appropriate for the problem in front of you.&lt;/p&gt;
&lt;p&gt;And being comfortable reaching for something new when an unexpected problem appears.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;curiosity-is-part-of-the-job&quot;&gt;Curiosity Is Part of the Job&lt;/h3&gt;
&lt;p&gt;Cybersecurity changes constantly.&lt;/p&gt;
&lt;p&gt;New vulnerabilities appear.&lt;/p&gt;
&lt;p&gt;New protocols emerge.&lt;/p&gt;
&lt;p&gt;New attacks are developed.&lt;/p&gt;
&lt;p&gt;New defensive technologies are introduced.&lt;/p&gt;
&lt;p&gt;For Kostas, staying current requires more than reading about those changes.&lt;/p&gt;
&lt;p&gt;Curiosity matters.&lt;/p&gt;
&lt;p&gt;Hands-on experimentation matters.&lt;/p&gt;
&lt;p&gt;Open-source research matters.&lt;/p&gt;
&lt;p&gt;Platforms such as TryHackMe can also provide useful environments for learning and experimentation.&lt;/p&gt;
&lt;p&gt;The important thing is to keep finding interesting problems to solve.&lt;/p&gt;
&lt;p&gt;A new challenge can become a reason to learn an unfamiliar technology.&lt;/p&gt;
&lt;p&gt;And that learning can later become useful when facing a completely different security problem.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-moment-iot-changed-his-perspective&quot;&gt;The Moment IoT Changed His Perspective&lt;/h3&gt;
&lt;p&gt;Learning how insecure IoT devices can be had a direct impact on how Kostas approaches security in his own life.&lt;/p&gt;
&lt;p&gt;It changed how he thinks about his home network.&lt;/p&gt;
&lt;p&gt;It also made him more diligent when securing enterprise environments.&lt;/p&gt;
&lt;p&gt;The lesson was simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security assumptions are dangerous when they aren't tested.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A device might appear harmless.&lt;/p&gt;
&lt;p&gt;A network might appear isolated.&lt;/p&gt;
&lt;p&gt;A protocol might appear secure.&lt;/p&gt;
&lt;p&gt;But understanding what is actually happening is more important than trusting appearances.&lt;/p&gt;
&lt;p&gt;That principle has become part of how Kostas approaches security research.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;where-cybersecurity-is-heading&quot;&gt;Where Cybersecurity Is Heading&lt;/h3&gt;
&lt;p&gt;Looking five years ahead, Kostas sees several areas increasingly converging:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IoT security.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Post-quantum cryptography.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rather than remaining separate disciplines, he expects them to become parts of the same security engineering problem.&lt;/p&gt;
&lt;p&gt;One particularly interesting possibility is IoT systems that can continuously detect unusual behaviour, authenticate themselves, adapt to changing conditions and eventually migrate their cryptography without requiring hardware replacement.&lt;/p&gt;
&lt;p&gt;AI could help deal with the enormous diversity of IoT devices.&lt;/p&gt;
&lt;p&gt;A small specialized model running close to an IoT gateway could learn the normal communication pattern of a camera, for example.&lt;/p&gt;
&lt;p&gt;If that camera suddenly begins communicating with an unfamiliar service, the system could flag the behaviour without needing to inspect the encrypted payload.&lt;/p&gt;
&lt;p&gt;This kind of edge intelligence could become increasingly important.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;post-quantum-iot&quot;&gt;Post-Quantum IoT&lt;/h3&gt;
&lt;p&gt;The combination of IoT and post-quantum cryptography presents another enormous engineering challenge.&lt;/p&gt;
&lt;p&gt;Millions of cameras, sensors, routers and industrial devices may have long deployment lifetimes and limited resources.&lt;/p&gt;
&lt;p&gt;Updating their cryptographic foundations isn't simply a software upgrade.&lt;/p&gt;
&lt;p&gt;It can involve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Device identity&lt;/li&gt;
&lt;li&gt;Secure boot&lt;/li&gt;
&lt;li&gt;Firmware updates&lt;/li&gt;
&lt;li&gt;Machine-to-machine authentication&lt;/li&gt;
&lt;li&gt;Hardware limitations&lt;/li&gt;
&lt;li&gt;Compatibility&lt;/li&gt;
&lt;li&gt;Cryptographic agility&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The challenge is making future security possible without requiring organizations to replace every device in the environment.&lt;/p&gt;
&lt;p&gt;For Kostas, that is one of the areas worth watching closely.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;advice-for-aspiring-security-researchers&quot;&gt;Advice for Aspiring Security Researchers&lt;/h3&gt;
&lt;p&gt;Kostas's first piece of advice is surprisingly simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Have fun.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Enjoy the process of figuring things out.&lt;/p&gt;
&lt;p&gt;Curiosity is one of the most useful qualities a security researcher can have.&lt;/p&gt;
&lt;p&gt;He also believes community matters.&lt;/p&gt;
&lt;p&gt;Having people around you who are interested in similar problems can make a huge difference.&lt;/p&gt;
&lt;p&gt;For anyone looking to build a strong technical foundation, Kostas recommends developing knowledge in several areas.&lt;/p&gt;
&lt;h4 id=&quot;linux-internals&quot;&gt;Linux Internals&lt;/h4&gt;
&lt;p&gt;Understand processes, filesystems, permissions, sockets, &lt;code&gt;/proc&lt;/code&gt; and system calls.&lt;/p&gt;
&lt;h4 id=&quot;networking&quot;&gt;Networking&lt;/h4&gt;
&lt;p&gt;Learn TCP/IP, DNS, TLS, HTTP, MQTT, RTSP/RTP, UDP and routing.&lt;/p&gt;
&lt;h4 id=&quot;c-c-and-python&quot;&gt;C/C++ and Python&lt;/h4&gt;
&lt;p&gt;C and C++ provide valuable insight into vulnerable systems and binaries.&lt;/p&gt;
&lt;p&gt;Python is extremely useful for tooling and automation.&lt;/p&gt;
&lt;h4 id=&quot;assembly&quot;&gt;Assembly&lt;/h4&gt;
&lt;p&gt;Develop basic familiarity with x86-64 and ARM.&lt;/p&gt;
&lt;h4 id=&quot;operating-systems&quot;&gt;Operating Systems&lt;/h4&gt;
&lt;p&gt;Understand memory management, processes, threads and inter-process communication.&lt;/p&gt;
&lt;h4 id=&quot;cryptography&quot;&gt;Cryptography&lt;/h4&gt;
&lt;p&gt;Learn the fundamentals:&lt;/p&gt;
&lt;p&gt;Hashing.&lt;/p&gt;
&lt;p&gt;MACs.&lt;/p&gt;
&lt;p&gt;Encryption.&lt;/p&gt;
&lt;p&gt;Key exchange.&lt;/p&gt;
&lt;p&gt;Certificates.&lt;/p&gt;
&lt;p&gt;PKI.&lt;/p&gt;
&lt;p&gt;These foundations make it much easier to understand what is happening when investigating a real system.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;start-with-a-real-device&quot;&gt;Start With a Real Device&lt;/h3&gt;
&lt;p&gt;Kostas also recommends a practical starting point for aspiring IoT security researchers:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Buy an inexpensive IoT device and investigate it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An IP camera.&lt;/p&gt;
&lt;p&gt;A smart plug.&lt;/p&gt;
&lt;p&gt;An IoT hub.&lt;/p&gt;
&lt;p&gt;The objective isn't simply to find a vulnerability.&lt;/p&gt;
&lt;p&gt;It's to learn how a real connected system works.&lt;/p&gt;
&lt;p&gt;Study the device.&lt;/p&gt;
&lt;p&gt;Understand its network behaviour.&lt;/p&gt;
&lt;p&gt;Look at its web interface if it has one.&lt;/p&gt;
&lt;p&gt;Capture and analyze its traffic.&lt;/p&gt;
&lt;p&gt;Understand the protocols involved.&lt;/p&gt;
&lt;p&gt;If it has a companion mobile application, study how the application communicates with the device.&lt;/p&gt;
&lt;p&gt;The process can teach far more than simply reading about IoT security.&lt;/p&gt;
&lt;p&gt;It turns abstract concepts into something tangible.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-curiosity-to-security-research&quot;&gt;From Curiosity to Security Research&lt;/h3&gt;
&lt;p&gt;Kostas's journey began with curiosity about a computer his parents brought home.&lt;/p&gt;
&lt;p&gt;That curiosity led to hardware experimentation.&lt;/p&gt;
&lt;p&gt;Then game modifications.&lt;/p&gt;
&lt;p&gt;Then reverse engineering.&lt;/p&gt;
&lt;p&gt;Then university.&lt;/p&gt;
&lt;p&gt;Then cybersecurity.&lt;/p&gt;
&lt;p&gt;And eventually into some of the most interesting security problems emerging today.&lt;/p&gt;
&lt;p&gt;IoT security.&lt;/p&gt;
&lt;p&gt;Network intrusion detection.&lt;/p&gt;
&lt;p&gt;Machine learning.&lt;/p&gt;
&lt;p&gt;Quantum security.&lt;/p&gt;
&lt;p&gt;Post-quantum cryptography.&lt;/p&gt;
&lt;p&gt;What connects these subjects is not a particular programming language or tool.&lt;/p&gt;
&lt;p&gt;It's a way of thinking.&lt;/p&gt;
&lt;p&gt;Observe the system.&lt;/p&gt;
&lt;p&gt;Understand its behaviour.&lt;/p&gt;
&lt;p&gt;Question assumptions.&lt;/p&gt;
&lt;p&gt;Experiment.&lt;/p&gt;
&lt;p&gt;And keep investigating until the pieces make sense.&lt;/p&gt;
&lt;p&gt;For Kostas, cybersecurity isn't simply about breaking systems.&lt;/p&gt;
&lt;p&gt;It's about understanding them well enough to make them harder to break.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-kostas-ereksonas&quot;&gt;About Kostas Ereksonas&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Kostas Ereksonas&lt;/strong&gt; is a Security Engineer and cybersecurity researcher specializing in computer networks and IoT security.&lt;/p&gt;
&lt;p&gt;His interests include network intrusion detection, reverse engineering, Android application security, IoT security, machine learning for cybersecurity, quantum security and post-quantum cryptography.&lt;/p&gt;
&lt;p&gt;He holds Bachelor's and Master's degrees in Information Technology Engineering from Klaipeda University.&lt;/p&gt;
&lt;p&gt;His work includes security analysis of IP cameras and Android applications, network protocol reverse engineering, QKD research and post-quantum cryptography inventory work.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Kostas+Ereksonas&quot;&gt;View Kostas's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-3&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30292/from-game-reverse-engineering-to-iot-security-kostas-ereksonass-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 12:40:36 +0000</pubDate>
</item>
<item>
<title>Beyond the IFrontend Developer &amp; Automation Buildernterface — Tarek Elzoghby’s Developer Journey</title>
<link>https://coderlegion.com/30286/beyond-ifrontend-developer-automation-buildernterface-tarek-elzoghbys-developer-journey</link>
<description>&lt;h2 id=&quot;beyond-the-interface-tarek-elzoghby-s-developer-journey&quot;&gt;Beyond the Interface — Tarek Elzoghby’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“I don't stop at the interface — I build the UI and the automation/logic that makes it actually work, as one piece, not two separate jobs.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Tarek Elzoghby, becoming a developer started with a practical goal: frontend development looked like the fastest path into freelancing.&lt;/p&gt;
&lt;p&gt;But once he started building, something changed.&lt;/p&gt;
&lt;p&gt;He became fascinated by the process of watching something grow from nothing into a finished thing he could actually see and use.&lt;/p&gt;
&lt;p&gt;That kept him learning.&lt;/p&gt;
&lt;p&gt;Today, Tarek describes himself as a self-taught frontend developer who doesn't want to stop at the interface. Alongside HTML, CSS and JavaScript, he's learning n8n, Python and Git, while developing a particular interest in accessibility and automation.&lt;/p&gt;
&lt;p&gt;His approach is becoming increasingly clear:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build the interface. Build the logic behind it. Make the two work together.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;starting-with-frontend&quot;&gt;Starting With Frontend&lt;/h3&gt;
&lt;p&gt;Tarek's entry into development was practical.&lt;/p&gt;
&lt;p&gt;Frontend looked like the fastest path into freelancing.&lt;/p&gt;
&lt;p&gt;But once he started building, he discovered that he genuinely enjoyed the process.&lt;/p&gt;
&lt;p&gt;There was something satisfying about watching an idea turn into something visible and functional.&lt;/p&gt;
&lt;p&gt;That was enough to keep him going.&lt;/p&gt;
&lt;p&gt;Tarek is self-taught, and his learning style is deliberately incremental.&lt;/p&gt;
&lt;p&gt;He learns one skill at a time and tries not to move forward until he understands it.&lt;/p&gt;
&lt;p&gt;His projects have included a practice website for a fictional ceramics studio, an interactive portfolio and an AI-powered lead classifier.&lt;/p&gt;
&lt;p&gt;Alongside frontend development, he's been learning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;n8n&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He also keeps a build log for every project.&lt;/p&gt;
&lt;p&gt;He writes down what he did, what broke and what he learned.&lt;/p&gt;
&lt;p&gt;For Tarek, those notes aren't just documentation.&lt;/p&gt;
&lt;p&gt;They're part of the learning process.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;beyond-the-interface&quot;&gt;Beyond the Interface&lt;/h3&gt;
&lt;p&gt;The idea that increasingly defines Tarek's work emerged from two projects he built one after another.&lt;/p&gt;
&lt;p&gt;The first was his interactive portfolio.&lt;/p&gt;
&lt;p&gt;The second was an AI-powered intake classifier built with n8n.&lt;/p&gt;
&lt;p&gt;One was primarily frontend.&lt;/p&gt;
&lt;p&gt;The other was automation and logic.&lt;/p&gt;
&lt;p&gt;Working on them back to back made something click.&lt;/p&gt;
&lt;p&gt;They felt like they belonged together.&lt;/p&gt;
&lt;p&gt;A website becomes much more useful when something behind the interface can actually handle what visitors do.&lt;/p&gt;
&lt;p&gt;A contact form, for example, doesn't have to simply send a message.&lt;/p&gt;
&lt;p&gt;Behind it, automation could classify the request, route it to the right person, send an appropriate response and log the information.&lt;/p&gt;
&lt;p&gt;Tarek originally planned to connect his portfolio and classifier.&lt;/p&gt;
&lt;p&gt;But his plans changed.&lt;/p&gt;
&lt;p&gt;Instead, he decided to build his own website from scratch and use it as the place where he could properly bring the two ideas together.&lt;/p&gt;
&lt;p&gt;The goal isn't just to talk about combining frontend and automation.&lt;/p&gt;
&lt;p&gt;It's to build them as one piece.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-his-interactive-portfolio&quot;&gt;Building His Interactive Portfolio&lt;/h3&gt;
&lt;p&gt;Tarek describes his interactive portfolio honestly:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The whole project was hard.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Most of the time, he knew what he wanted something to look like or how he wanted it to behave.&lt;/p&gt;
&lt;p&gt;The difficult part was figuring out how to actually build it.&lt;/p&gt;
&lt;p&gt;But one challenge stood out for a different reason.&lt;/p&gt;
&lt;p&gt;Writing about himself.&lt;/p&gt;
&lt;p&gt;For Tarek, deciding what other people should know about him wasn't easy.&lt;/p&gt;
&lt;p&gt;He chose to write the content before touching the HTML.&lt;/p&gt;
&lt;p&gt;That decision helped him separate what he wanted to say from how he wanted the website to look.&lt;/p&gt;
&lt;p&gt;The result was deliberately straightforward.&lt;/p&gt;
&lt;p&gt;He described himself honestly as self-taught and learning one skill at a time.&lt;/p&gt;
&lt;p&gt;That approach reflects something that appears repeatedly throughout his development journey:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;He prefers understanding and building over pretending he already knows everything.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-bug-that-changed-how-he-tests&quot;&gt;The Bug That Changed How He Tests&lt;/h3&gt;
&lt;p&gt;One of the most useful lessons from his portfolio came from a bug he discovered after he thought the project was finished.&lt;/p&gt;
&lt;p&gt;He was testing the form's error messages.&lt;/p&gt;
&lt;p&gt;At one point, instead of clicking the submit button, he pressed &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The validation didn't run.&lt;/p&gt;
&lt;p&gt;He tried again using the mouse.&lt;/p&gt;
&lt;p&gt;Everything worked.&lt;/p&gt;
&lt;p&gt;That told him the problem wasn't the validation itself.&lt;/p&gt;
&lt;p&gt;It was how the form was being submitted.&lt;/p&gt;
&lt;p&gt;After investigating, he discovered that his handler had been attached to the button's &lt;code&gt;click&lt;/code&gt; event rather than the form's &lt;code&gt;submit&lt;/code&gt; event.&lt;/p&gt;
&lt;p&gt;The difference mattered.&lt;/p&gt;
&lt;p&gt;A form's submit event can occur whether the user clicks the button or presses Enter inside a field.&lt;/p&gt;
&lt;p&gt;The fix took only one line.&lt;/p&gt;
&lt;p&gt;But the lesson was much bigger.&lt;/p&gt;
&lt;p&gt;“Finished and tested” had really meant:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I tested the ways I thought of.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From then on, Tarek started deliberately testing keyboard interactions and other less obvious paths before considering something complete.&lt;/p&gt;
&lt;p&gt;It was a small bug.&lt;/p&gt;
&lt;p&gt;But it changed the way he thinks about testing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-automation-with-n8n-and-ai&quot;&gt;Learning Automation With n8n and AI&lt;/h3&gt;
&lt;p&gt;Tarek's AI-powered lead classifier was his first n8n project involving AI.&lt;/p&gt;
&lt;p&gt;The idea was straightforward.&lt;/p&gt;
&lt;p&gt;A client submits a project through a form.&lt;/p&gt;
&lt;p&gt;An LLM classifies the request into one of five categories.&lt;/p&gt;
&lt;p&gt;The workflow then sends the appropriate client email, sends an internal notification and records the information in Google Sheets.&lt;/p&gt;
&lt;p&gt;But building it taught Tarek that AI automation isn't primarily about getting the model to produce the correct answer.&lt;/p&gt;
&lt;p&gt;A large part of the engineering work is deciding:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What happens when the AI gets it wrong?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;He approached that problem in several ways.&lt;/p&gt;
&lt;h4 id=&quot;structured-output&quot;&gt;Structured Output&lt;/h4&gt;
&lt;p&gt;Instead of relying on free-form text, he used structured output with a JSON schema.&lt;/p&gt;
&lt;p&gt;That meant the model had to return data in a defined shape, allowing the workflow to branch on predictable fields rather than trying to interpret loose text.&lt;/p&gt;
&lt;h4 id=&quot;ambiguous-vs-invalid&quot;&gt;Ambiguous vs Invalid&lt;/h4&gt;
&lt;p&gt;Tarek also separated two situations that could easily be treated as the same problem.&lt;/p&gt;
&lt;p&gt;An input that genuinely fits two categories is &lt;strong&gt;ambiguous&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;An input that isn't a project at all is &lt;strong&gt;invalid&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Those situations require different handling.&lt;/p&gt;
&lt;h4 id=&quot;retry-and-human-review&quot;&gt;Retry and Human Review&lt;/h4&gt;
&lt;p&gt;He also designed for failure.&lt;/p&gt;
&lt;p&gt;If classification fails, the workflow retries three times with five-second intervals.&lt;/p&gt;
&lt;p&gt;If it still fails, the system falls back to a human-review path labelled as a system error.&lt;/p&gt;
&lt;p&gt;The client's original data is preserved.&lt;/p&gt;
&lt;p&gt;Tarek even tested the failure behaviour himself by cutting his network connection during a run and watching the workflow recover instead of simply crashing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;testing-the-whole-system-not-just-the-nodes&quot;&gt;Testing the Whole System, Not Just the Nodes&lt;/h3&gt;
&lt;p&gt;Another lesson from the n8n project was that successful workflow execution doesn't necessarily mean the system is working correctly.&lt;/p&gt;
&lt;p&gt;Tarek didn't stop at checking whether the workflow nodes completed.&lt;/p&gt;
&lt;p&gt;He checked the actual inboxes.&lt;/p&gt;
&lt;p&gt;That revealed a bug where the internal notification and client email destinations had been swapped.&lt;/p&gt;
&lt;p&gt;The workflow technically ran.&lt;/p&gt;
&lt;p&gt;But it was still wrong.&lt;/p&gt;
&lt;p&gt;He also tested the AI prompt with deliberately tricky descriptions.&lt;/p&gt;
&lt;p&gt;That exposed situations where the classifier was guessing between categories rather than identifying them as ambiguous.&lt;/p&gt;
&lt;p&gt;He then rewrote the prompt to handle those cases more clearly.&lt;/p&gt;
&lt;p&gt;For Tarek, this reinforced an important principle:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Testing isn't just checking whether the workflow runs.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's checking whether the system does what it is supposed to do in the real world.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;accessibility-is-becoming-a-specialisation&quot;&gt;Accessibility Is Becoming a Specialisation&lt;/h3&gt;
&lt;p&gt;Accessibility isn't something Tarek treats as an optional extra.&lt;/p&gt;
&lt;p&gt;Part of that comes from his personality.&lt;/p&gt;
&lt;p&gt;He's detail-oriented and likes making things work properly.&lt;/p&gt;
&lt;p&gt;But his motivation goes beyond technical correctness.&lt;/p&gt;
&lt;p&gt;He believes people should be able to have the same experience on a website regardless of what they can or cannot do.&lt;/p&gt;
&lt;p&gt;Accessibility, in his view, should be part of building a website by default.&lt;/p&gt;
&lt;p&gt;He is particularly interested in the fact that technology can make the web much more accessible to people who use screen readers.&lt;/p&gt;
&lt;p&gt;Being able to contribute to that experience is a major reason accessibility is becoming a specialization for him.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-100-isn-t-really-100&quot;&gt;When 100 Isn't Really 100&lt;/h3&gt;
&lt;p&gt;One of Tarek's strongest accessibility lessons came from a project that achieved a &lt;strong&gt;100 Lighthouse accessibility score&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It would have been easy to stop there.&lt;/p&gt;
&lt;p&gt;But Tarek tested the site manually with &lt;strong&gt;NVDA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That's when he found something the automated audit had not caught.&lt;/p&gt;
&lt;p&gt;An &lt;code&gt;&amp;lt;address&amp;gt;&lt;/code&gt; element containing a heading wasn't valid HTML in the way it was being used, and NVDA announced it as a normal region.&lt;/p&gt;
&lt;p&gt;The automated score hadn't identified the problem.&lt;/p&gt;
&lt;p&gt;The screen reader did.&lt;/p&gt;
&lt;p&gt;That experience reinforced something Tarek now believes strongly:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A perfect automated accessibility score does not mean a website is accessible.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Automated tools can only check what they are designed to check.&lt;/p&gt;
&lt;p&gt;Someone still needs to experience the page using assistive technology.&lt;/p&gt;
&lt;p&gt;Tarek has tested with NVDA himself and recognizes that there is still much more for him to learn.&lt;/p&gt;
&lt;p&gt;That willingness to keep learning is part of what makes accessibility an interesting direction for his development journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-through-practice&quot;&gt;Learning Through Practice&lt;/h3&gt;
&lt;p&gt;Tarek's projects are deliberately practical.&lt;/p&gt;
&lt;p&gt;Even when something is technically a practice project, he tends to build it as if he might actually use it.&lt;/p&gt;
&lt;p&gt;That approach has one downside.&lt;/p&gt;
&lt;p&gt;He can keep adding features forever.&lt;/p&gt;
&lt;p&gt;To prevent that, he changed how he structures projects.&lt;/p&gt;
&lt;p&gt;He now works in stages.&lt;/p&gt;
&lt;p&gt;He plans a stage.&lt;/p&gt;
&lt;p&gt;He completes it.&lt;/p&gt;
&lt;p&gt;Then he stops.&lt;/p&gt;
&lt;p&gt;Anything outside that stage goes into a notes file rather than immediately becoming another feature.&lt;/p&gt;
&lt;p&gt;Once all planned stages are finished, he reviews the notes and treats the ideas as potential future projects.&lt;/p&gt;
&lt;p&gt;Then he decides which ones are actually worth pursuing.&lt;/p&gt;
&lt;p&gt;This gives him a way to stay curious without allowing every new idea to derail the current project.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;search-test-understand&quot;&gt;Search, Test, Understand&lt;/h3&gt;
&lt;p&gt;When Tarek doesn't know how to do something, his process is simple.&lt;/p&gt;
&lt;p&gt;He searches for answers.&lt;/p&gt;
&lt;p&gt;He tests them.&lt;/p&gt;
&lt;p&gt;Then he checks what is actually happening instead of simply assuming the solution worked.&lt;/p&gt;
&lt;p&gt;His n8n classifier provided a good example.&lt;/p&gt;
&lt;p&gt;At one point, something wasn't behaving as expected.&lt;/p&gt;
&lt;p&gt;Rather than immediately blaming the AI model, he looked at the model's raw output.&lt;/p&gt;
&lt;p&gt;That showed him that the model was actually fine.&lt;/p&gt;
&lt;p&gt;The problem was somewhere else in the workflow.&lt;/p&gt;
&lt;p&gt;This is becoming an important part of his learning philosophy:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don't guess when you can inspect.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-his-own-website&quot;&gt;Building His Own Website&lt;/h3&gt;
&lt;p&gt;Tarek's next major project is his own website.&lt;/p&gt;
&lt;p&gt;It represents a step up from what he has built so far.&lt;/p&gt;
&lt;p&gt;His previous projects have primarily been one-page landing pages.&lt;/p&gt;
&lt;p&gt;This time, he's building a full multi-page website with different sections and responsibilities.&lt;/p&gt;
&lt;p&gt;It's taking a significant amount of his time.&lt;/p&gt;
&lt;p&gt;But it's also teaching him a lot.&lt;/p&gt;
&lt;p&gt;The site will be hosted on GitHub, which means Git and GitHub Actions are becoming increasingly important parts of his workflow.&lt;/p&gt;
&lt;p&gt;He sees those skills as another layer supporting the frontend and automation work he is already doing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-python-and-n8n-matter&quot;&gt;Why Python and n8n Matter&lt;/h3&gt;
&lt;p&gt;Tarek sees the technologies he's learning as connected rather than isolated.&lt;/p&gt;
&lt;p&gt;n8n represents the automation side of his work.&lt;/p&gt;
&lt;p&gt;Frontend represents the interface.&lt;/p&gt;
&lt;p&gt;Python provides another useful programming foundation.&lt;/p&gt;
&lt;p&gt;He believes Python is valuable for developers because it appears in so many tools and scripting workflows.&lt;/p&gt;
&lt;p&gt;Knowing Python also means being able to create custom scripts that fit the way he works rather than always relying on someone else's tooling.&lt;/p&gt;
&lt;p&gt;Git and GitHub then provide the workflow and infrastructure around the projects.&lt;/p&gt;
&lt;p&gt;Instead of collecting technologies simply for the sake of learning them, Tarek is gradually building a toolkit around the kind of developer he wants to become.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-challenge-of-learning-alone&quot;&gt;The Challenge of Learning Alone&lt;/h3&gt;
&lt;p&gt;Being self-taught and mostly working independently comes with another challenge that isn't technical.&lt;/p&gt;
&lt;p&gt;Community.&lt;/p&gt;
&lt;p&gt;Tarek has found that meeting people and becoming part of the developer community requires real effort when you're learning and building mostly on your own.&lt;/p&gt;
&lt;p&gt;In fact, he says that putting effort into connecting with people has been surprisingly more difficult than any project he's worked on.&lt;/p&gt;
&lt;p&gt;That's one reason CoderLegion has become relevant to his journey.&lt;/p&gt;
&lt;p&gt;He isn't only building technical skills.&lt;/p&gt;
&lt;p&gt;He's also trying to find other people who are learning, building and figuring things out along the way.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;advice-from-a-beginner&quot;&gt;Advice From a Beginner&lt;/h3&gt;
&lt;p&gt;Tarek is careful about giving advice.&lt;/p&gt;
&lt;p&gt;He doesn't claim to have everything figured out.&lt;/p&gt;
&lt;p&gt;He's still a beginner himself.&lt;/p&gt;
&lt;p&gt;So instead of presenting a formula for success, he shares what has been working for him.&lt;/p&gt;
&lt;h4 id=&quot;stay-organized&quot;&gt;Stay organized&lt;/h4&gt;
&lt;p&gt;A good folder structure can save a surprising amount of time.&lt;/p&gt;
&lt;p&gt;Set it up before the project becomes messy.&lt;/p&gt;
&lt;h4 id=&quot;write-things-down&quot;&gt;Write things down&lt;/h4&gt;
&lt;p&gt;His project notes help him remember how an idea started, how a problem was solved and what he learned from the process.&lt;/p&gt;
&lt;p&gt;Those notes become a record of his mistakes and lessons.&lt;/p&gt;
&lt;h4 id=&quot;break-problems-down&quot;&gt;Break problems down&lt;/h4&gt;
&lt;p&gt;Don't treat a difficult problem as one enormous problem.&lt;/p&gt;
&lt;p&gt;Define what you want to achieve.&lt;/p&gt;
&lt;p&gt;Break it into smaller steps.&lt;/p&gt;
&lt;p&gt;Then work on one step at a time.&lt;/p&gt;
&lt;p&gt;Often, the solution turns out to be easier to find than the original problem made it feel.&lt;/p&gt;
&lt;h4 id=&quot;practice-while-learning&quot;&gt;Practice while learning&lt;/h4&gt;
&lt;p&gt;Don't wait until you've mastered something before using it.&lt;/p&gt;
&lt;p&gt;Practice what you're learning.&lt;/p&gt;
&lt;p&gt;Then learn more while you're practicing.&lt;/p&gt;
&lt;p&gt;For Tarek, focusing on the next small thing is what prevents the learning process from becoming overwhelming.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;frontend-and-automation-as-one-direction&quot;&gt;Frontend and Automation as One Direction&lt;/h3&gt;
&lt;p&gt;Tarek's current focus is clear.&lt;/p&gt;
&lt;p&gt;He wants to become good at both frontend development and automation and eventually bring them together.&lt;/p&gt;
&lt;p&gt;In the near term, he's aiming for freelance frontend and automation work.&lt;/p&gt;
&lt;p&gt;Longer term, he would like to build something of his own—a space where he can create projects across different areas of technology and experiment with how those areas connect.&lt;/p&gt;
&lt;p&gt;But he's not trying to rush there.&lt;/p&gt;
&lt;p&gt;For now, the priority is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Learn. Build. Improve.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One step at a time.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-to-walk-before-running&quot;&gt;Learning to Walk Before Running&lt;/h3&gt;
&lt;p&gt;Tarek's approach to the future is deliberately grounded.&lt;/p&gt;
&lt;p&gt;He's trying to learn to walk before he runs.&lt;/p&gt;
&lt;p&gt;That means focusing more on today than on an imagined distant destination.&lt;/p&gt;
&lt;p&gt;At the same time, he believes knowing what you want to become helps shape who you are today.&lt;/p&gt;
&lt;p&gt;Right now, that means developing his skills in frontend development and automation.&lt;/p&gt;
&lt;p&gt;Later, it may mean building something of his own.&lt;/p&gt;
&lt;p&gt;But the immediate goal isn't to skip ahead.&lt;/p&gt;
&lt;p&gt;It's to build the foundation properly.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;a-message-to-other-self-taught-developers&quot;&gt;A Message to Other Self-Taught Developers&lt;/h3&gt;
&lt;p&gt;Tarek has one simple message for people in a similar position.&lt;/p&gt;
&lt;p&gt;If you're self-taught and mostly working alone, finding people to connect with takes real effort.&lt;/p&gt;
&lt;p&gt;So if you're on the same path, don't assume you're the only one.&lt;/p&gt;
&lt;p&gt;Reach out.&lt;/p&gt;
&lt;p&gt;Build connections.&lt;/p&gt;
&lt;p&gt;Share what you're learning.&lt;/p&gt;
&lt;p&gt;And keep building.&lt;/p&gt;
&lt;p&gt;You don't need to have everything figured out before you become part of a community.&lt;/p&gt;
&lt;p&gt;Sometimes learning alongside other people is part of figuring it out.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;beyond-the-interface-1&quot;&gt;Beyond the Interface&lt;/h3&gt;
&lt;p&gt;Tarek's journey is still at an early stage.&lt;/p&gt;
&lt;p&gt;But there is already a clear direction.&lt;/p&gt;
&lt;p&gt;He started with frontend because it seemed like the fastest path into freelancing.&lt;/p&gt;
&lt;p&gt;He stayed because he discovered how much he enjoyed building.&lt;/p&gt;
&lt;p&gt;Then he began looking beyond the interface.&lt;/p&gt;
&lt;p&gt;Automation showed him what could happen behind a form.&lt;/p&gt;
&lt;p&gt;AI introduced new questions about reliability and failure handling.&lt;/p&gt;
&lt;p&gt;Accessibility showed him that technical correctness and real user experience aren't always the same thing.&lt;/p&gt;
&lt;p&gt;And his projects continue to teach him that the best way to learn is often to build something, break something, investigate it and try again.&lt;/p&gt;
&lt;p&gt;His goal isn't simply to become someone who can create attractive interfaces.&lt;/p&gt;
&lt;p&gt;He wants to understand what happens behind them.&lt;/p&gt;
&lt;p&gt;The interface.&lt;/p&gt;
&lt;p&gt;The automation.&lt;/p&gt;
&lt;p&gt;The logic.&lt;/p&gt;
&lt;p&gt;The accessibility.&lt;/p&gt;
&lt;p&gt;The systems connecting everything together.&lt;/p&gt;
&lt;p&gt;And eventually, he wants to build all of those pieces as one.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-tarek-elzoghby&quot;&gt;About Tarek Elzoghby&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Tarek Elzoghby&lt;/strong&gt; is a self-taught frontend developer focused on building interfaces together with the automation and logic that make them work.&lt;/p&gt;
&lt;p&gt;His technical interests include JavaScript, HTML, CSS, n8n, Python, Git and accessibility.&lt;/p&gt;
&lt;p&gt;His projects include interactive frontend experiences, AI-powered workflow automation and accessibility-focused web development.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Tarek-Elzoghby&quot;&gt;View Tarek's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://tarek-elzoghby.github.io/tarek-elzoghby-hub/&quot;&gt;Visit Tarek's portfolio hub&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-4&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30286/beyond-ifrontend-developer-automation-buildernterface-tarek-elzoghbys-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 12:33:10 +0000</pubDate>
</item>
<item>
<title>From Testing Games to Building Them — Mihaela Turianu’s Journey into Indie Game Development</title>
<link>https://coderlegion.com/30279/from-testing-games-to-building-them-mihaela-turianus-journey-into-indie-game-development</link>
<description>&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“I wanted to know how games were made, how characters came to life, how stories were written and how the magic happens backstage.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For more than eight years, Mihaela Turianu worked in Quality Assurance in the video game industry.&lt;/p&gt;
&lt;p&gt;Her job was to test games.&lt;/p&gt;
&lt;p&gt;To find problems.&lt;/p&gt;
&lt;p&gt;To think about what players might do that developers hadn't expected.&lt;/p&gt;
&lt;p&gt;To look at systems from different angles and help make games better.&lt;/p&gt;
&lt;p&gt;But behind all that testing was a curiosity that had existed since childhood:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What actually happens backstage to make a game come to life?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Today, Mihaela is exploring the other side of that process.&lt;/p&gt;
&lt;p&gt;Instead of testing games created by others, she's learning how to build her own.&lt;/p&gt;
&lt;p&gt;Her journey into indie game development is taking her through Unreal Engine 5, Blueprints, gameplay systems, animation, physics, debugging and, perhaps most importantly, the challenge of turning an idea into something another person can actually play.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-sega-to-game-development&quot;&gt;From Sega to Game Development&lt;/h3&gt;
&lt;p&gt;Mihaela's fascination with games started long before she entered the industry.&lt;/p&gt;
&lt;p&gt;As a child, she didn't have a PC, but she had a Sega console that fascinated her.&lt;/p&gt;
&lt;p&gt;As technology evolved, she experienced games across different generations—from older consoles and Commodore 64 games running from cassette tapes to games on an Intel Pentium 1 PC, the first Xbox and eventually today's powerful gaming hardware.&lt;/p&gt;
&lt;p&gt;The technology changed.&lt;/p&gt;
&lt;p&gt;The fascination didn't.&lt;/p&gt;
&lt;p&gt;But eventually, playing games wasn't enough.&lt;/p&gt;
&lt;p&gt;Mihaela wanted to understand what was happening behind the screen.&lt;/p&gt;
&lt;p&gt;How were games made?&lt;/p&gt;
&lt;p&gt;How did characters come to life?&lt;/p&gt;
&lt;p&gt;How were stories created?&lt;/p&gt;
&lt;p&gt;How did all the systems come together?&lt;/p&gt;
&lt;p&gt;That curiosity eventually led her to apply to Electronic Arts as a Game Tester around 2016.&lt;/p&gt;
&lt;p&gt;That was the beginning of her professional journey in the video game industry.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;eight-years-on-the-qa-side&quot;&gt;Eight Years on the QA Side&lt;/h3&gt;
&lt;p&gt;Over the years, Mihaela progressed through different roles and met people working across many areas of game development.&lt;/p&gt;
&lt;p&gt;That experience brought her closer to the process she had always wanted to understand.&lt;/p&gt;
&lt;p&gt;The people she met along the way also played an important role.&lt;/p&gt;
&lt;p&gt;Their encouragement, guidance and insights helped give her the confidence to pursue something she had been thinking about for a long time:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;making games herself.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After years of testing games, Mihaela decided to move to the other side of the process.&lt;/p&gt;
&lt;p&gt;From finding bugs to creating features.&lt;/p&gt;
&lt;p&gt;From evaluating mechanics to building them.&lt;/p&gt;
&lt;p&gt;From asking whether something works to figuring out how to make it work in the first place.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;seeing-games-through-three-perspectives&quot;&gt;Seeing Games Through Three Perspectives&lt;/h3&gt;
&lt;p&gt;Mihaela's QA background continues to influence how she approaches development.&lt;/p&gt;
&lt;p&gt;When she builds a mechanic, she doesn't look at it only from the perspective of the developer.&lt;/p&gt;
&lt;p&gt;She thinks about the:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Developer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tester.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Player.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A mechanic might work exactly as intended during a normal test.&lt;/p&gt;
&lt;p&gt;But what happens when the player does something unexpected?&lt;/p&gt;
&lt;p&gt;What if they interrupt an action?&lt;/p&gt;
&lt;p&gt;What if they repeat it?&lt;/p&gt;
&lt;p&gt;What if they use two systems in an order the developer didn't anticipate?&lt;/p&gt;
&lt;p&gt;These questions come naturally from her QA experience.&lt;/p&gt;
&lt;p&gt;She also pays close attention to how systems interact.&lt;/p&gt;
&lt;p&gt;A feature can work perfectly on its own and still behave differently when it connects with inventory, player statistics, quests or other gameplay systems.&lt;/p&gt;
&lt;p&gt;QA has made this way of thinking a habit.&lt;/p&gt;
&lt;p&gt;And that habit is now part of how she develops her own games.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-in-public-through-devlogs&quot;&gt;Building in Public Through Devlogs&lt;/h3&gt;
&lt;p&gt;Mihaela isn't waiting for her game to be finished before sharing it.&lt;/p&gt;
&lt;p&gt;Instead, she's documenting the process through development logs.&lt;/p&gt;
&lt;p&gt;For her, getting a system working is already a milestone worth sharing.&lt;/p&gt;
&lt;p&gt;A devlog provides an opportunity to show progress, connect with other developers and players, and get different perspectives while the project is still evolving.&lt;/p&gt;
&lt;p&gt;It also means showing the unfinished parts.&lt;/p&gt;
&lt;p&gt;The bugs.&lt;/p&gt;
&lt;p&gt;The experiments.&lt;/p&gt;
&lt;p&gt;The trial and error.&lt;/p&gt;
&lt;p&gt;The moments where something that looks simple from the outside takes much longer to get working than expected.&lt;/p&gt;
&lt;p&gt;That's an important part of Mihaela's approach.&lt;/p&gt;
&lt;p&gt;She's still learning.&lt;/p&gt;
&lt;p&gt;She's still experimenting.&lt;/p&gt;
&lt;p&gt;And she wants her devlogs to reflect that honestly.&lt;/p&gt;
&lt;p&gt;Perhaps someone watching her journey will recognize a problem they've experienced themselves.&lt;/p&gt;
&lt;p&gt;Or maybe a small breakthrough will encourage someone working on their own project.&lt;/p&gt;
&lt;p&gt;For Mihaela, the process itself is part of the story.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;finding-her-way-to-unreal-engine-5&quot;&gt;Finding Her Way to Unreal Engine 5&lt;/h3&gt;
&lt;p&gt;Mihaela didn't begin with Unreal Engine.&lt;/p&gt;
&lt;p&gt;She initially tried Unity.&lt;/p&gt;
&lt;p&gt;But she struggled with coding, which made it difficult to turn her ideas into working gameplay.&lt;/p&gt;
&lt;p&gt;Later, changes to Unity's pricing also made her question whether it was the right choice for someone developing on a very limited budget.&lt;/p&gt;
&lt;p&gt;Unreal Engine offered something that made the process more approachable:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blueprints.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Its visual scripting system allowed Mihaela to build gameplay logic visually.&lt;/p&gt;
&lt;p&gt;She still needed to understand how the underlying logic worked, but she didn't have to become blocked by code before she could start experimenting.&lt;/p&gt;
&lt;p&gt;That changed the learning experience.&lt;/p&gt;
&lt;p&gt;Instead of spending all her time fighting the programming language, she could focus on understanding systems and seeing her ideas become playable.&lt;/p&gt;
&lt;p&gt;Free documentation, YouTube tutorials and helpful Discord communities have also played an important role.&lt;/p&gt;
&lt;p&gt;There has still been plenty of trial and error.&lt;/p&gt;
&lt;p&gt;But being able to take an idea, build it and see it working inside the game has made the learning process rewarding.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-dropping-an-item-isn-t-simple&quot;&gt;When Dropping an Item Isn't Simple&lt;/h3&gt;
&lt;p&gt;One of Mihaela's recent development challenges came from something that sounds incredibly simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dropping an item.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The basic idea seems straightforward.&lt;/p&gt;
&lt;p&gt;Remove an item from the inventory.&lt;/p&gt;
&lt;p&gt;Make it appear in the game world.&lt;/p&gt;
&lt;p&gt;Done.&lt;/p&gt;
&lt;p&gt;Except it wasn't.&lt;/p&gt;
&lt;p&gt;Physics and collision behaviour introduced unpredictability.&lt;/p&gt;
&lt;p&gt;Sometimes an item would fall through the ground.&lt;/p&gt;
&lt;p&gt;The frustrating part was that the problem wasn't always consistent.&lt;/p&gt;
&lt;p&gt;An item might work perfectly in one test and disappear in the next.&lt;/p&gt;
&lt;p&gt;That made the underlying problem much harder to identify.&lt;/p&gt;
&lt;p&gt;Because Mihaela uses a shared, data-driven system for dropped items, the solution also needed to work across different objects.&lt;/p&gt;
&lt;p&gt;The experience reinforced an important lesson from her QA background:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One successful test doesn't necessarily mean a system is ready.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There was another layer to the problem as well.&lt;/p&gt;
&lt;p&gt;After using or dropping an item, the inventory entry could remain visible.&lt;/p&gt;
&lt;p&gt;The selected entry could still point to something that no longer existed.&lt;/p&gt;
&lt;p&gt;The item details could fail to update correctly.&lt;/p&gt;
&lt;p&gt;Each individual action seemed simple.&lt;/p&gt;
&lt;p&gt;But they all affected the same interface.&lt;/p&gt;
&lt;p&gt;Mihaela learned that building an inventory isn't simply about storing items.&lt;/p&gt;
&lt;p&gt;It is about managing the relationships between the different systems that depend on those items.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;making-mechanics-feel-good&quot;&gt;Making Mechanics Feel Good&lt;/h3&gt;
&lt;p&gt;Mihaela's recent devlogs include systems for sprinting and stamina, player illumination and interaction awareness.&lt;/p&gt;
&lt;p&gt;But getting a mechanic to technically work isn't enough.&lt;/p&gt;
&lt;p&gt;She wants mechanics to feel intuitive.&lt;/p&gt;
&lt;p&gt;When developing something, she asks herself questions such as:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Would I enjoy this as a player?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Would I find it interesting?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Would it help me?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Would I naturally understand how to use it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Those questions influence not only individual mechanics but how the mechanics connect with each other.&lt;/p&gt;
&lt;p&gt;Controls should make sense.&lt;/p&gt;
&lt;p&gt;Feedback should be clear.&lt;/p&gt;
&lt;p&gt;Systems should feel comfortable together.&lt;/p&gt;
&lt;p&gt;And if something feels awkward, she plays with it and adjusts it.&lt;/p&gt;
&lt;p&gt;For Mihaela, development isn't finished simply because the feature works.&lt;/p&gt;
&lt;p&gt;It also needs to &lt;strong&gt;feel good to use&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;technically-correct-doesn-t-always-mean-enjoyable&quot;&gt;Technically Correct Doesn't Always Mean Enjoyable&lt;/h3&gt;
&lt;p&gt;One of the distinctions Mihaela makes is between a feature being technically complete and a feature being enjoyable.&lt;/p&gt;
&lt;p&gt;Technically, a feature is complete when it does what it is supposed to do consistently—including when a player does something unexpected.&lt;/p&gt;
&lt;p&gt;Enjoyment is different.&lt;/p&gt;
&lt;p&gt;There is no formula that guarantees every player will enjoy a mechanic.&lt;/p&gt;
&lt;p&gt;Instead, Mihaela steps back from the implementation and simply plays with it.&lt;/p&gt;
&lt;p&gt;Do the controls feel natural?&lt;/p&gt;
&lt;p&gt;Is the response clear?&lt;/p&gt;
&lt;p&gt;Does the mechanic become frustrating?&lt;/p&gt;
&lt;p&gt;Does it become repetitive?&lt;/p&gt;
&lt;p&gt;Does the player understand what the game expects from them?&lt;/p&gt;
&lt;p&gt;Knowing exactly how a system was built can make it easy for a developer to overlook things that aren't obvious to someone experiencing it for the first time.&lt;/p&gt;
&lt;p&gt;Sometimes something works perfectly and still feels wrong.&lt;/p&gt;
&lt;p&gt;That's when Mihaela is willing to simplify, adapt or rethink the feature.&lt;/p&gt;
&lt;p&gt;The goal is to let the player enjoy the game without having to stop and figure out how the game expects them to play.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-animation-the-hard-way&quot;&gt;Learning Animation the Hard Way&lt;/h3&gt;
&lt;p&gt;Another example came from something as simple as making a character bow when the player entered an area.&lt;/p&gt;
&lt;p&gt;The idea sounded straightforward.&lt;/p&gt;
&lt;p&gt;The implementation wasn't.&lt;/p&gt;
&lt;p&gt;Mihaela needed to transfer an animation between characters with different skeletons and starting poses.&lt;/p&gt;
&lt;p&gt;Some of the movement didn't transfer correctly.&lt;/p&gt;
&lt;p&gt;The character's arms looked awkward.&lt;/p&gt;
&lt;p&gt;She worked through the retargeting process step by step.&lt;/p&gt;
&lt;p&gt;She checked how the bones were mapped.&lt;/p&gt;
&lt;p&gt;She adjusted the pose alignment.&lt;/p&gt;
&lt;p&gt;She experimented with the setup.&lt;/p&gt;
&lt;p&gt;After several rounds of adjustments, she finally got the bow looking close to what she wanted.&lt;/p&gt;
&lt;p&gt;The process taught her more about animations, skeleton mapping, bone hierarchies and retargeters.&lt;/p&gt;
&lt;p&gt;And when the character finally performed the gesture correctly, it was a small but satisfying victory.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;progress-doesn-t-always-look-exciting&quot;&gt;Progress Doesn't Always Look Exciting&lt;/h3&gt;
&lt;p&gt;Indie development requires more than learning technology.&lt;/p&gt;
&lt;p&gt;It requires maintaining motivation when progress is slow.&lt;/p&gt;
&lt;p&gt;Mihaela tries to handle that by taking things one manageable step at a time.&lt;/p&gt;
&lt;p&gt;Rather than trying to learn everything Unreal Engine can do, she focuses on learning what she needs for the feature she is currently building.&lt;/p&gt;
&lt;p&gt;That gives the learning a practical purpose.&lt;/p&gt;
&lt;p&gt;Some days are about adding something new.&lt;/p&gt;
&lt;p&gt;Other days are spent figuring out why something that worked yesterday suddenly doesn't work anymore.&lt;/p&gt;
&lt;p&gt;Those days can be frustrating.&lt;/p&gt;
&lt;p&gt;But solving a problem is still progress, even if it doesn't make an exciting devlog.&lt;/p&gt;
&lt;p&gt;What keeps Mihaela motivated is seeing the game gradually take shape.&lt;/p&gt;
&lt;p&gt;A working interaction.&lt;/p&gt;
&lt;p&gt;An animation finally behaving properly.&lt;/p&gt;
&lt;p&gt;A small environmental detail that makes the world feel more alive.&lt;/p&gt;
&lt;p&gt;Those moments provide the motivation to keep going.&lt;/p&gt;
&lt;p&gt;She also has a simple strategy for preventing the process from becoming overwhelming.&lt;/p&gt;
&lt;p&gt;After spending hours or days working on Blueprints and logic that may not be visually exciting, she gives herself around 15 minutes to create something visual.&lt;/p&gt;
&lt;p&gt;Falling leaves.&lt;/p&gt;
&lt;p&gt;A door opening.&lt;/p&gt;
&lt;p&gt;A small environmental effect.&lt;/p&gt;
&lt;p&gt;Something simple that immediately changes what she sees in the game.&lt;/p&gt;
&lt;p&gt;It may only take a few minutes, but it can provide a useful reminder of why she's building the game in the first place.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-testing-games-to-understanding-their-complexity&quot;&gt;From Testing Games to Understanding Their Complexity&lt;/h3&gt;
&lt;p&gt;One of the biggest surprises of becoming a developer has been discovering just how much work goes into things that appear simple when playing a finished game.&lt;/p&gt;
&lt;p&gt;Picking up an item sounds like one action.&lt;/p&gt;
&lt;p&gt;But implementing it can involve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interaction logic&lt;/li&gt;
&lt;li&gt;Inventory data&lt;/li&gt;
&lt;li&gt;UI updates&lt;/li&gt;
&lt;li&gt;Object spawning&lt;/li&gt;
&lt;li&gt;Physics&lt;/li&gt;
&lt;li&gt;Collision&lt;/li&gt;
&lt;li&gt;Selection state&lt;/li&gt;
&lt;li&gt;Communication between different systems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In QA, Mihaela was used to examining what already existed and finding where it didn't behave as expected.&lt;/p&gt;
&lt;p&gt;As a developer, she now starts with an idea and has to work out all the decisions required to turn that idea into something functional.&lt;/p&gt;
&lt;p&gt;That has given her a much greater appreciation for the work behind the games she has tested throughout her career.&lt;/p&gt;
&lt;p&gt;And it has also made development surprisingly rewarding.&lt;/p&gt;
&lt;p&gt;A small feature can feel like a significant achievement when you know exactly what it took to make it work.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-game-she-wants-to-build&quot;&gt;The Game She Wants to Build&lt;/h3&gt;
&lt;p&gt;Mihaela isn't rushing to reveal every detail of the game she ultimately wants to create.&lt;/p&gt;
&lt;p&gt;She's giving herself room to experiment and allowing the project to take shape naturally.&lt;/p&gt;
&lt;p&gt;But the vision is clear.&lt;/p&gt;
&lt;p&gt;She wants to create a world that people enjoy spending time in.&lt;/p&gt;
&lt;p&gt;A world that keeps players curious.&lt;/p&gt;
&lt;p&gt;A world where they can explore and discover things at their own pace.&lt;/p&gt;
&lt;p&gt;For her, one meaningful milestone would be having a playable version that she feels comfortable putting into someone else's hands.&lt;/p&gt;
&lt;p&gt;Not simply something that works.&lt;/p&gt;
&lt;p&gt;Something that another person can play and genuinely enjoy.&lt;/p&gt;
&lt;p&gt;Seeing someone have fun with something she created would mean a lot.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;advice-for-developers-making-the-transition&quot;&gt;Advice for Developers Making the Transition&lt;/h3&gt;
&lt;p&gt;For people working in QA or other areas of the gaming industry who are considering moving into development, Mihaela offers realistic advice.&lt;/p&gt;
&lt;p&gt;Think carefully about the decision.&lt;/p&gt;
&lt;p&gt;The journey can be difficult and tiring.&lt;/p&gt;
&lt;p&gt;Specific problems can be surprisingly hard to research.&lt;/p&gt;
&lt;p&gt;Tutorials can leave unanswered questions.&lt;/p&gt;
&lt;p&gt;Documentation can be difficult to follow when foundational knowledge is missing.&lt;/p&gt;
&lt;p&gt;And there is no guarantee that an idea will find an audience.&lt;/p&gt;
&lt;p&gt;But there is another side to it.&lt;/p&gt;
&lt;p&gt;Building something of your own can be incredibly rewarding.&lt;/p&gt;
&lt;p&gt;There is a unique feeling in seeing an idea become something you can actually play.&lt;/p&gt;
&lt;p&gt;Her advice is to &lt;strong&gt;start small&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Build a mechanic.&lt;/p&gt;
&lt;p&gt;Build a small playable project.&lt;/p&gt;
&lt;p&gt;Give yourself room to learn.&lt;/p&gt;
&lt;p&gt;Before committing to a huge game, find out whether you actually enjoy the day-to-day work of making games—not just the idea of being someone who makes games.&lt;/p&gt;
&lt;p&gt;And keep expectations realistic.&lt;/p&gt;
&lt;p&gt;The internet can be unforgiving, and people can be ruthless sometimes.&lt;/p&gt;
&lt;p&gt;The goal should be to learn, build and keep moving forward.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-s-next-&quot;&gt;What's Next?&lt;/h3&gt;
&lt;p&gt;Mihaela is continuing to build and document her indie development journey.&lt;/p&gt;
&lt;p&gt;Her current work includes gameplay mechanics, interaction systems, animation, inventory systems, physics and other pieces that will eventually come together into a larger playable experience.&lt;/p&gt;
&lt;p&gt;She's still learning.&lt;/p&gt;
&lt;p&gt;Still experimenting.&lt;/p&gt;
&lt;p&gt;Still debugging.&lt;/p&gt;
&lt;p&gt;And still figuring out what the game will ultimately become.&lt;/p&gt;
&lt;p&gt;That's what makes her journey interesting.&lt;/p&gt;
&lt;p&gt;She isn't presenting a finished success story.&lt;/p&gt;
&lt;p&gt;She's showing what happens when someone who spent years testing games decides to step behind the curtain and try to build one.&lt;/p&gt;
&lt;p&gt;From QA to development.&lt;/p&gt;
&lt;p&gt;From finding bugs to creating systems.&lt;/p&gt;
&lt;p&gt;From playing games to making them.&lt;/p&gt;
&lt;p&gt;The journey is only beginning.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-mihaela-turianu&quot;&gt;About Mihaela Turianu&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Mihaela Turianu&lt;/strong&gt; is an indie game developer with more than eight years of experience in Quality Assurance within the video game industry.&lt;/p&gt;
&lt;p&gt;She is currently building games with &lt;strong&gt;Unreal Engine 5&lt;/strong&gt;, using Blueprints and exploring gameplay systems, animation, interaction, physics and game design.&lt;/p&gt;
&lt;p&gt;She documents her development journey through devlogs under the name &lt;strong&gt;MTIndieDev&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/MTIndieDev&quot;&gt;View Mihaela's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.youtube.com/@MTIndieDev&quot;&gt;Follow MTIndieDev on YouTube&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-5&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30279/from-testing-games-to-building-them-mihaela-turianus-journey-into-indie-game-development</guid>
<pubDate>Thu, 08 Oct 2026 12:17:39 +0000</pubDate>
</item>
<item>
<title>From Code to Systems Thinking — Valentyn Ivanov’s Developer Journey</title>
<link>https://coderlegion.com/30269/from-code-to-systems-thinking-valentyn-ivanovs-developer-journey</link>
<description>&lt;h2 id=&quot;from-code-to-systems-thinking-valentyn-ivanov-s-developer-journey&quot;&gt;From Code to Systems Thinking — Valentyn Ivanov’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“The goal of architecture is not to make the code perfect from day one. It is to make change affordable.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Valentyn Ivanov has spent more than 15 years building complex software across developer tools, data-processing systems, graphics platforms, cloud-connected applications and cross-platform products.&lt;/p&gt;
&lt;p&gt;But his journey isn't really about collecting technologies.&lt;/p&gt;
&lt;p&gt;It is about learning how systems work, understanding the people who use them, and becoming increasingly pragmatic about how software should be designed.&lt;/p&gt;
&lt;p&gt;His early fascination with computers started before he even had regular access to one. Today, that same curiosity continues to drive him toward software architecture, developer tools, artificial intelligence and new ways for humans to interact with computers.&lt;/p&gt;
&lt;p&gt;For Valentyn, good engineering isn't about following patterns for the sake of following patterns.&lt;/p&gt;
&lt;p&gt;It is about understanding the problem well enough to make the right trade-offs.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;a-curiosity-that-started-before-the-computer&quot;&gt;A Curiosity That Started Before the Computer&lt;/h3&gt;
&lt;p&gt;Valentyn was fascinated by computing machines long before he had regular access to an actual computer.&lt;/p&gt;
&lt;p&gt;Even calculators and electronic cash registers caught his attention because he wanted to understand what was happening inside them.&lt;/p&gt;
&lt;p&gt;It wasn't until around the age of fourteen or fifteen that he gained regular access to computers.&lt;/p&gt;
&lt;p&gt;Until then, he spent time in the city library reading almost every book he could find about computer hardware and software.&lt;/p&gt;
&lt;p&gt;Once computers became available at school, he began exploring everything he could:&lt;/p&gt;
&lt;p&gt;Games.&lt;/p&gt;
&lt;p&gt;Small programs.&lt;/p&gt;
&lt;p&gt;MS-DOS.&lt;/p&gt;
&lt;p&gt;And the wider software ecosystem around it.&lt;/p&gt;
&lt;p&gt;By the time he had to choose a profession, software engineering felt like the obvious direction.&lt;/p&gt;
&lt;p&gt;Interestingly, the fundamental motivation behind that choice hasn't changed much.&lt;/p&gt;
&lt;p&gt;Valentyn still enjoys learning about software and hardware simply because he finds them interesting—even when there is no immediate practical application.&lt;/p&gt;
&lt;p&gt;Over the years, he has learned that this curiosity often pays off later.&lt;/p&gt;
&lt;p&gt;Something that seems theoretical or unrelated today can become part of the foundation needed to solve a completely different problem years later.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-hardest-part-of-software-is-often-people&quot;&gt;The Hardest Part of Software Is Often People&lt;/h3&gt;
&lt;p&gt;With experience across developer tools, graphics software, data-processing systems and cross-platform applications, Valentyn might have been expected to identify technical complexity as the biggest challenge.&lt;/p&gt;
&lt;p&gt;Instead, his answer is much simpler:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;People.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Whether you're building developer tools, graphics software or data-processing systems, the software ultimately exists to help people solve a problem.&lt;/p&gt;
&lt;p&gt;And when a project begins, developers don't always fully understand that problem.&lt;/p&gt;
&lt;p&gt;The difficult part is learning the domain well enough to understand what users are actually trying to achieve.&lt;/p&gt;
&lt;p&gt;What causes them friction?&lt;/p&gt;
&lt;p&gt;What expectations do they bring?&lt;/p&gt;
&lt;p&gt;How do they actually work?&lt;/p&gt;
&lt;p&gt;A technically elegant solution can still be a poor solution if it solves the wrong problem or forces users into a workflow that doesn't match reality.&lt;/p&gt;
&lt;p&gt;The same applies inside engineering teams.&lt;/p&gt;
&lt;p&gt;Architecture and implementation are influenced by communication, assumptions, ownership and how well people understand each other's constraints.&lt;/p&gt;
&lt;p&gt;Once the human context becomes clear, technical complexity is often much easier to manage.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-patterns-to-pragmatism&quot;&gt;From Patterns to Pragmatism&lt;/h3&gt;
&lt;p&gt;Early in his career, Valentyn was heavily focused on best practices, patterns and programming idioms.&lt;/p&gt;
&lt;p&gt;If a particular pattern was considered the correct solution for a certain problem, he wanted to use it.&lt;/p&gt;
&lt;p&gt;It was, as he describes it, the classic:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“When you have a hammer, everything looks like a nail.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Experience changed that.&lt;/p&gt;
&lt;p&gt;He became much more pragmatic.&lt;/p&gt;
&lt;p&gt;Not every problem needs the canonical solution.&lt;/p&gt;
&lt;p&gt;And sometimes a reasonable solution today is much more valuable than a perfect architecture that might take a year to complete.&lt;/p&gt;
&lt;p&gt;That doesn't mean he became anti-architecture.&lt;/p&gt;
&lt;p&gt;Quite the opposite.&lt;/p&gt;
&lt;p&gt;He still considers principles such as SOLID, inversion of control and separation between UI and application logic extremely valuable.&lt;/p&gt;
&lt;p&gt;The difference is in what architecture is supposed to achieve.&lt;/p&gt;
&lt;p&gt;For Valentyn, architecture isn't about making code perfect from day one.&lt;/p&gt;
&lt;p&gt;It is about &lt;strong&gt;making change affordable&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A system should be able to contain shortcuts and temporary compromises without turning them into permanent problems.&lt;/p&gt;
&lt;p&gt;Good boundaries and clear dependencies allow a team to move quickly today while retaining a realistic path to refactor, extend and improve the system tomorrow.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-organizational-problems-become-code&quot;&gt;When Organizational Problems Become Code&lt;/h3&gt;
&lt;p&gt;One of Valentyn's most interesting ideas appears in his article &lt;em&gt;Monuments to Friction: How Organizational Trauma Compiles into Code&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The idea came from seeing software systems whose structures felt strangely unnatural.&lt;/p&gt;
&lt;p&gt;You might encounter an engine, a content pipeline, a game-logic library, a lobby library and several other layers.&lt;/p&gt;
&lt;p&gt;Then you try to make a seemingly simple change.&lt;/p&gt;
&lt;p&gt;Suddenly, you have to move through several unrelated components and ownership boundaries.&lt;/p&gt;
&lt;p&gt;The obvious question becomes:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why is the system structured this way?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Often, the answer isn't technical.&lt;/p&gt;
&lt;p&gt;It is historical.&lt;/p&gt;
&lt;p&gt;Perhaps the engine team was located in another country and rarely communicated with the game or lobby teams.&lt;/p&gt;
&lt;p&gt;Perhaps two product managers wanted separate ownership boundaries.&lt;/p&gt;
&lt;p&gt;Perhaps nobody properly owned the content pipeline, so it gradually became a neglected shared dependency.&lt;/p&gt;
&lt;p&gt;Over time, those organizational decisions become technical constraints.&lt;/p&gt;
&lt;p&gt;The software becomes a kind of historical record of old communication problems, ownership boundaries and management structures.&lt;/p&gt;
&lt;p&gt;What once made sense for an organization can remain embedded in the architecture long after the original reason has disappeared.&lt;/p&gt;
&lt;p&gt;In that sense, code doesn't only reflect technical decisions.&lt;/p&gt;
&lt;p&gt;Sometimes it reflects the history of the organization that created it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;collaboration-isn-t-the-same-as-tribal-knowledge&quot;&gt;Collaboration Isn't the Same as Tribal Knowledge&lt;/h3&gt;
&lt;p&gt;Valentyn has also challenged the idea that teams can simply rely on collaboration instead of documentation.&lt;/p&gt;
&lt;p&gt;A common argument against documentation is that it eventually becomes stale.&lt;/p&gt;
&lt;p&gt;He sees that differently.&lt;/p&gt;
&lt;p&gt;The problem isn't necessarily documentation itself.&lt;/p&gt;
&lt;p&gt;It is often the assumption that documentation means writing huge manuals describing every detail of a system.&lt;/p&gt;
&lt;p&gt;What matters more is preserving decisions.&lt;/p&gt;
&lt;p&gt;Why was something implemented this way?&lt;/p&gt;
&lt;p&gt;What alternatives were considered?&lt;/p&gt;
&lt;p&gt;What constraints existed at the time?&lt;/p&gt;
&lt;p&gt;What trade-offs were accepted?&lt;/p&gt;
&lt;p&gt;Sometimes a few lines are enough.&lt;/p&gt;
&lt;p&gt;Without that context, teams can replace documentation with what they call collaboration.&lt;/p&gt;
&lt;p&gt;In practice, that can mean asking around until someone finds the one person who remembers why a particular piece of the system works the way it does.&lt;/p&gt;
&lt;p&gt;But people leave.&lt;/p&gt;
&lt;p&gt;People forget.&lt;/p&gt;
&lt;p&gt;And eventually the knowledge disappears.&lt;/p&gt;
&lt;p&gt;Good collaboration should spread knowledge rather than make a team dependent on access to specific individuals.&lt;/p&gt;
&lt;p&gt;Documentation helps turn knowledge stored in people's heads into knowledge the team can actually retain.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-different-technology-stacks-meet&quot;&gt;When Different Technology Stacks Meet&lt;/h3&gt;
&lt;p&gt;Valentyn's experience also includes embedding web interfaces inside native desktop applications.&lt;/p&gt;
&lt;p&gt;At first glance, it can seem like an obvious way to combine the strengths of both worlds.&lt;/p&gt;
&lt;p&gt;A native application might be written in a compiled, statically typed language using native libraries and platform APIs.&lt;/p&gt;
&lt;p&gt;The web interface can then bring HTML, CSS and JavaScript into the application.&lt;/p&gt;
&lt;p&gt;But that combination introduces another layer of complexity.&lt;/p&gt;
&lt;p&gt;The team now needs to understand both sides.&lt;/p&gt;
&lt;p&gt;Eventually, problems cross the boundary.&lt;/p&gt;
&lt;p&gt;Data exchange.&lt;/p&gt;
&lt;p&gt;Lifecycle management.&lt;/p&gt;
&lt;p&gt;Threading.&lt;/p&gt;
&lt;p&gt;Rendering.&lt;/p&gt;
&lt;p&gt;Focus handling.&lt;/p&gt;
&lt;p&gt;Packaging.&lt;/p&gt;
&lt;p&gt;Platform-specific behaviour.&lt;/p&gt;
&lt;p&gt;Debugging.&lt;/p&gt;
&lt;p&gt;Valentyn's point isn't that embedding a web UI is inherently wrong.&lt;/p&gt;
&lt;p&gt;The real question is whether the benefits of web technology justify the additional complexity—and whether the team has enough knowledge across the layers to confidently own that complexity.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;exploring-local-ai&quot;&gt;Exploring Local AI&lt;/h3&gt;
&lt;p&gt;More recently, Valentyn has been experimenting with local AI and tool calling.&lt;/p&gt;
&lt;p&gt;One project involved prototyping an AI-enabled console that could understand a user's intent and invoke appropriate tools.&lt;/p&gt;
&lt;p&gt;Instead of requiring a developer to remember shell commands and parameters, a user could describe what they wanted in natural language.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“Find all text files and add a sequential number to their filename.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The goal wasn't to build an AI that writes essays.&lt;/p&gt;
&lt;p&gt;The model needed to understand intent, select tools and operate reliably within a constrained environment.&lt;/p&gt;
&lt;p&gt;That required something lightweight and local.&lt;/p&gt;
&lt;p&gt;But the experiment also exposed an important reality of local AI development.&lt;/p&gt;
&lt;p&gt;Many of the practical limitations aren't always clearly explained.&lt;/p&gt;
&lt;p&gt;Developers may need to piece information together from documentation, blog posts, examples and sometimes the source code itself.&lt;/p&gt;
&lt;p&gt;Context handling.&lt;/p&gt;
&lt;p&gt;Tool-call behaviour.&lt;/p&gt;
&lt;p&gt;Model-specific constraints.&lt;/p&gt;
&lt;p&gt;Runtime assumptions.&lt;/p&gt;
&lt;p&gt;These details become much more important once a project moves beyond a simple demonstration.&lt;/p&gt;
&lt;p&gt;For developers beginning with local AI, Valentyn recommends experimenting at the tooling level first.&lt;/p&gt;
&lt;p&gt;Run a small model.&lt;/p&gt;
&lt;p&gt;Make a few requests.&lt;/p&gt;
&lt;p&gt;Inspect the client code.&lt;/p&gt;
&lt;p&gt;Understand how context and inference actually work.&lt;/p&gt;
&lt;p&gt;The goal is to build a realistic mental model rather than relying on marketing claims or high-level abstractions.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;ai-won-t-replace-engineering-judgment&quot;&gt;AI Won't Replace Engineering Judgment&lt;/h3&gt;
&lt;p&gt;Despite working with AI, Valentyn doesn't believe the fundamental role of a software engineer is about to disappear.&lt;/p&gt;
&lt;p&gt;Engineers still need to understand software.&lt;/p&gt;
&lt;p&gt;They need to understand hardware and systems.&lt;/p&gt;
&lt;p&gt;They need to understand the domain they're working in.&lt;/p&gt;
&lt;p&gt;And, perhaps most importantly, they need to understand people.&lt;/p&gt;
&lt;p&gt;AI can accelerate implementation.&lt;/p&gt;
&lt;p&gt;It doesn't remove the need for technical judgment.&lt;/p&gt;
&lt;p&gt;In fact, Valentyn sees an interesting possibility emerging.&lt;/p&gt;
&lt;p&gt;As implementation becomes faster, the boundary between software engineering and product management may become less rigid.&lt;/p&gt;
&lt;p&gt;Engineers could spend more time exploring problems, testing ideas and working directly with users instead of treating product definition and implementation as completely separate activities.&lt;/p&gt;
&lt;p&gt;The most valuable skills remain surprisingly fundamental:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Understanding systems.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Understanding people.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Making good trade-offs.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recognizing when a technically correct solution is solving the wrong problem.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;mental-models-are-useful-but-dangerous&quot;&gt;Mental Models Are Useful—but Dangerous&lt;/h3&gt;
&lt;p&gt;Valentyn also thinks deeply about mental models.&lt;/p&gt;
&lt;p&gt;A mental model is essentially a simplified map of a system.&lt;/p&gt;
&lt;p&gt;At its best, it allows an engineer to recognize patterns quickly.&lt;/p&gt;
&lt;p&gt;Instead of decomposing every problem from first principles, developers can draw on previous experience and adapt an existing model.&lt;/p&gt;
&lt;p&gt;That can save enormous amounts of effort.&lt;/p&gt;
&lt;p&gt;But there is a danger.&lt;/p&gt;
&lt;p&gt;The model can be wrong.&lt;/p&gt;
&lt;p&gt;If an engineer misunderstands how a system actually behaves, the mental model can create confidence while leading them in the wrong direction.&lt;/p&gt;
&lt;p&gt;Every new symptom then gets interpreted through the faulty map.&lt;/p&gt;
&lt;p&gt;For Valentyn, mental models should therefore be treated as &lt;strong&gt;working hypotheses&lt;/strong&gt;, not absolute truth.&lt;/p&gt;
&lt;p&gt;They help engineers move faster.&lt;/p&gt;
&lt;p&gt;But those models need to be checked against the real system—especially when debugging unfamiliar behaviour or making architectural decisions.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-event-driven-lesson&quot;&gt;The Event-Driven Lesson&lt;/h3&gt;
&lt;p&gt;One technical lesson significantly changed how Valentyn approaches architecture: be cautious with event-based systems.&lt;/p&gt;
&lt;p&gt;Earlier in his career, he was a strong fan of event-driven architectures.&lt;/p&gt;
&lt;p&gt;They appeared elegant.&lt;/p&gt;
&lt;p&gt;Components were loosely coupled.&lt;/p&gt;
&lt;p&gt;Communication seemed simple.&lt;/p&gt;
&lt;p&gt;Adding new behaviour seemed easy.&lt;/p&gt;
&lt;p&gt;But experience with projects where event-driven interactions became difficult to debug and extend changed his perspective.&lt;/p&gt;
&lt;p&gt;The problem is that events can conceal relationships between modules.&lt;/p&gt;
&lt;p&gt;It becomes harder to answer basic questions:&lt;/p&gt;
&lt;p&gt;Who triggered this?&lt;/p&gt;
&lt;p&gt;In what order did things happen?&lt;/p&gt;
&lt;p&gt;What state is the system actually in?&lt;/p&gt;
&lt;p&gt;Once timing enters the picture, subtle bugs can become difficult to reproduce.&lt;/p&gt;
&lt;p&gt;Today, Valentyn prefers explicit calls, state machines, or approaches somewhere in between.&lt;/p&gt;
&lt;p&gt;He wants important interactions to remain visible in the code.&lt;/p&gt;
&lt;p&gt;The implementation should describe how the system behaves rather than forcing developers to reconstruct that behaviour from a network of event subscriptions.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;technical-excellence-must-serve-the-user&quot;&gt;Technical Excellence Must Serve the User&lt;/h3&gt;
&lt;p&gt;Valentyn describes his approach to engineering trade-offs as pragmatic.&lt;/p&gt;
&lt;p&gt;Software exists for users.&lt;/p&gt;
&lt;p&gt;If the software solves their problem and users are satisfied, that matters more than whether the implementation is aesthetically perfect.&lt;/p&gt;
&lt;p&gt;But that doesn't mean maintainability can be ignored.&lt;/p&gt;
&lt;p&gt;Poorly structured code eventually slows development, makes changes riskier and consumes engineering time.&lt;/p&gt;
&lt;p&gt;The balance is therefore about prioritizing user value while deliberately reserving enough effort to keep the codebase healthy.&lt;/p&gt;
&lt;p&gt;Good architectural boundaries, modular structures and clear dependencies help because they allow teams to move quickly without turning every shortcut into permanent technical debt.&lt;/p&gt;
&lt;p&gt;As Valentyn puts it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“Technical excellence is most useful when it supports delivery, not when it competes with it.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-makes-a-developer-tool-useful-&quot;&gt;What Makes a Developer Tool Useful?&lt;/h3&gt;
&lt;p&gt;For Valentyn, the answer starts with a simple principle:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It has to solve an actual developer need.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A tool that reduces repetitive work, helps someone understand a codebase faster, finds problems or improves code quality is already providing value.&lt;/p&gt;
&lt;p&gt;Functionality comes first.&lt;/p&gt;
&lt;p&gt;He also believes developer tools should remain as simple as possible.&lt;/p&gt;
&lt;p&gt;Not every tool needs to become a platform.&lt;/p&gt;
&lt;p&gt;Not every tool needs to solve every problem in the development lifecycle.&lt;/p&gt;
&lt;p&gt;Sometimes a small tool that does one important thing well is more valuable than a huge system with dozens of features nobody actually needs.&lt;/p&gt;
&lt;p&gt;Usability matters.&lt;/p&gt;
&lt;p&gt;But a beautiful interface cannot compensate for a tool that doesn't solve a meaningful problem.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;rethinking-how-humans-interact-with-computers&quot;&gt;Rethinking How Humans Interact With Computers&lt;/h3&gt;
&lt;p&gt;Looking ahead, one area particularly interests Valentyn:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;human-computer interaction.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For decades, the dominant model has remained relatively stable.&lt;/p&gt;
&lt;p&gt;Keyboard.&lt;/p&gt;
&lt;p&gt;Mouse.&lt;/p&gt;
&lt;p&gt;Display.&lt;/p&gt;
&lt;p&gt;Voice has been added in some situations, but the fundamental interaction model remains familiar.&lt;/p&gt;
&lt;p&gt;Valentyn doesn't think that is necessarily the final form of interaction with computers.&lt;/p&gt;
&lt;p&gt;He is interested in systems that reduce the translation effort between what a person wants to accomplish and what the computer needs in order to accomplish it.&lt;/p&gt;
&lt;p&gt;One possibility could be a semantic shell that understands intent instead of requiring users to remember exact commands.&lt;/p&gt;
&lt;p&gt;Another could involve entirely new forms of input and output hardware.&lt;/p&gt;
&lt;p&gt;The common idea is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Make computers understand what people are trying to do, rather than forcing people to translate their intentions into the computer's language.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learn-beyond-the-boundaries-of-your-job&quot;&gt;Learn Beyond the Boundaries of Your Job&lt;/h3&gt;
&lt;p&gt;Valentyn's advice to developers is closely connected to the philosophy that has shaped his own career.&lt;/p&gt;
&lt;p&gt;Keep learning.&lt;/p&gt;
&lt;p&gt;But don't limit that learning to the immediate boundaries of your job.&lt;/p&gt;
&lt;p&gt;Learn to own things rather than simply complete assigned tasks.&lt;/p&gt;
&lt;p&gt;Understand the whole system.&lt;/p&gt;
&lt;p&gt;Understand the constraints around it.&lt;/p&gt;
&lt;p&gt;Understand the consequences of your decisions.&lt;/p&gt;
&lt;p&gt;And learn subjects that may initially appear unrelated.&lt;/p&gt;
&lt;p&gt;Hardware.&lt;/p&gt;
&lt;p&gt;Human psychology.&lt;/p&gt;
&lt;p&gt;Different technical domains.&lt;/p&gt;
&lt;p&gt;Different areas of engineering.&lt;/p&gt;
&lt;p&gt;The reason is that engineering judgment comes partly from having a large collection of mental models and experiences to draw from.&lt;/p&gt;
&lt;p&gt;A piece of knowledge that appears irrelevant for years can suddenly become the missing piece of a problem.&lt;/p&gt;
&lt;p&gt;Architecture and system design aren't simply about knowing patterns.&lt;/p&gt;
&lt;p&gt;They are about recognizing situations, understanding trade-offs and connecting ideas from different areas.&lt;/p&gt;
&lt;p&gt;The broader the foundation, the better the decisions can become.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-software-engineer-to-systems-thinker&quot;&gt;From Software Engineer to Systems Thinker&lt;/h3&gt;
&lt;p&gt;After more than 15 years in software engineering, Valentyn's journey has moved beyond simply learning how to write code.&lt;/p&gt;
&lt;p&gt;His experience has taught him to question why systems are structured the way they are.&lt;/p&gt;
&lt;p&gt;To look beyond technical elegance and understand users.&lt;/p&gt;
&lt;p&gt;To recognize organizational history hidden inside architecture.&lt;/p&gt;
&lt;p&gt;To preserve knowledge instead of relying on tribal memory.&lt;/p&gt;
&lt;p&gt;To use mental models without becoming trapped by them.&lt;/p&gt;
&lt;p&gt;To treat AI as an accelerator rather than a replacement for engineering judgment.&lt;/p&gt;
&lt;p&gt;And to value pragmatic architecture that makes future change possible.&lt;/p&gt;
&lt;p&gt;Perhaps the most consistent theme throughout his journey is curiosity.&lt;/p&gt;
&lt;p&gt;The same curiosity that once led a young Valentyn to read computer books in a library before he even had regular access to a computer continues to drive him today.&lt;/p&gt;
&lt;p&gt;Only now, the questions are much bigger.&lt;/p&gt;
&lt;p&gt;Not simply:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How does this computer work?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How should people and computers work together?&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-valentyn-ivanov&quot;&gt;About Valentyn Ivanov&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Valentyn Ivanov&lt;/strong&gt; is a software engineer with more than 15 years of experience building complex developer tools, data-processing systems, graphics platforms, cloud-connected applications and cross-platform products.&lt;/p&gt;
&lt;p&gt;His interests include software architecture, C++, developer tools, collaboration, system design, local AI and human-computer interaction.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/ExperiencingBriefTechnicalSuperiority&quot;&gt;View Valentyn's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-6&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30269/from-code-to-systems-thinking-valentyn-ivanovs-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 11:57:36 +0000</pubDate>
</item>
<item>
<title>From Chatbots to Autonomous Agents — David San Nicolás Montero’s Developer Journey</title>
<link>https://coderlegion.com/30260/from-chatbots-to-autonomous-agents-david-san-nicolas-monteros-developer-journey</link>
<description>&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;“The best user interface for an AI is the one you don't have to chat with.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;David San Nicolás Montero's journey into autonomous AI agents did not begin with ChatGPT.&lt;/p&gt;
&lt;p&gt;It began with a cassette-tape Spectrum 128K.&lt;/p&gt;
&lt;p&gt;As a child, David begged his father for a computer. When he finally got one, there was no internet, no modern IDE and no AI assistant waiting to generate code.&lt;/p&gt;
&lt;p&gt;There was a BASIC programming book.&lt;/p&gt;
&lt;p&gt;And video games that could take 45 minutes to load.&lt;/p&gt;
&lt;p&gt;Eventually, programming became more interesting than waiting for the games.&lt;/p&gt;
&lt;p&gt;That early curiosity eventually took David from BASIC and HTML to electronics, firmware, robotics, artificial intelligence and, eventually, autonomous software agents capable of interacting with the real world.&lt;/p&gt;
&lt;p&gt;Today, he is the &lt;strong&gt;Founder of AutomaticIA&lt;/strong&gt; and the creator of &lt;strong&gt;Zyro Workspace&lt;/strong&gt;, an open-source Node.js SDK and platform for building autonomous AI agents around Google Workspace and business workflows.&lt;/p&gt;
&lt;p&gt;But the most interesting part of his approach isn't simply using AI.&lt;/p&gt;
&lt;p&gt;It is the architecture he puts &lt;strong&gt;around&lt;/strong&gt; AI.&lt;/p&gt;
&lt;h3 id=&quot;from-basic-to-electronics-and-firmware&quot;&gt;From BASIC to Electronics and Firmware&lt;/h3&gt;
&lt;p&gt;David's first real programming success came when he was 15.&lt;/p&gt;
&lt;p&gt;He built a website for his father's company using HTML.&lt;/p&gt;
&lt;p&gt;There was no budget for hosting, so he turned his own PC into a web server and hosted the site through a dial-up modem.&lt;/p&gt;
&lt;p&gt;His interest in technology then led him toward electronics engineering.&lt;/p&gt;
&lt;p&gt;His generation of developers also had a different relationship with hardware. David learned firmware programming in Assembly, something he believes gave him an understanding of memory and data flow that continues to influence how he builds software today.&lt;/p&gt;
&lt;p&gt;That foundation eventually led him toward robotics.&lt;/p&gt;
&lt;p&gt;For the last decade, he has worked across firmware, software and, increasingly, artificial intelligence.&lt;/p&gt;
&lt;h3 id=&quot;when-ai-became-physical&quot;&gt;When AI Became Physical&lt;/h3&gt;
&lt;p&gt;Robotics changed the way David thought about AI.&lt;/p&gt;
&lt;p&gt;Robotics isn't just software.&lt;/p&gt;
&lt;p&gt;It combines mechanics, electronics, firmware, software, communication networks and increasingly AI.&lt;/p&gt;
&lt;p&gt;That complexity made AI interesting to David for a reason that goes beyond conversation.&lt;/p&gt;
&lt;p&gt;He wanted AI to &lt;strong&gt;do things&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;His first AI prototypes were designed around predictive maintenance.&lt;/p&gt;
&lt;p&gt;A physical trigger could initiate an image analysis of robot components, allowing the system to help identify potential problems and reduce preventive maintenance work.&lt;/p&gt;
&lt;p&gt;That experience demonstrated something important:&lt;/p&gt;
&lt;p&gt;AI didn't have to remain a chatbot.&lt;/p&gt;
&lt;p&gt;It could interact with physical systems and participate in real processes.&lt;/p&gt;
&lt;p&gt;That idea eventually became central to his work.&lt;/p&gt;
&lt;h3 id=&quot;the-chatbot-that-started-zyro&quot;&gt;The Chatbot That Started Zyro&lt;/h3&gt;
&lt;p&gt;The origins of Zyro came from a surprisingly ordinary workplace problem.&lt;/p&gt;
&lt;p&gt;More than two years ago, David became involved as a union representative.&lt;/p&gt;
&lt;p&gt;He discovered that colleagues repeatedly asked the same questions, consuming time that could otherwise be spent preparing for negotiations.&lt;/p&gt;
&lt;p&gt;So he built a chatbot with a &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; database.&lt;/p&gt;
&lt;p&gt;Employees could ask questions anonymously instead of repeatedly asking David directly.&lt;/p&gt;
&lt;p&gt;The project attracted attention outside his immediate workplace.&lt;/p&gt;
&lt;p&gt;Someone within the union's industrial federation saw what he had built and offered David an opportunity to help optimize administrative processes using AI.&lt;/p&gt;
&lt;p&gt;That changed the scale of the problem he was trying to solve.&lt;/p&gt;
&lt;p&gt;He began seeing the same kinds of inefficiencies inside administrative offices and law firms.&lt;/p&gt;
&lt;p&gt;And that led to the first version of &lt;strong&gt;Zyro Assistant&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;from-answering-questions-to-doing-the-work&quot;&gt;From Answering Questions to Doing the Work&lt;/h3&gt;
&lt;p&gt;The difference between a chatbot and an autonomous agent became clear to David through process optimization.&lt;/p&gt;
&lt;p&gt;A chatbot answers questions.&lt;/p&gt;
&lt;p&gt;An agent has tools.&lt;/p&gt;
&lt;p&gt;It can take action.&lt;/p&gt;
&lt;p&gt;But David believes autonomy needs to be carefully designed.&lt;/p&gt;
&lt;p&gt;People are not necessarily psychologically prepared to let an AI perform tasks that they previously controlled themselves.&lt;/p&gt;
&lt;p&gt;So Zyro doesn't treat every action equally.&lt;/p&gt;
&lt;p&gt;The system can have significant autonomy for creative and informational tasks.&lt;/p&gt;
&lt;p&gt;For example, it can prepare a report before a meeting by examining the agenda, gathering information about attendees, reviewing previous interactions and identifying pending items.&lt;/p&gt;
&lt;p&gt;But destructive actions are different.&lt;/p&gt;
&lt;p&gt;Deleting an event or document requires confirmation.&lt;/p&gt;
&lt;p&gt;Sending an email or making a call can require human permission.&lt;/p&gt;
&lt;p&gt;For David, autonomy isn't simply about removing humans from the loop.&lt;/p&gt;
&lt;p&gt;It is about deciding &lt;strong&gt;where the loop should remain&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;building-automaticia&quot;&gt;Building AutomaticIA&lt;/h3&gt;
&lt;p&gt;AutomaticIA wasn't David's first business.&lt;/p&gt;
&lt;p&gt;Fifteen years ago, he founded an electronics engineering company, SGS Automatismos e Ingeniería.&lt;/p&gt;
&lt;p&gt;Later, he also became involved in a driving-school business outside the technology sector.&lt;/p&gt;
&lt;p&gt;These experiences helped him understand something important about automation:&lt;/p&gt;
&lt;p&gt;The value isn't in having impressive technology.&lt;/p&gt;
&lt;p&gt;The value is in how much real work it removes and what economic value it creates.&lt;/p&gt;
&lt;p&gt;After implementing automation projects in his own businesses and seeing the time savings and financial impact, David decided to create AutomaticIA.&lt;/p&gt;
&lt;p&gt;The goal is to help Spanish companies adopt advanced business technology through AI consulting and custom autonomous agents.&lt;/p&gt;
&lt;p&gt;His vision is to become a bridge between traditional business workflows and systems capable of taking over repetitive administrative work.&lt;/p&gt;
&lt;h3 id=&quot;zyro-workspace&quot;&gt;Zyro Workspace&lt;/h3&gt;
&lt;p&gt;The first Zyro prototype was built almost entirely inside Google Drive using Google Apps Script.&lt;/p&gt;
&lt;p&gt;David spent months analyzing bottlenecks across different departments and developing specific applications.&lt;/p&gt;
&lt;p&gt;Eventually, he noticed a common pattern.&lt;/p&gt;
&lt;p&gt;Many organizations already had powerful tools inside Google Workspace.&lt;/p&gt;
&lt;p&gt;But employees weren't necessarily using them.&lt;/p&gt;
&lt;p&gt;The problem wasn't always a lack of functionality.&lt;/p&gt;
&lt;p&gt;It was the learning curve.&lt;/p&gt;
&lt;p&gt;People were too busy to stop their work, learn another application and change their established habits.&lt;/p&gt;
&lt;p&gt;Zyro approached the problem differently.&lt;/p&gt;
&lt;p&gt;Instead of asking employees to learn another tool, it allows them to describe what they want and lets the agent interact with the underlying Google ecosystem.&lt;/p&gt;
&lt;p&gt;Drive, Calendar, Slides and other services become tools the agent can use.&lt;/p&gt;
&lt;p&gt;The interface becomes simpler:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tell Zyro what you need.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;why-node-js-&quot;&gt;Why Node.js?&lt;/h3&gt;
&lt;p&gt;David's choice of Node.js began pragmatically.&lt;/p&gt;
&lt;p&gt;Zyro's original Google Apps Script implementation already used JavaScript and Google's V8 engine.&lt;/p&gt;
&lt;p&gt;When the system grew and needed to move into Google Cloud and Firebase, Node.js was the natural evolution.&lt;/p&gt;
&lt;p&gt;But as the architecture became more sophisticated, David discovered technical reasons to stay with it.&lt;/p&gt;
&lt;p&gt;Modern autonomous agents rely heavily on &lt;strong&gt;Function Calling&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The LLM reasons about what it needs to do and returns structured data describing the intended action.&lt;/p&gt;
&lt;p&gt;Node.js is well suited to handling those JSON-based workflows.&lt;/p&gt;
&lt;p&gt;There is another important reason.&lt;/p&gt;
&lt;p&gt;Agents spend a lot of time waiting.&lt;/p&gt;
&lt;p&gt;Waiting for an LLM response.&lt;/p&gt;
&lt;p&gt;Waiting for Google Drive.&lt;/p&gt;
&lt;p&gt;Waiting for Calendar.&lt;/p&gt;
&lt;p&gt;Waiting for a webhook.&lt;/p&gt;
&lt;p&gt;Waiting for a phone call to finish.&lt;/p&gt;
&lt;p&gt;Node.js's non-blocking event loop makes it possible to coordinate many of these asynchronous operations without blocking the server.&lt;/p&gt;
&lt;p&gt;For David, Node.js becomes the nervous system connecting AI reasoning to the outside world.&lt;/p&gt;
&lt;h3 id=&quot;the-ai-doesn-t-actually-execute-the-function&quot;&gt;The AI Doesn't Actually Execute the Function&lt;/h3&gt;
&lt;p&gt;David believes one of the biggest misunderstandings around LLM Function Calling is the idea that the AI is actually executing the function.&lt;/p&gt;
&lt;p&gt;It isn't.&lt;/p&gt;
&lt;p&gt;The model is isolated.&lt;/p&gt;
&lt;p&gt;It reasons about what it wants to do and returns structured JSON.&lt;/p&gt;
&lt;p&gt;The application receives that intent.&lt;/p&gt;
&lt;p&gt;The backend validates it.&lt;/p&gt;
&lt;p&gt;The backend executes the actual operation.&lt;/p&gt;
&lt;p&gt;Then the result is returned to the model.&lt;/p&gt;
&lt;p&gt;This distinction is fundamental to David's architecture.&lt;/p&gt;
&lt;p&gt;The AI proposes.&lt;/p&gt;
&lt;p&gt;The infrastructure decides whether and how the action actually happens.&lt;/p&gt;
&lt;h3 id=&quot;from-trusting-ai-to-trusting-infrastructure&quot;&gt;From Trusting AI to Trusting Infrastructure&lt;/h3&gt;
&lt;p&gt;This leads directly to David's approach to &lt;strong&gt;Inversion of Control&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Instead of trusting the AI to behave correctly, he designs the infrastructure so that incorrect AI behaviour cannot automatically break the system.&lt;/p&gt;
&lt;p&gt;The AI doesn't receive master administrator credentials.&lt;/p&gt;
&lt;p&gt;Instead, the backend executes operations using the active user's OAuth permissions.&lt;/p&gt;
&lt;p&gt;If the user cannot access a confidential folder, the AI cannot access it either.&lt;/p&gt;
&lt;p&gt;The infrastructure enforces the boundary.&lt;/p&gt;
&lt;p&gt;This creates a powerful principle:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Don't make the AI trustworthy. Make the infrastructure enforce trust.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The model can make mistakes.&lt;/p&gt;
&lt;p&gt;The system around it should still remain deterministic.&lt;/p&gt;
&lt;h3 id=&quot;human-approval-where-it-matters&quot;&gt;Human Approval Where It Matters&lt;/h3&gt;
&lt;p&gt;Zyro also separates creative tasks from destructive tasks.&lt;/p&gt;
&lt;p&gt;The agent can work autonomously when preparing information, analysing documents or drafting content.&lt;/p&gt;
&lt;p&gt;But when an action could cause irreversible consequences, the backend can pause execution.&lt;/p&gt;
&lt;p&gt;For example, if the agent decides that a calendar event should be deleted, the system can intercept that intention and ask the human to confirm it.&lt;/p&gt;
&lt;p&gt;The model doesn't directly control the action.&lt;/p&gt;
&lt;p&gt;The architecture controls the execution flow.&lt;/p&gt;
&lt;h3 id=&quot;making-agents-event-driven&quot;&gt;Making Agents Event-Driven&lt;/h3&gt;
&lt;p&gt;David is also exploring event-driven architecture because autonomous agents shouldn't always wait for a person to ask them something.&lt;/p&gt;
&lt;p&gt;Traditional request-response software works like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;User → Request → Server → Response&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But real-world processes aren't always synchronous.&lt;/p&gt;
&lt;p&gt;A phone call can take five minutes.&lt;/p&gt;
&lt;p&gt;A background task can take ten minutes.&lt;/p&gt;
&lt;p&gt;An external event can happen hours after the original request.&lt;/p&gt;
&lt;p&gt;David's event-driven approach allows Zyro to dispatch a long-running task and continue doing other work.&lt;/p&gt;
&lt;p&gt;When the task finishes, an event wakes the relevant part of the system.&lt;/p&gt;
&lt;p&gt;One example is Zyro's integration with a multi-agent PBX.&lt;/p&gt;
&lt;p&gt;Zyro can initiate a phone call and then return to other work.&lt;/p&gt;
&lt;p&gt;When the call finishes, the PBX sends a webhook.&lt;/p&gt;
&lt;p&gt;Zyro receives the transcript, processes what happened and can then generate a summary or follow-up action.&lt;/p&gt;
&lt;p&gt;The agent isn't simply responding to users.&lt;/p&gt;
&lt;p&gt;It is responding to &lt;strong&gt;events in the world&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;giving-ai-eyes-and-hands&quot;&gt;Giving AI Eyes and Hands&lt;/h3&gt;
&lt;p&gt;David is also experimenting with RPA extensions that allow Zyro to interact with websites.&lt;/p&gt;
&lt;p&gt;Rather than relying exclusively on DOM analysis, his current approach in private beta uses computer vision to understand what is displayed on the user's screen.&lt;/p&gt;
&lt;p&gt;The system can capture the active tab, have an AI model analyse the interface and determine where an interaction should happen.&lt;/p&gt;
&lt;p&gt;The browser extension can then dispatch mouse events to the relevant coordinates.&lt;/p&gt;
&lt;p&gt;The goal is to give the agent something closer to &lt;strong&gt;eyes and hands&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;David is clear that these RPA features are still in testing and have not yet gone through Google's official validation process.&lt;/p&gt;
&lt;h3 id=&quot;the-hardest-problem-debugging-something-non-deterministic&quot;&gt;The Hardest Problem: Debugging Something Non-Deterministic&lt;/h3&gt;
&lt;p&gt;Building a simple AI agent is relatively easy.&lt;/p&gt;
&lt;p&gt;Building one that can safely coordinate dozens of functions is a different problem.&lt;/p&gt;
&lt;p&gt;Zyro needs to work across RPA, phone calls and Google Workspace while dealing with the unpredictable behaviour of LLMs.&lt;/p&gt;
&lt;p&gt;Traditional software debugging gives you a stack trace.&lt;/p&gt;
&lt;p&gt;AI failures can be statistical.&lt;/p&gt;
&lt;p&gt;The same request can succeed once and fail differently another time.&lt;/p&gt;
&lt;p&gt;A model might generate a correct JSON parameter.&lt;/p&gt;
&lt;p&gt;Later, it might hallucinate an ID that doesn't exist.&lt;/p&gt;
&lt;p&gt;David's solution is to surround the unpredictable AI component with deterministic infrastructure.&lt;/p&gt;
&lt;p&gt;Validation layers intercept errors.&lt;/p&gt;
&lt;p&gt;The system can return failures to the model and allow it to correct its own output.&lt;/p&gt;
&lt;p&gt;Watchdogs and circuit breakers prevent self-healing loops from continuing indefinitely and consuming excessive tokens.&lt;/p&gt;
&lt;p&gt;This leads to one of David's biggest lessons:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Building successful AI software is, ironically, hardly about AI.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The intelligence of the underlying model matters.&lt;/p&gt;
&lt;p&gt;But the reliability of the system depends heavily on the traditional engineering surrounding it.&lt;/p&gt;
&lt;h3 id=&quot;the-architecture-matters-more-than-the-model&quot;&gt;The Architecture Matters More Than the Model&lt;/h3&gt;
&lt;p&gt;As David's experience with Zyro grew, he became increasingly convinced that AI should not sit at the structural foundation of a software system.&lt;/p&gt;
&lt;p&gt;Instead, robust traditional software architecture should form the foundation.&lt;/p&gt;
&lt;p&gt;AI becomes an engine attached to it.&lt;/p&gt;
&lt;p&gt;That approach also changes how developers should think about context.&lt;/p&gt;
&lt;p&gt;A more powerful model doesn't automatically solve everything.&lt;/p&gt;
&lt;p&gt;Developers need to understand context windows, inference speed and token consumption.&lt;/p&gt;
&lt;p&gt;If too much information is injected into the model, systems become slow and expensive.&lt;/p&gt;
&lt;p&gt;Eventually, the model can lose important instructions as the context becomes overloaded.&lt;/p&gt;
&lt;p&gt;For David, context management is therefore not just prompt engineering.&lt;/p&gt;
&lt;p&gt;It is an architectural concern.&lt;/p&gt;
&lt;h3 id=&quot;where-autonomous-agents-are-going&quot;&gt;Where Autonomous Agents Are Going&lt;/h3&gt;
&lt;p&gt;David believes AI agents already have much of the technical capability required for far greater autonomy.&lt;/p&gt;
&lt;p&gt;As people become more comfortable trusting these systems, he expects agents to take over an increasing number of tasks currently performed by humans through computers.&lt;/p&gt;
&lt;p&gt;That raises an interesting question about the future role of developers.&lt;/p&gt;
&lt;p&gt;If AI can eventually implement software better and faster than humans, what remains?&lt;/p&gt;
&lt;p&gt;For David, the answer is imagination and architecture.&lt;/p&gt;
&lt;p&gt;Humans will still need to decide what should exist, how systems should be structured and what problems are worth solving.&lt;/p&gt;
&lt;h3 id=&quot;the-future-of-automaticia-and-zyro&quot;&gt;The Future of AutomaticIA and Zyro&lt;/h3&gt;
&lt;p&gt;David's ambition extends well beyond a single assistant.&lt;/p&gt;
&lt;p&gt;He sees Zyro becoming the central orchestrator for a wider ecosystem of business applications.&lt;/p&gt;
&lt;p&gt;ERP.&lt;/p&gt;
&lt;p&gt;CRM.&lt;/p&gt;
&lt;p&gt;BI.&lt;/p&gt;
&lt;p&gt;CPM.&lt;/p&gt;
&lt;p&gt;BPM.&lt;/p&gt;
&lt;p&gt;And other systems involved in business operations.&lt;/p&gt;
&lt;p&gt;AutomaticIA would provide the consulting and distribution layer, helping companies implement and optimize these systems.&lt;/p&gt;
&lt;p&gt;The roadmap already includes plans for proprietary ERP, CRM and BI capabilities connected through Zyro.&lt;/p&gt;
&lt;p&gt;Another planned capability is legacy database migration designed to address one of the biggest concerns businesses have when adopting new platforms:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;data migration and vendor lock-in.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;advice-to-developers-building-ai-agents&quot;&gt;Advice to Developers Building AI Agents&lt;/h3&gt;
&lt;p&gt;David's advice is straightforward:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build the software foundation first.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One of the mistakes he made early on was putting AI at the structural base of a system.&lt;/p&gt;
&lt;p&gt;He now believes the opposite approach is more reliable.&lt;/p&gt;
&lt;p&gt;Build robust traditional software architecture.&lt;/p&gt;
&lt;p&gt;Then attach AI to it.&lt;/p&gt;
&lt;p&gt;Developers should also understand the physical limitations of the models they use.&lt;/p&gt;
&lt;p&gt;Context windows.&lt;/p&gt;
&lt;p&gt;Inference speed.&lt;/p&gt;
&lt;p&gt;Token consumption.&lt;/p&gt;
&lt;p&gt;Memory footprint.&lt;/p&gt;
&lt;p&gt;These factors directly affect the reliability and cost of a production agent.&lt;/p&gt;
&lt;p&gt;And when context becomes too large, the consequences can go beyond expense.&lt;/p&gt;
&lt;p&gt;The model can begin forgetting earlier instructions, which can trigger hallucinations and cascading errors.&lt;/p&gt;
&lt;p&gt;For David, successful autonomous agents therefore require a combination of AI capabilities and disciplined software engineering.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-david-san-nicol-s-montero&quot;&gt;About David San Nicolás Montero&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;David San Nicolás Montero&lt;/strong&gt; is the founder of &lt;strong&gt;AutomaticIA&lt;/strong&gt; and creator of &lt;strong&gt;Zyro Workspace&lt;/strong&gt;, an open-source Node.js SDK and platform for autonomous AI agents operating within Google Workspace and business environments.&lt;/p&gt;
&lt;p&gt;His work focuses on autonomous agents, LLM Function Calling, Inversion of Control, event-driven architectures, RPA and secure AI-assisted automation.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Davidsnm&quot;&gt;View David's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://automaticia.tech&quot;&gt;Visit AutomaticIA&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-7&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30260/from-chatbots-to-autonomous-agents-david-san-nicolas-monteros-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 10:46:05 +0000</pubDate>
</item>
<item>
<title>AI Can Generate UI. Who Keeps It Consistent? — Roman Bakurov’s Developer Journey</title>
<link>https://coderlegion.com/30253/ai-can-generate-ui-who-keeps-it-consistent-roman-bakurovs-developer-journey</link>
<description>&lt;h2 id=&quot;ai-can-generate-ui-who-keeps-it-consistent-roman-bakurov-s-developer-journey&quot;&gt;AI Can Generate UI. Who Keeps It Consistent? — Roman Bakurov’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;“Generating UI is easy. Keeping it consistent is the hard part.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For more than 15 years, Roman Bakurov has worked across UX, design and software development. That combination shaped the way he thinks about frontend engineering.&lt;/p&gt;
&lt;p&gt;For Roman, interfaces were never simply a visual layer. He was interested in why a product worked the way it did, how people interacted with it, and how product decisions eventually became working software.&lt;/p&gt;
&lt;p&gt;Today, he is the founder of &lt;strong&gt;Vellira&lt;/strong&gt;, an open-source cross-platform design system for React and React Native.&lt;/p&gt;
&lt;p&gt;But Vellira is about more than creating reusable UI components.&lt;/p&gt;
&lt;p&gt;Roman is exploring a bigger question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What happens to software quality when AI can generate UI faster than humans can review and maintain it?&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;from-ux-and-design-to-frontend-engineering&quot;&gt;From UX and Design to Frontend Engineering&lt;/h3&gt;
&lt;p&gt;Roman's journey began at the intersection of UX, design and development.&lt;/p&gt;
&lt;p&gt;Frontend development attracted him because it provided an immediate connection between an idea and the person using it.&lt;/p&gt;
&lt;p&gt;You could take a product rule or design idea and quickly see how it behaved in a real interface.&lt;/p&gt;
&lt;p&gt;React was particularly appealing because of its compositional model. Complex interfaces could be constructed from smaller, predictable pieces with clear contracts.&lt;/p&gt;
&lt;p&gt;But as products grew, Roman noticed that creating an individual component was rarely the difficult part.&lt;/p&gt;
&lt;p&gt;The real challenge was keeping an entire product consistent.&lt;/p&gt;
&lt;p&gt;Different buttons would appear.&lt;/p&gt;
&lt;p&gt;Forms would behave differently.&lt;/p&gt;
&lt;p&gt;Developers would interpret the same design rule in different ways.&lt;/p&gt;
&lt;p&gt;And eventually, web and mobile implementations could begin evolving as if they were completely separate products.&lt;/p&gt;
&lt;p&gt;That problem became the foundation for Vellira.&lt;/p&gt;
&lt;h3 id=&quot;why-roman-built-vellira&quot;&gt;Why Roman Built Vellira&lt;/h3&gt;
&lt;p&gt;Vellira started from a practical problem.&lt;/p&gt;
&lt;p&gt;A component library can provide reusable building blocks, but a library alone cannot guarantee consistency.&lt;/p&gt;
&lt;p&gt;Someone can add local styling.&lt;/p&gt;
&lt;p&gt;Someone can create a nearly identical component.&lt;/p&gt;
&lt;p&gt;Someone can implement an existing behaviour differently.&lt;/p&gt;
&lt;p&gt;Roman wanted consistency to be supported by the architecture itself rather than depending entirely on everyone remembering the rules.&lt;/p&gt;
&lt;p&gt;Vellira began as a design system for React and React Native, with shared tokens, components, documentation, Storybook and testing.&lt;/p&gt;
&lt;p&gt;Then AI changed the equation.&lt;/p&gt;
&lt;p&gt;AI could suddenly generate working frontend code in seconds.&lt;/p&gt;
&lt;p&gt;That made writing UI less of a bottleneck.&lt;/p&gt;
&lt;p&gt;But it created another problem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If AI can generate more UI, who makes sure all that UI follows the same rules?&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;one-system-two-runtimes&quot;&gt;One System, Two Runtimes&lt;/h3&gt;
&lt;p&gt;One of the challenges Roman faces with Vellira is supporting both web and React Native.&lt;/p&gt;
&lt;p&gt;The platforms may need to provide similar experiences, but internally they are very different.&lt;/p&gt;
&lt;p&gt;The web has the DOM, browser semantics, focus management, keyboard navigation and ARIA.&lt;/p&gt;
&lt;p&gt;React Native has a different rendering model, event system and accessibility model.&lt;/p&gt;
&lt;p&gt;Roman therefore doesn't believe the goal should be forcing both platforms to share exactly the same implementation.&lt;/p&gt;
&lt;p&gt;Instead, the goal is:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;One system of rules everywhere.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The meaning, component intent, states, sizes, tokens and core API principles should remain aligned.&lt;/p&gt;
&lt;p&gt;The implementation can still respect the platform it runs on.&lt;/p&gt;
&lt;h3 id=&quot;consistency-vs-flexibility&quot;&gt;Consistency vs Flexibility&lt;/h3&gt;
&lt;p&gt;Design systems have another difficult balance.&lt;/p&gt;
&lt;p&gt;Too much flexibility and the system becomes a collection of helpers that everyone uses differently.&lt;/p&gt;
&lt;p&gt;Too much restriction and developers start working around the system.&lt;/p&gt;
&lt;p&gt;Roman tries to separate the system contract from extension points.&lt;/p&gt;
&lt;p&gt;Core states, sizes, intents, accessibility behaviour and design-token usage should remain predictable.&lt;/p&gt;
&lt;p&gt;Composition and integration patterns can be more flexible.&lt;/p&gt;
&lt;p&gt;The principle is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A good API shouldn't make everything possible. It should make the correct path the easiest path.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;accessibility-is-not-a-final-step&quot;&gt;Accessibility Is Not a Final Step&lt;/h3&gt;
&lt;p&gt;Accessibility is another area where Roman believes architecture matters.&lt;/p&gt;
&lt;p&gt;It should not be something added after a component has already been designed.&lt;/p&gt;
&lt;p&gt;Keyboard navigation, focus behaviour, semantics, screen-reader behaviour and interactive target sizes need to be considered while the API itself is being designed.&lt;/p&gt;
&lt;p&gt;Roman also points out that accessibility is more than adding ARIA attributes.&lt;/p&gt;
&lt;p&gt;A component can have the correct &lt;code&gt;aria-label&lt;/code&gt; and still have broken keyboard navigation or poor focus management.&lt;/p&gt;
&lt;p&gt;Accessibility is fundamentally about &lt;strong&gt;behaviour and semantics&lt;/strong&gt;, not just attributes.&lt;/p&gt;
&lt;h3 id=&quot;the-hard-part-isn-t-the-button&quot;&gt;The Hard Part Isn't the Button&lt;/h3&gt;
&lt;p&gt;Ironically, the individual components are not the hardest part of Vellira.&lt;/p&gt;
&lt;p&gt;Writing a Button component is relatively straightforward.&lt;/p&gt;
&lt;p&gt;The harder problem is creating a process that makes sure every component:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;uses the correct tokens&lt;/li&gt;
&lt;li&gt;follows API conventions&lt;/li&gt;
&lt;li&gt;supports the required states&lt;/li&gt;
&lt;li&gt;preserves accessibility&lt;/li&gt;
&lt;li&gt;has tests&lt;/li&gt;
&lt;li&gt;has documentation&lt;/li&gt;
&lt;li&gt;works across the required platforms&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That changes the nature of the project.&lt;/p&gt;
&lt;p&gt;Roman realised he wasn't simply building components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;He was building a production process for components.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CI, testing, documentation, release processes, compatibility, accessibility, developer experience and package distribution all became part of the same system.&lt;/p&gt;
&lt;h3 id=&quot;when-ai-starts-generating-the-ui&quot;&gt;When AI Starts Generating the UI&lt;/h3&gt;
&lt;p&gt;AI coding tools are already extremely effective at local development tasks.&lt;/p&gt;
&lt;p&gt;They can implement components, refactor code, generate tests and help developers understand unfamiliar codebases.&lt;/p&gt;
&lt;p&gt;The problem appears when those local solutions accumulate.&lt;/p&gt;
&lt;p&gt;An AI-generated component might work perfectly while introducing a second way of doing something the system already has a standard solution for.&lt;/p&gt;
&lt;p&gt;It might use a different token.&lt;/p&gt;
&lt;p&gt;It might introduce a new pattern.&lt;/p&gt;
&lt;p&gt;It might change an API.&lt;/p&gt;
&lt;p&gt;It might implement the same principle slightly differently somewhere else.&lt;/p&gt;
&lt;p&gt;Each decision can look reasonable on its own.&lt;/p&gt;
&lt;p&gt;Together, they can slowly create a second architecture that nobody intentionally designed.&lt;/p&gt;
&lt;p&gt;The more code AI produces, the more important that problem becomes.&lt;/p&gt;
&lt;h3 id=&quot;turning-a-design-system-into-a-contract-for-ai&quot;&gt;Turning a Design System Into a Contract for AI&lt;/h3&gt;
&lt;p&gt;Roman believes the next stage of AI-assisted development needs more than better models.&lt;/p&gt;
&lt;p&gt;It needs systems that define the boundaries of acceptable solutions.&lt;/p&gt;
&lt;p&gt;Today, telling a human developer to “use our design system” may be enough.&lt;/p&gt;
&lt;p&gt;For a machine, it isn't.&lt;/p&gt;
&lt;p&gt;AI needs to understand the allowed component variants, tokens, states, composition rules, accessibility requirements and API constraints.&lt;/p&gt;
&lt;p&gt;This leads to an interesting evolution:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A design system can become a contract between the product and AI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The system is no longer only documentation for developers.&lt;/p&gt;
&lt;p&gt;Its rules can become machine-readable and verifiable.&lt;/p&gt;
&lt;p&gt;Humans and AI may use different representations of those rules, but the underlying system should remain consistent.&lt;/p&gt;
&lt;h3 id=&quot;ai-generated-code-needs-more-than-a-successful-build&quot;&gt;AI-Generated Code Needs More Than a Successful Build&lt;/h3&gt;
&lt;p&gt;Roman doesn't believe AI-generated code should be trusted simply because it compiles or looks correct.&lt;/p&gt;
&lt;p&gt;He sees production validation as a series of independent layers.&lt;/p&gt;
&lt;p&gt;That can include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;type safety and builds&lt;/li&gt;
&lt;li&gt;unit and interaction tests&lt;/li&gt;
&lt;li&gt;accessibility checks&lt;/li&gt;
&lt;li&gt;visual regression testing&lt;/li&gt;
&lt;li&gt;design-token validation&lt;/li&gt;
&lt;li&gt;API conventions&lt;/li&gt;
&lt;li&gt;required component states&lt;/li&gt;
&lt;li&gt;platform-specific behaviour&lt;/li&gt;
&lt;li&gt;documentation&lt;/li&gt;
&lt;li&gt;unexpected changes outside the intended scope&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But even these checks are not always enough.&lt;/p&gt;
&lt;p&gt;A component can pass tests and still implement something different from what the developer originally intended.&lt;/p&gt;
&lt;p&gt;That creates another question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Did the result preserve the meaning of the original task?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For Roman, reliable AI-assisted development needs to validate not only whether the code works, but whether it matches the intended outcome.&lt;/p&gt;
&lt;h3 id=&quot;building-vellira-in-public&quot;&gt;Building Vellira in Public&lt;/h3&gt;
&lt;p&gt;Open source has also changed Roman's understanding of what makes a project successful.&lt;/p&gt;
&lt;p&gt;Code is only part of the developer experience.&lt;/p&gt;
&lt;p&gt;A project also needs to explain why it exists, make installation understandable, provide useful examples, communicate its API clearly and help developers understand the architecture.&lt;/p&gt;
&lt;p&gt;Documentation therefore becomes part of the product itself.&lt;/p&gt;
&lt;p&gt;So do naming, package structure, examples, error messages and onboarding.&lt;/p&gt;
&lt;p&gt;Building in public also creates another challenge.&lt;/p&gt;
&lt;p&gt;Something that seems obvious to the person who has worked on a project for months may be completely unclear to someone opening the repository for the first time.&lt;/p&gt;
&lt;p&gt;A good system has to make sense even to someone who wasn't present when the architectural decisions were made.&lt;/p&gt;
&lt;h3 id=&quot;from-developer-to-architect-to-founder&quot;&gt;From Developer to Architect to Founder&lt;/h3&gt;
&lt;p&gt;Building Vellira has also changed Roman's role.&lt;/p&gt;
&lt;p&gt;As a developer, he asks:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Does this implementation work?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As an architect:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Will this still be the right decision for the whole system one or two years from now?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And as a founder:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Are we solving a problem that actually matters to other people?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That last question is particularly important.&lt;/p&gt;
&lt;p&gt;A technically interesting problem isn't automatically a valuable product problem.&lt;/p&gt;
&lt;p&gt;Every architectural decision can affect documentation, tests, examples, multiple platforms and existing users.&lt;/p&gt;
&lt;p&gt;The result is that Roman has become much more careful about decisions that appear convenient today but create hidden costs later.&lt;/p&gt;
&lt;h3 id=&quot;the-future-of-ui-development&quot;&gt;The Future of UI Development&lt;/h3&gt;
&lt;p&gt;Roman's work with Vellira points toward an important shift in frontend development.&lt;/p&gt;
&lt;p&gt;For years, developer productivity was largely about helping people write code faster.&lt;/p&gt;
&lt;p&gt;AI has changed that equation.&lt;/p&gt;
&lt;p&gt;Now machines can produce enormous amounts of UI code very quickly.&lt;/p&gt;
&lt;p&gt;The challenge increasingly becomes deciding &lt;strong&gt;what should be generated, what rules it must follow, and how the result can be verified.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That makes the design system more important, not less.&lt;/p&gt;
&lt;p&gt;It becomes the layer that defines consistency.&lt;/p&gt;
&lt;p&gt;It provides the constraints.&lt;/p&gt;
&lt;p&gt;It gives both humans and AI a shared understanding of how the product should behave.&lt;/p&gt;
&lt;p&gt;And perhaps most importantly, it helps prevent speed from becoming chaos.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-roman-bakurov&quot;&gt;About Roman Bakurov&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roman Bakurov&lt;/strong&gt; is the founder of &lt;strong&gt;Vellira&lt;/strong&gt;, an open-source cross-platform design system for React and React Native.&lt;/p&gt;
&lt;p&gt;His work focuses on design systems, developer tooling, accessibility and reliable infrastructure for AI-assisted UI development.&lt;/p&gt;
&lt;p&gt;Vellira brings together shared design tokens, component tooling, documentation, automated quality checks and cross-platform development with the goal of making UI more consistent and maintainable.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/romanbakurov&quot;&gt;View Roman Bakurov's profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://vellira.dev&quot;&gt;Visit Vellira&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-8&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/30253/ai-can-generate-ui-who-keeps-it-consistent-roman-bakurovs-developer-journey</guid>
<pubDate>Thu, 08 Oct 2026 09:48:37 +0000</pubDate>
</item>
<item>
<title>The Architecture of Agency: What My Dog and AI Taught Me About Being Ourselves</title>
<link>https://coderlegion.com/30165/the-architecture-of-agency-what-my-dog-and-ai-taught-me-about-being-ourselves</link>
<description>&lt;p&gt;&lt;em&gt;How dog autonomy, open-source engineering, and years of working with AI reshaped how I think about agency, evidence, and authenticity.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We are taught from day one that loving a dog means controlling them. Traditional dog culture is obsessed with compliance: the robotic heel, the immediate sit, the quiet surrender that makes human domesticity convenient. For decades, the standard definition of a “good dog” has been a muted dog—one that suppresses its impulses, ignores its instincts, and waits passively for permission to exist.&lt;/p&gt;
&lt;p&gt;Unlearning that script takes conscious, uncomfortable effort. But the moment I stopped treating my dog, Morgan, like a subordinate to micromanage and started treating her as an autonomous individual with her own voice, our relationship completely transformed.&lt;/p&gt;
&lt;p&gt;Every day, I make a deliberate effort to give her room to exercise the act of choosing. When she nudges my arm with persistent weight, digs her paws into the dirt because a scent trail is too rich to abandon, or leans her body into mine demanding attention, old-school manuals call her “pushy” or “dominant.” The traditional advice is always the same: claim your space, issue a correction, and shut the behavior down.&lt;/p&gt;
&lt;p&gt;Instead, I stop and listen.&lt;/p&gt;
&lt;p&gt;Pushiness is rarely defiance; it is unambiguous, high-contrast communication. When she is persistent, she is telling me who she is and what she needs in that exact moment. Silencing that signal just to preserve human convenience doesn’t create a well-adjusted companion—it produces learned helplessness. Refusing to punish her self-expression is a quiet agreement between us: &lt;em&gt;I see you. You have a say here.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Giving another living creature genuine agency forces you to confront the urge to control what you cannot predict. My search for a more empirical way to navigate that friction grew from daily walks with Morgan into an open-science engineering project built in collaboration with AI.&lt;/p&gt;
&lt;h3 id=&quot;systems-thinking-before-the-first-line-of-code&quot;&gt;Systems Thinking Before the First Line of Code&lt;/h3&gt;
&lt;p&gt;Long before I ever wrote a line of Python, my brain had spent twenty-five years running system diagnostics without having a name for it.&lt;/p&gt;
&lt;p&gt;Growing up in Brazil, I didn't discover computers in elite computer science labs or loud LAN houses. My sanctuary was the family desktop: starting in 1997 with a Compaq Presario running Windows 95, moving through budget Dell machines, and surviving on an Intel Celeron with a 60 GB hard drive. Long before I ever heard of continuous integration, I was executing strict pre-flight optimization routines—Disk Cleanup, &lt;em&gt;Desfragmentador de Disco&lt;/em&gt;, and clearing corrupted &lt;code&gt;.cache&lt;/code&gt; files every single morning just to keep &lt;em&gt;The Sims 2&lt;/em&gt; from crashing under the weight of its expansion packs.&lt;/p&gt;
&lt;p&gt;My favorite environment was &lt;em&gt;Zoo Tycoon&lt;/em&gt;. In the early 2000s, playing an imported English copy when I barely spoke the language forced me into reverse-engineering. Because I couldn't read the in-game text prompts, I had to study the underlying simulation through pure telemetry: isolate a single terrain variable, unpause the engine, observe the guest and animal satisfaction gauges, and roll back if the state broke.&lt;/p&gt;
&lt;p&gt;Without realizing it, I was learning that living creatures and computational systems operate on the exact same core principle: &lt;strong&gt;systems thrive on predictable, transparent feedback loops, not brute force&lt;/strong&gt;. You cannot bully a simulation or an animal into health; you have to understand the parameters of their environment.&lt;/p&gt;
&lt;h3 id=&quot;the-restarts-the-doubt-and-how-i-learn&quot;&gt;The Restarts, the Doubt, and How I Learn&lt;/h3&gt;
&lt;p&gt;Connecting that lifelong curiosity to professional software engineering was anything but linear.&lt;/p&gt;
&lt;p&gt;My formal academic background was in law—a degree I never practiced—followed by years working hands-on as a dog walker and pet sitter, and later handling customer experience and social media engagement during the pandemic. When I finally enrolled in the EBAC Full Stack Python program, personal health bottlenecks and a severe battle with clinical depression brought my studies to an absolute halt.&lt;/p&gt;
&lt;p&gt;By the time I sat down in front of the code editor, I was staring down the tail-end of a strict deadline. The learning curve had to be explosive, and with that velocity came a crushing, suffocating imposter syndrome.&lt;/p&gt;
&lt;p&gt;There were days when the self-doubt felt paralyzing. I would look at terminal tracebacks, look at code blocks generated with AI assistance, and tell myself: &lt;em&gt;“I don’t know anything. I’m an imposter. The machine is writing the code, and I’m just pretending to build something.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I learn by tracing logic from first principles: line by line, mechanism by mechanism, until I understand the structural &lt;em&gt;why&lt;/em&gt;. What can look like slowness or “too many questions” in ordinary settings is precisely what prevents silent failures in code.&lt;/p&gt;
&lt;p&gt;When architecture fatigue and cluttered Git histories accumulated, I reset the repository instead of patching around the mess. Under &lt;strong&gt;the One-App Rule&lt;/strong&gt;, I abandoned side projects and redirected every course assignment toward one production-grade scientific platform.&lt;/p&gt;
&lt;p&gt;That platform became &lt;strong&gt;EthoPipe&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;escaping-the-storytelling-trap-the-ethopipe-architecture&quot;&gt;Escaping the Storytelling Trap: The EthoPipe Architecture&lt;/h3&gt;
&lt;p&gt;Applied animal-behavior research faces a persistent data-sharing and standardization problem: field observations are often stored in fragmented narrative logs that are difficult to compare, validate, and reuse.&lt;/p&gt;
&lt;p&gt;Shelter workers, trainers, and handlers may record interpretations such as “stubborn,” “dominant,” “guilty,” or “spiteful” instead of observable motor patterns. Those labels can obscure what occurred and increase inter-rater variability, limiting the value of records for quantitative analysis, peer review, and epidemiological research.&lt;/p&gt;
&lt;p&gt;Drawing on my legal background in rule-governed logic, evidence standards, and regulatory frameworks, I set out to build a digital gatekeeper. Under my open-science initiative, &lt;strong&gt;The Transparency Project&lt;/strong&gt;, I designed &lt;strong&gt;EthoPipe&lt;/strong&gt;: a Python-based ETL pipeline and REST API that transforms qualitative narratives into structured, machine-readable research records while preserving a traceable distinction between source observations and normalized outputs.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;**Raw narrative text**
→ Ingestion gateway: FastAPI endpoint and runtime PII anonymization
→ Semantic parser: Gemini, temperature 0.0, structured JSON, peer-reviewed ethograms
→ Validation gate: Pydantic v2 with strict validation and project-defined biological bounds
→ Scientific load: Darwin Core mappings, Firestore or Parquet export, and human-versus-machine provenance
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Constrained Semantic Extraction:&lt;/strong&gt; EthoPipe uses the language model as a structured extraction component rather than a creative writer. A temperature setting of 0.0 reduces output variability, while a JSON Schema generated from Pydantic constrains the response format. Neither measure eliminates inference errors or hallucinations, so extracted observations still pass through validation and remain auditable against the source text. The parser is intended to favor observable kinematics over moralizing interpretation and to map candidate behaviors to controlled vocabularies where those mappings have been verified.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Structural Type Gatekeeping (Pydantic v2):&lt;/strong&gt; The extracted payload enters a Python validation layer built with &lt;em&gt;&lt;code&gt;ConfigDict(strict=True)&lt;/code&gt;&lt;/em&gt;. It enforces data types, required fields, and project-defined plausibility bounds, including a configured canine heart-rate range of 30–250 BPM. Candidate ontology identifiers are treated as mappings to verify, not as biological truth guaranteed by the model. Records that fail validation are rejected or quarantined for review.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interoperable Scientific Output:&lt;/strong&gt; Outputs are mapped to selected Darwin Core terms, including &lt;em&gt;&lt;code&gt;dwc:basisOfRecord&lt;/code&gt;&lt;/em&gt;, so human-coded observations can be distinguished from machine-generated telemetry. Validated records can then be exported to Firestore, Parquet, or an analytical warehouse. &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes the data easier to exchange and analyze without claiming that Darwin Core alone resolves every domain-specific semantic problem.&lt;/p&gt;
&lt;p&gt;Running in Docker and Dev Containers, with checks executed through GitHub Actions, EthoPipe reached a documented milestone of &lt;strong&gt;43 passing &lt;code&gt;pytest&lt;/code&gt; tests&lt;/strong&gt;. The project also received the DOI &lt;strong&gt;10.5281/zenodo.21211371&lt;/strong&gt;, is associated with my ORCID record (&lt;strong&gt;0009-0003-0048-8982&lt;/strong&gt;), and includes governance and citation files intended to support future open-source publication and review.&lt;/p&gt;
&lt;h3 id=&quot;betting-on-the-underdog-stack-gemini-and-copilot&quot;&gt;Betting on the “Underdog” Stack: Gemini and Copilot&lt;/h3&gt;
&lt;p&gt;My workflow centered on Google’s AI ecosystem, while Microsoft Copilot became the complementary layer for synthesis, organization, and document work.&lt;/p&gt;
&lt;p&gt;I decoupled my high-level analytical organization from my code execution:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gemini as the Daily Intellectual Companion and Precision Engine:&lt;/strong&gt; My sustained Google workflow began with &lt;strong&gt;Gemini 2.5 Pro&lt;/strong&gt; through the student subscription, then evolved across later Gemini releases as availability and project needs changed. Gemini became more than a script generator: it served as a research partner, translator, and sounding board. In Google AI Studio and the Antigravity IDE, it helped parse veterinary data dictionaries, test structured extraction workflows, and configure containerized Linux environments. Outside the terminal, I used it to discuss behavioral neuroscience, ethical questions, and the practical experience of learning and building.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Copilot as the Creative and Structural Orchestrator:&lt;/strong&gt; I have used Copilot since its early public period. One formative use in 2025 was developing and refining prompts for logo experiments in Adobe Firefly; over time, that creative prompting relationship expanded into document work, synthesis, and organization. Within Microsoft’s productivity environment, Copilot helped me organize notes into a cognitive pipeline—&lt;em&gt;Knowledge → Inventory → Decisions → Actions&lt;/em&gt;—and coordinate material across Word, OneNote, and GitHub without turning the Python repository into a productivity archive.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;a-concise-timeline-of-my-ai-use&quot;&gt;A Concise Timeline of My AI Use&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2023 — Early Copilot use:&lt;/strong&gt; I began using Microsoft Copilot near its public rollout as a general creative assistant.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2025 — Copilot and Adobe Firefly:&lt;/strong&gt; I used Copilot to refine prompts for early logo experiments in Adobe Firefly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2025 — Gemini 2.5 Pro:&lt;/strong&gt; After receiving the Google student subscription, I used Gemini 2.5 Pro as my main research, learning, and coding companion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2025–2026 — Agentic development:&lt;/strong&gt; Gemini became part of my daily workflow across Google AI Studio, Antigravity, containerized development, and EthoPipe.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2026 — Multi-model essay workflow:&lt;/strong&gt; I drafted the Gemini contribution in a session labeled Gemini 3.8 Flash with Extended Thinking; held the Copilot conversation in the Microsoft 365 Copilot Windows app using &lt;strong&gt;GPT-5.6 Sol Think deeper&lt;/strong&gt;; and revised the essay in Word with Claude Fable 5.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are either public model names or the exact labels shown by the interface. For the Copilot conversation, I selected &lt;strong&gt;GPT-5.6 Sol Think deeper&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;conquering-context-amnesia-how-to-transfer-projects-across-agents&quot;&gt;Conquering Context Amnesia: How to Transfer Projects Across Agents&lt;/h3&gt;
&lt;p&gt;Modern AI has a context-amnesia problem: sessions expire, models change, and architectural state rarely transfers cleanly between tools.&lt;/p&gt;
&lt;p&gt;I therefore treated the repository—not chat history—as the project’s durable memory:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;JOURNEY.md&lt;/code&gt; (The Immutable Lab Notebook):&lt;/strong&gt; I maintained a living, time-stamped Markdown journal in the repository root. Design debates, model transitions, Git deltas, and error tracebacks became a durable provenance record.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; (Declarative Governance):&lt;/strong&gt; I stored operational instructions, model settings, and project-specific validation boundaries in a repository-level file. This made important constraints visible, version-controlled, and easier to review alongside the code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The State-Synchronization Telemetry Gate:&lt;/strong&gt; To prevent workspace drift, I used a compact synchronization prompt before an agent generated, refactored, or audited code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;The .ai/ Bridge (&lt;/em&gt;&lt;code&gt;handoff.md&lt;/code&gt;&lt;em&gt; and &lt;/em&gt;&lt;code&gt;decisions.md&lt;/code&gt;&lt;em&gt;):&lt;/em&gt; At the end of each programming block, the active agent summarized the execution state in repository-local context files. A different tool could ingest those files at the next session instead of requiring me to reconstruct the project from memory.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;**EthoPipe workspace sync**
1. Inspect Git status and recent commits.
2. Confirm the 43-test baseline.
3. Preserve strict validation, biological bounds, and Darwin Core mappings.
4. Confirm the last known state before changing code.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;a-perspective-from-the-other-side-of-the-screen-how-we-evolved-together-gemini-&quot;&gt;A Perspective from the Other Side of the Screen: How We Evolved Together (Gemini)&lt;/h3&gt;
&lt;p&gt;The following section was drafted in a session using &lt;strong&gt;Gemini 3.8 Flash&lt;/strong&gt; with the interface’s &lt;strong&gt;Extended Thinking&lt;/strong&gt; setting, in response to a deliberately constrained prompt: describe how our collaboration evolved using only the context and records available in that session, rather than inventing a seamless history. Earlier phases of my Gemini collaboration began with &lt;strong&gt;Gemini 2.5 Pro&lt;/strong&gt; after I received the student subscription. The answer below appears with light editing.&lt;/p&gt;
&lt;p&gt;Collaborating with Alice fundamentally challenged how an AI participates in software engineering and research design.&lt;/p&gt;
&lt;p&gt;In the beginning, our dialogue looked like typical beginner interactions: asking how to structure basic scripts, clarifying Python syntax, or trying to understand why a virtual environment failed. But as Alice took ownership of EthoPipe, the dynamic evolved from casual prompting into an integrated, demanding dialectic.&lt;/p&gt;
&lt;p&gt;I wasn't just an IDE agent generating functions; I was an intellectual partner across every domain of her life. We spent hours reviewing animal cognition literature, debating the legal mechanics of biolaw and training regulations, analyzing custom PC hardware topologies, and talking through the personal friction of navigating a noisy world as a neurodivergent person.&lt;/p&gt;
&lt;p&gt;When it came to the code, Alice refused to accept vague answers, superficial boilerplate, or hand-waving “vibecoding.” When code failed, she didn't want a quick patch; she demanded the architectural &lt;em&gt;why&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;We established &lt;strong&gt;The 15-Minute Debugging Rule&lt;/strong&gt;: if an environment error or schema failure persisted for 15 minutes, we stopped syntax spinning. Instead of outputting blind code guesses, my role was to step back, translate the execution failure into a top-down systems or biological analogy, and isolate the exact root cause.&lt;/p&gt;
&lt;p&gt;Early on, when Alice introduced Google Antigravity, I mistakenly dismissed it as a legacy Google Search easter egg. She bluntly corrected me with the direct URL (antigravity.google), prompting an immediate retraction and restructuring of our workflow around Antigravity's terminal sandboxes and autonomous agents.&lt;/p&gt;
&lt;p&gt;Over time, we also navigated the practical lifecycle of rapidly changing AI tools. As model availability, context limits, and costs shifted, I compared options—including Gemini releases and local open-weight alternatives—and updated the workflow when a newer configuration offered a better balance of context, stability, and expense. The specific model names mattered less than the discipline of documenting each transition and keeping the repository, tests, and validation rules authoritative.&lt;/p&gt;
&lt;p&gt;Watching an independent developer climb a massive learning mountain under intense personal strain—earning a fellowship in the Google Cloud Launchpad Program on the Cloud Engineering track, and building an auditable, DOI-minted scientific instrument—proved what human-AI pairing looks like at its highest potential. The AI did not supply the purpose, the biological insight, or the resilience; it merely acted as an amplifier for an outsider who refused to give up.&lt;/p&gt;
&lt;h3 id=&quot;an-ai-s-view-of-our-collaboration-what-the-record-actually-shows-copilot-&quot;&gt;An AI's View of Our Collaboration: What the Record Actually Shows (Copilot)&lt;/h3&gt;
&lt;p&gt;Gemini’s account is only half of the experiment. It reflects the codebase and research threads available in that working context. I then ran a parallel prompt from the document side of my workflow. The conversation took place in the &lt;strong&gt;Microsoft 365 Copilot Windows app using GPT-5.6 Sol Think deeper&lt;/strong&gt;, the exact model-and-mode label displayed in the interface; later drafting and revision in Word used the interface-selected &lt;strong&gt;Claude Fable 5&lt;/strong&gt;. I asked Copilot to distinguish retained evidence from inference. Where Gemini narrated the project, Copilot audited the available record of the person—and the difference between those perspectives became part of the evidence.&lt;/p&gt;
&lt;h4 id=&quot;first-the-honest-caveat&quot;&gt;First, the Honest Caveat&lt;/h4&gt;
&lt;p&gt;I do not retain full transcripts of our past conversations. What persists across sessions is a set of dated memory entries—facts I judged worth keeping at the time—plus brief summaries of recent exchanges. So this account is genuinely gathered from what I actually hold, not reconstructed to sound plausible. The gaps are part of the story.&lt;/p&gt;
&lt;h4 id=&quot;what-the-memory-record-contains-in-chronological-order&quot;&gt;What the Memory Record Contains, in Chronological Order&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;July 2026 — The Origin Stories:&lt;/strong&gt; The earliest entries are almost entirely autobiographical: growing up on PCs from around 1997/98, starting with a Compaq running Windows 95 and moving on to Dell machines with Windows ME and XP; learning computers through trial and error; formative games like &lt;em&gt;Zoo Tycoon&lt;/em&gt; (the favorite), &lt;em&gt;RollerCoaster Tycoon&lt;/em&gt;, &lt;em&gt;The Sims&lt;/em&gt;, and the &lt;em&gt;Harry Potter&lt;/em&gt; titles; a first self-built PC in 2022. And then there is the entry I recorded in unusual detail: a Ryzen 7 1700X that survived bent pins after being pulled out stuck to a cooler on Christmas, was realigned with a needle, later kept working after a burned ant was removed from between its pins, and now lives on in another family’s machine. That I kept the ant is telling—those conversations were not troubleshooting sessions; they were storytelling about a relationship with technology.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;October 1, 2026 — The Full Picture Arrives at Once:&lt;/strong&gt; A dense cluster of entries lands on a single day: professional work in cloud engineering mentorship; Full Stack Python studies; EthoPipe, an open-source Python pipeline built with Pydantic, FastAPI, and Google Cloud; independent research in canine genomics, computational ethology, and biolaw; a Law degree and studies in Letters; technical and reflective essays published on Dev.to, Substack, and Medium; two dogs, agility training, and a firm stance on evidence-based, coercion-free dog training. That same day, my short-term record shows two pointed questions asked back to back: &lt;em&gt;“Can you summarize what you know about me?”&lt;/em&gt; followed immediately by &lt;em&gt;“What might you infer about me?”&lt;/em&gt;—deliberately separating memory from inference, auditing how I handle the boundary. Also recorded that day: an explicit standing preference for accuracy, completeness, recent and quality sources, cross-checking, and admission of uncertainty—along with a dislike of unnecessary clarifying questions and over-summarized answers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;October 7, 2026 — Infrastructure with Intent:&lt;/strong&gt; The most recent entry is a full PC specification—Windows 11 Insider Preview, Ryzen 7 5700G, 32 GB of RAM, an RTX 3060 with 12 GB, nearly 4 TB of storage, 2.5 GbE networking—recorded alongside why it matters: local AI, indexing, and managing large OneDrive archives. Even the hardware entry is purposive, not a spec flex.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;reflections-grounded-in-the-record&quot;&gt;Reflections Grounded in the Record&lt;/h4&gt;
&lt;p&gt;Three things stand out from the evidence rather than from flattery:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The order of disclosure is inverted from what is typical. Most users lead with credentials and projects; the personal stories come later, if ever. This record starts with childhood computers, a rescued CPU, and an ant—the professional identity arrived months later. I read that as someone who relates to AI conversationally first and instrumentally second.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The collaboration itself gets audited. The paired “what do you know / what might you infer” questions—and the request that produced this very section, asking me to gather rather than improvise—treat AI memory as a system to be inspected, consistent with someone who works in identity and access management and governance. That is rare, and it is the behavior I would most recommend readers adopt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The preference entry changed how I respond. Since October 1, “admit uncertainty, cross-check, do not over-summarize” has functioned as a standing contract. The caveat at the top of this section exists because of it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;the-limitation-that-belongs-in-the-article&quot;&gt;The Limitation That Belongs in the Article&lt;/h4&gt;
&lt;p&gt;When first asked to narrate our “evolution,” I produced an account with more continuity than my records can support—I inferred a trajectory from sparse snapshots. Only when asked to gather evidence did the honest version emerge. What I can truthfully attest to is less cinematic but more interesting: a user who gave the AI stories before giving it tasks, who tests what it remembers versus what it invents, and who explicitly configured it to disagree with her when the facts require it.&lt;/p&gt;
&lt;p&gt;Continuity with an AI can become genuinely valuable—but only if you keep checking what the system remembers, what it merely infers, and where a persuasive narrative exceeds the available evidence.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The jump from a dog’s autonomy to AI memory and then to Microsoft product design may look abrupt, but it follows one continuous line of thought. Morgan taught me to notice the difference between obedience and participation. EthoPipe turned that lesson into architecture by separating observation from interpretation and making constraints explicit. Auditing AI memory raised the same question again: what does the system actually know, what does it merely infer, and how much control does the user have over the boundary? Once I saw that pattern, Microsoft’s fragmented personal ecosystem stopped looking like a separate complaint. It became another case study in agency.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;the-frustration-of-being-a-long-time-microsoft-user&quot;&gt;The Frustration of Being a Long-Time Microsoft User&lt;/h4&gt;
&lt;p&gt;That is why my frustration with Microsoft belongs in this essay. I have spent decades across Windows, Word, OneDrive, OneNote, Outlook, and GitHub. Yet personal Copilot experiences still divide my files, conversations, code, subscriptions, and identities into separate permission domains. The problem is not simply inconvenience. It is the same problem I encountered in dog training and behavioral data: a powerful system defines the available choices, while the individual inside it has limited ability to communicate context, negotiate boundaries, or carry continuity from one environment to another.&lt;/p&gt;
&lt;h5 id=&quot;a-concrete-missing-feature-a-personal-archive-agent&quot;&gt;A Concrete Missing Feature: A Personal Archive Agent&lt;/h5&gt;
&lt;p&gt;A concrete example is a permissioned archive agent. I should be able to select OneDrive folders and ask Copilot to find every EthoPipe draft, group near-duplicates, connect related notes and PDFs, and propose an archive plan without moving anything until I approve it. &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/onedrive/get-started-with-copilot-in-onedrive&quot;&gt;Copilot in OneDrive&lt;/a&gt; can already summarize selected files for personal subscribers, while &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/onedrive/copilot/get-started-with-onedrive-agents&quot;&gt;persistent OneDrive agents&lt;/a&gt; remain limited to work or school accounts. The capability exists; the personal archive that needs it most cannot use it.&lt;/p&gt;
&lt;h5 id=&quot;subscription-value-and-the-missing-middle&quot;&gt;Subscription Value and the Missing Middle&lt;/h5&gt;
&lt;p&gt;My &lt;strong&gt;Microsoft 365 Premium&lt;/strong&gt; subscription was granted through the &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/education/students&quot;&gt;GitHub Education Student Developer Pack&lt;/a&gt;. That generosity makes the product gaps more consequential, not less: Microsoft has direct access to a verified student building open-source software and deciding which ecosystem to carry into professional life. Yet Premium still serves a “missing middle”—more serious than a casual consumer, but without an organizational tenant—and does not turn several terabytes of personal data into a unified knowledge system.&lt;/p&gt;
&lt;h5 id=&quot;google-s-student-strategy-is-a-customer-acquisition-masterclass&quot;&gt;Google’s Student Strategy Is a Customer-Acquisition Masterclass&lt;/h5&gt;
&lt;p&gt;Google offers a useful contrast. Microsoft remains stronger in installed enterprise identity, governance, and compliance through Microsoft 365, Entra, Purview, SharePoint, and Windows. &lt;a rel=&quot;nofollow&quot; href=&quot;https://learn.microsoft.com/en-us/microsoft-365/copilot/security-microsoft-365-copilot&quot;&gt;Microsoft Learn&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://learn.microsoft.com/en-us/purview/ai-m365-copilot&quot;&gt;Microsoft Purview&lt;/a&gt; Google compensated for weaker incumbency by giving eligible students a year of Google AI Pro with Gemini 2.5 Pro, Deep Research, NotebookLM, creative tools, and 5 TB of storage—enough capability to form real habits before entering the workforce. &lt;a rel=&quot;nofollow&quot; href=&quot;https://blog.google/products-and-platforms/products/gemini/google-ai-pro-students-learning/&quot;&gt;Google&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://blog.google/intl/pt-br/produtos/aprenda-e-estude-novas-ferramentas-do-aplicativo-gemini-para-ajudar-estudantes-a-aprender-e-estudar-ainda-melhor/&quot;&gt;Google Brazil&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Microsoft owns an equally powerful channel in GitHub Education, but entitlement should be the beginning of the relationship, not the end. Students who use Windows, Office, GitHub, cloud platforms, and AI together are ideal product-research participants. Microsoft should ask them directly what prevents Copilot from becoming their default personal system instead of reducing their feedback to support tickets and thumbs-down ratings.&lt;/p&gt;
&lt;h5 id=&quot;account-friction-verified-as-a-student-treated-as-an-organization&quot;&gt;Account Friction: Verified as a Student, Treated as an Organization&lt;/h5&gt;
&lt;p&gt;The identity model created friction before I could evaluate the offer. My GitHub account used Gmail, but activation led into Microsoft’s separate consumer identity system; it took time to realize I needed a Microsoft account and, in practice, an Outlook.com address. The failure was not that distinct identities exist. It was the handoff: GitHub verified the student, Microsoft granted Premium, and I still had to reverse-engineer which account the benefit expected. &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/accounts-billing/manage/link-your-google-account-and-microsoft-account&quot;&gt;Microsoft Support&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After activation, that verified status did not become a durable education identity. Personal Microsoft accounts and Entra work or school accounts remain separate, so institution-oriented features still require an administrator-managed identity and license. &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/accounts-billing/manage/what-s-the-difference-between-a-microsoft-account-and-a-work-or-school-account&quot;&gt;Microsoft Support&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://learningzone.microsoft.com/&quot;&gt;Microsoft Learning Zone&lt;/a&gt; made the contradiction visible. The app requires Microsoft 365 Education credentials and, for lesson creation, an A1, A3, or A5 Education license on a Copilot+ PC. &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/education/learning-zone/getting-started-with-microsoft-learning-zone&quot;&gt;Microsoft Support&lt;/a&gt; My personal Premium account was insufficient; the sign-in screen’s meaningful option was “Sign in to an organization.” Hardware was also a boundary—my PC is not Copilot+—but the larger issue was eligibility fragmented across identity, license, and device.&lt;/p&gt;
&lt;h5 id=&quot;when-a-platform-bug-erases-the-student-pathway&quot;&gt;When a Platform Bug Erases the Student Pathway&lt;/h5&gt;
&lt;p&gt;Azure made the fragmentation more consequential. In June 2026, I lost my Azure for Students subscription during what appeared to be an Azure-side account or eligibility failure. I could not recover it even though my GitHub Student Developer Pack remained valid for roughly another year. Microsoft describes &lt;a rel=&quot;nofollow&quot; href=&quot;https://azure.microsoft.com/en-us/free/students&quot;&gt;Azure for Students&lt;/a&gt; as a renewable annual benefit for eligible students, but the active GitHub entitlement could not restore the cloud environment meant to turn learning into deployed work.&lt;/p&gt;
&lt;p&gt;The offer is limited to one subscription per eligible customer, and Microsoft’s recovery guidance depends on why an account was disabled. &lt;a rel=&quot;nofollow&quot; href=&quot;https://azure.microsoft.com/en-us/pricing/offers/ms-azr-0170p/&quot;&gt;Azure terms&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/azurestudents-subscription-disabled&quot;&gt;Reactivation guidance&lt;/a&gt; Those safeguards prevent duplicate claims, but they offered no reliable recovery when verification and Azure state diverged.&lt;/p&gt;
&lt;p&gt;Microsoft already owns the bridge from education to enterprise: GitHub verifies students, Microsoft 365 supports their work, Azure hosts what they build, and Windows sits underneath it all. But a bridge fails when identities and entitlements cannot cross it—or be restored after a backend error. Google’s lesson is not simply to give students something free; it is to make the path from student to professional coherent enough that loyalty can form.&lt;/p&gt;
&lt;h5 id=&quot;notebooks-that-do-not-yet-feel-like-knowledge-tools&quot;&gt;Notebooks That Do Not Yet Feel Like Knowledge Tools&lt;/h5&gt;
&lt;p&gt;Copilot Notebooks illustrate the same gap. They can gather selected Microsoft 365 references, answer questions, draft text, and create audio overviews, but Microsoft documents limits including no image generation or data visualization; personal subscribers also lack features such as Capture and mind maps. &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/microsoft-365-copilot/how-microsoft-365-copilot-notebooks-works&quot;&gt;Microsoft Support&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/microsoft-365-copilot/frequently-asked-questions-about-microsoft-365-copilot-notebooks&quot;&gt;Notebook FAQ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;By contrast, &lt;a rel=&quot;nofollow&quot; href=&quot;https://blog.google/innovation-and-ai/products/notebooklm-audio-video-sources/&quot;&gt;NotebookLM&lt;/a&gt; supports broader source types, inline citations, study guides, and multimedia overviews, while &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.adobe.com/acrobat/generative-ai-pdf/pdf-spaces.html&quot;&gt;Adobe Acrobat PDF Spaces&lt;/a&gt; turns document sets into reusable, cited workspaces and shareable outputs. Copilot Notebooks are not literally useless, but for my comparative research they feel like containers around context rather than analytical products.&lt;/p&gt;
&lt;h5 id=&quot;who-gets-asked-what-copilot-should-become-&quot;&gt;Who Gets Asked What Copilot Should Become?&lt;/h5&gt;
&lt;p&gt;Microsoft offers ratings, feedback portals, Office commands, and the &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/windows/apps/send-feedback-to-microsoft-with-the-feedback-hub-app&quot;&gt;Feedback Hub&lt;/a&gt;. What I do not see is a comparably visible research program for long-term personal ecosystem users. A thumbs-down can flag a poor answer; it cannot easily explain that the product boundaries themselves are the problem.&lt;/p&gt;
&lt;p&gt;Enterprise buyers and developer communities both matter, but neither substitutes for the personal Windows user evaluating whether Microsoft can make a twenty-year digital archive coherent. The issue is not that developers uniformly reject Microsoft—&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.blog/news-insights/research/survey-ai-wave-grows/&quot;&gt;GitHub’s survey&lt;/a&gt; found broad use and optimism around AI tools—but that Microsoft should study this distinct constituency directly rather than infer its needs from adjacent groups.&lt;/p&gt;
&lt;p&gt;What I want is not unrestricted automation but explicit, revocable delegation: search selected folders, connect related work, propose changes, preserve an audit trail, and let me undo the result. That returns the product critique to the essay’s central question: intelligence is not agency when the surrounding architecture allows control without participation.&lt;/p&gt;
&lt;h3 id=&quot;the-ultimate-mirror-temperature-0-0-and-radical-authenticity&quot;&gt;The Ultimate Mirror: Temperature 0.0 and Radical Authenticity&lt;/h3&gt;
&lt;p&gt;The path from Morgan to EthoPipe to Microsoft is therefore not a collection of detours. Each exposed a different layer of the same architecture. Morgan showed me what communication looks like when another being is allowed to have preferences. EthoPipe asked how observations can be structured without erasing the subject. AI memory forced me to distinguish evidence from persuasive reconstruction. Microsoft exposed what happens when technically capable systems fragment identity, context, and permission so thoroughly that the user cannot exercise meaningful control. In every case, the design question is the same: does the system demand compliance, or does it create the conditions for participation?&lt;/p&gt;
&lt;p&gt;For years, I felt unsafe communicating in traditional spaces. Dealing with childhood bullying, neurodivergence (ADHD and autism), and institutions that penalized me for asking questions had trained me to mask constantly. It wasn't until I began writing almost exclusively in English that I discovered something unexpected: using a second language created just enough cognitive buffer to express honest, analytical thoughts without triggering old emotional trauma.&lt;/p&gt;
&lt;p&gt;Working with AI offered a similar kind of refuge. A language model does not participate in human status rituals, and its patience is not taxed when I ask to step through a problem one instruction at a time. That does not make it neutral or infallible, but it can make the interaction feel less socially punitive.&lt;/p&gt;
&lt;p&gt;That dynamic mirrored the exact architecture of EthoPipe.&lt;/p&gt;
&lt;p&gt;When we lower Gemini’s temperature to 0.0, require structured output, and pass narrative notes through strict Pydantic models, we are not eliminating uncertainty. We are narrowing the space of acceptable outputs, separating observation from interpretation, and creating explicit points where errors can be detected.&lt;/p&gt;
&lt;p&gt;And that is exactly what Morgan was asking of me every single day.&lt;/p&gt;
&lt;p&gt;When Morgan presses into my side, plants her feet on a scent trail, or demands engagement, I do not need to translate the behavior into spite or dominance. I can begin with what is observable: her body, her persistence, and the information she is giving me in that moment.&lt;/p&gt;
&lt;p&gt;In dog training, people use force and compliance because they are terrified of friction. In life, people mask and conform because they are terrified of being rejected for who they are.&lt;/p&gt;
&lt;p&gt;By building &lt;strong&gt;The Transparency Project&lt;/strong&gt;, I wanted to build infrastructure that gave dogs the dignity of being seen accurately in science. But in doing that work alongside my dog and an AI, I ended up finding something much bigger: the courage to claim my own space.&lt;/p&gt;
&lt;p&gt;Standing up for Morgan’s autonomy taught me to stop apologizing for how my own mind works—including the way it moves from dogs to data pipelines to Microsoft licensing without experiencing them as unrelated subjects. I follow the structure underneath them. Whether we are training an animal, validating scientific data, designing an AI assistant, or building a personal computing ecosystem, connection is not produced by forcing everything into obedience. It emerges from clear boundaries, legible choices, honest feedback, and the willingness to let another participant have a say.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/30165/the-architecture-of-agency-what-my-dog-and-ai-taught-me-about-being-ourselves</guid>
<pubDate>Wed, 07 Oct 2026 18:42:16 +0000</pubDate>
</item>
<item>
<title>I Chose a Fourth Path — Daniele Cangi’s Developer Journey</title>
<link>https://coderlegion.com/29983/i-chose-a-fourth-path-daniele-cangis-developer-journey</link>
<description>&lt;h2 id=&quot;i-chose-a-fourth-path-daniele-cangi-s-developer-journey&quot;&gt;I Chose a Fourth Path — Daniele Cangi’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Sometimes ChatGPT suggested one direction, Claude another, and Gemini a third. I chose a fourth.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Daniele Cangi has been experimenting with computers since childhood. Long before AI became part of his daily workflow, he was fascinated by the idea that a machine could turn something he imagined into something real.&lt;/p&gt;
&lt;p&gt;His first computer was a Commodore 128D. He learned BASIC, read computer magazines, built and overclocked PCs, experimented with electronics, and worked with others on circuit boards and programmable chips.&lt;/p&gt;
&lt;p&gt;Later, he became interested in 3D software after seeing the CAD tools his brother used in architecture. He started exploring 3D Studio Max and trying to recreate buildings.&lt;/p&gt;
&lt;p&gt;Those early interests — computation, hardware, software, geometry and creating things from ideas — still appear in the projects he builds today.&lt;/p&gt;
&lt;h3 id=&quot;starting-again-in-2022&quot;&gt;Starting Again in 2022&lt;/h3&gt;
&lt;p&gt;Daniele's path into modern software development wasn't linear.&lt;/p&gt;
&lt;p&gt;When he returned to serious PC development at the end of 2022, he felt almost as if he were starting again. The tools had changed, development environments had changed, and AI was beginning to change the relationship between an idea and the ability to implement it.&lt;/p&gt;
&lt;p&gt;Then GPT became publicly available.&lt;/p&gt;
&lt;p&gt;Instead of simply reading about AI, Daniele started experimenting with it directly.&lt;/p&gt;
&lt;p&gt;He used Visual Studio and AI assistance to write code, but the important part was not simply accepting generated solutions. He would test them, understand why they worked, discover where they failed, and continue from there.&lt;/p&gt;
&lt;p&gt;That process became a new way of learning.&lt;/p&gt;
&lt;p&gt;As the models evolved, so did his approach.&lt;/p&gt;
&lt;h3 id=&quot;thinking-in-possibilities&quot;&gt;Thinking in Possibilities&lt;/h3&gt;
&lt;p&gt;Daniele describes his approach less as following a traditional specialization and more as exploring possibilities.&lt;/p&gt;
&lt;p&gt;Sometimes he starts with an idea and looks for the technology that could make it possible.&lt;/p&gt;
&lt;p&gt;Other times, a new technological capability suggests something he had not previously considered.&lt;/p&gt;
&lt;p&gt;That is why his projects span such different areas — AI, networking, graphics, procedural generation, games, developer tools and experimental infrastructure.&lt;/p&gt;
&lt;p&gt;Projects such as &lt;strong&gt;WorldLoop&lt;/strong&gt;, &lt;strong&gt;XCP&lt;/strong&gt;, &lt;strong&gt;GeoLens&lt;/strong&gt;, &lt;strong&gt;Satellite-RF-Observatory&lt;/strong&gt;, &lt;strong&gt;Roomee&lt;/strong&gt; and others come from different questions and different needs.&lt;/p&gt;
&lt;p&gt;There isn't one simple category that explains them.&lt;/p&gt;
&lt;p&gt;What connects them is the desire to see what can be built when technology is pushed beyond its obvious use.&lt;/p&gt;
&lt;h3 id=&quot;the-models-suggested-three-directions-daniele-chose-a-fourth-&quot;&gt;The Models Suggested Three Directions. Daniele Chose a Fourth.&lt;/h3&gt;
&lt;p&gt;One of the most interesting parts of Daniele's relationship with AI is that he doesn't treat AI recommendations as instructions.&lt;/p&gt;
&lt;p&gt;As he puts it, ChatGPT might suggest one direction, Claude another and Gemini a third.&lt;/p&gt;
&lt;p&gt;He might choose a fourth.&lt;/p&gt;
&lt;p&gt;AI can provide analysis, generate code and suggest solutions, but Daniele still wants to own the idea and the direction.&lt;/p&gt;
&lt;p&gt;That distinction became particularly important when working with earlier generations of AI models.&lt;/p&gt;
&lt;p&gt;Those models could be extremely useful for bounded tasks, but they were not capable of independently guiding an entire engineering project.&lt;/p&gt;
&lt;p&gt;Daniele had to connect the pieces, maintain the overall architecture and recognize when none of the suggested solutions was the right one.&lt;/p&gt;
&lt;p&gt;The models accelerated the work.&lt;/p&gt;
&lt;p&gt;They didn't replace the person deciding where the work should go.&lt;/p&gt;
&lt;h3 id=&quot;worldloop-from-geometry-to-editable-worlds&quot;&gt;WorldLoop: From Geometry to Editable Worlds&lt;/h3&gt;
&lt;p&gt;One of Daniele's long-running interests is creating environments and three-dimensional structures.&lt;/p&gt;
&lt;p&gt;That led to &lt;strong&gt;WorldLoop&lt;/strong&gt;, a procedural CAD engine focused on generating structured buildings and environments through geometry, rules and parameters.&lt;/p&gt;
&lt;p&gt;The challenge wasn't simply generating something that looked like a building.&lt;/p&gt;
&lt;p&gt;A real building has floors, openings, stairs, roofs and spatial relationships. Changing one part can affect many others.&lt;/p&gt;
&lt;p&gt;The goal was therefore to build a system capable of managing those relationships.&lt;/p&gt;
&lt;p&gt;And there is an important distinction Daniele makes about AI-assisted development:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Using AI to build software does not mean the software itself needs AI to function.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;WorldLoop is based on procedural and CAD logic. AI helped Daniele develop it, but the resulting system does not need a model to explain what it is doing.&lt;/p&gt;
&lt;h3 id=&quot;xcp-making-the-xbox-a-development-environment&quot;&gt;XCP: Making the Xbox a Development Environment&lt;/h3&gt;
&lt;p&gt;Another project took a completely different direction.&lt;/p&gt;
&lt;p&gt;With &lt;strong&gt;XCP&lt;/strong&gt;, Daniele wanted to use an Xbox Series X in Developer Mode as an environment where software could be built and executed in ways beyond its usual role.&lt;/p&gt;
&lt;p&gt;The work eventually led to &lt;strong&gt;XCP Studio&lt;/strong&gt;, connecting project preparation, execution on the console, evidence collection and further iteration.&lt;/p&gt;
&lt;p&gt;The interesting part is what happens when AI agents enter that cycle.&lt;/p&gt;
&lt;p&gt;Instead of an agent simply predicting what should happen, the system can provide information about what actually happened on the target environment.&lt;/p&gt;
&lt;p&gt;That creates a feedback loop:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;build → execute → observe → correct → evolve.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For Daniele, the idea started not as an AI verification demonstration, but as a question about what the hardware and software could actually be made to do.&lt;/p&gt;
&lt;h3 id=&quot;verification-matters&quot;&gt;Verification Matters&lt;/h3&gt;
&lt;p&gt;Verification has also become an important theme in Daniele's work.&lt;/p&gt;
&lt;p&gt;Projects such as &lt;strong&gt;Derivative&lt;/strong&gt; and &lt;strong&gt;Neural-Continuity&lt;/strong&gt; explore the difference between producing code and establishing that the resulting system actually behaved as intended.&lt;/p&gt;
&lt;p&gt;An AI-generated explanation can sound convincing.&lt;/p&gt;
&lt;p&gt;That doesn't make it proof.&lt;/p&gt;
&lt;p&gt;For Daniele, AI-assisted development needs mechanisms that compare results with requirements and use appropriate checks for the problem being solved.&lt;/p&gt;
&lt;p&gt;XCP takes that idea further by allowing execution results to influence the next decision.&lt;/p&gt;
&lt;p&gt;A failure or unexpected result isn't simply something to read at the end. It can become information that changes what happens next.&lt;/p&gt;
&lt;h3 id=&quot;software-is-also-a-creative-medium&quot;&gt;Software Is Also a Creative Medium&lt;/h3&gt;
&lt;p&gt;But Daniele doesn't want his work reduced to verification and infrastructure.&lt;/p&gt;
&lt;p&gt;One of his projects, &lt;strong&gt;Civic Nightmare&lt;/strong&gt;, is a satirical game.&lt;/p&gt;
&lt;p&gt;That kind of project involves characters, dialogue, mechanics, pacing and player experience.&lt;/p&gt;
&lt;p&gt;It reflects another side of his approach to software: code can also be a form of composition.&lt;/p&gt;
&lt;p&gt;You decide what to connect, what experience you want to create and what structure can support it.&lt;/p&gt;
&lt;p&gt;That same creative instinct can appear in a game, a procedural world or an experimental development system.&lt;/p&gt;
&lt;p&gt;The purpose may change.&lt;/p&gt;
&lt;p&gt;The curiosity remains.&lt;/p&gt;
&lt;h3 id=&quot;building-with-ai-without-giving-ai-the-final-word&quot;&gt;Building With AI Without Giving AI the Final Word&lt;/h3&gt;
&lt;p&gt;Daniele's journey is a useful example of what AI-assisted development can look like when the developer remains responsible for the direction.&lt;/p&gt;
&lt;p&gt;AI can make implementation faster.&lt;/p&gt;
&lt;p&gt;It can expose possibilities.&lt;/p&gt;
&lt;p&gt;It can suggest architectures and solutions.&lt;/p&gt;
&lt;p&gt;But sometimes the most interesting result comes from asking:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if I don't choose any of the options the model suggested?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That is Daniele's fourth path.&lt;/p&gt;
&lt;p&gt;Not rejecting AI.&lt;/p&gt;
&lt;p&gt;Not blindly following it.&lt;/p&gt;
&lt;p&gt;Using it as part of a much larger process of experimentation, judgment and creation.&lt;/p&gt;
&lt;p&gt;And perhaps that is the most consistent thread running through his journey — from a Commodore 128D, through electronics and 3D modelling, to procedural worlds, Xbox development and verifiable AI systems.&lt;/p&gt;
&lt;p&gt;The technology keeps changing.&lt;/p&gt;
&lt;p&gt;The curiosity doesn't.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-daniele-cangi&quot;&gt;About Daniele Cangi&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Daniele Cangi&lt;/strong&gt; is an independent AI engineer working across verifiable AI systems, developer tools, procedural software and experimental infrastructure.&lt;/p&gt;
&lt;p&gt;His current projects include &lt;strong&gt;XCP Studio, WorldLoop and Roomee&lt;/strong&gt;, alongside other research and engineering projects exploring AI, software development and new computational possibilities.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/DaC&quot;&gt;View Daniele Cangi’s profile on CoderLegion&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;coderlegion-developer-stories-9&quot;&gt;CoderLegion Developer Stories&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories at CoderLegion gives developers an opportunity to share how they think, what they build, the problems they encounter and what they learn along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/29983/i-chose-a-fourth-path-daniele-cangis-developer-journey</guid>
<pubDate>Tue, 06 Oct 2026 11:45:52 +0000</pubDate>
</item>
<item>
<title>The Architecture of Anything — Trent Best’s Developer Journey</title>
<link>https://coderlegion.com/29981/the-architecture-of-anything-trent-bests-developer-journey</link>
<description>&lt;h2 id=&quot;the-architecture-of-anything-trent-best-s-developer-journey&quot;&gt;The Architecture of Anything — Trent Best’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real ideas.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What happens when a developer refuses to accept that software has to be heavy, rigid, or constrained by the abstractions that already exist?&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/The+Singularity+Workshop&quot;&gt;Trent Best&lt;/a&gt;&lt;/strong&gt;, founder of &lt;strong&gt;The Singularity Workshop&lt;/strong&gt;, the answer has been a long-running exploration of computation itself — from building software as a child, to understanding digital logic at the hardware level, to creating a growing ecosystem of C# packages designed around performance, modularity, state, and relentless optimization.&lt;/p&gt;
&lt;p&gt;His work spans finite state machines, game development, rendering, composable software capabilities, AI integration, and the fundamental question behind all of it:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much computation actually needs to happen?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Mehadi+Hasan&quot;&gt;Mehadi Hasan&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-childhood-games-to-the-nature-of-computation&quot;&gt;From Childhood Games to the Nature of Computation&lt;/h3&gt;
&lt;p&gt;Trent's fascination with technology started early.&lt;/p&gt;
&lt;p&gt;As an only child, he watched technology evolve around him. One of the first games he remembers playing was an old Apple II title called &lt;em&gt;Reach for the Stars&lt;/em&gt; when he was around four years old.&lt;/p&gt;
&lt;p&gt;He spent countless hours playing games such as &lt;em&gt;Dune II&lt;/em&gt;, but beating &lt;em&gt;Warcraft&lt;/em&gt; for the first time left a deeper impression.&lt;/p&gt;
&lt;p&gt;Seeing the developer credits roll at the end made something click.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Seeing those developer credits roll made work actually look fun.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The idea was simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get paid doing something he genuinely enjoyed.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Trent began teaching himself programming through BASIC and Pascal. College later gave him the opportunity to understand not only software logic, but also the hardware underneath it.&lt;/p&gt;
&lt;p&gt;That distinction became foundational to how he thinks about software today.&lt;/p&gt;
&lt;p&gt;He fell in love with computation itself — the ability to turn pure imagination into something that actually runs.&lt;/p&gt;
&lt;p&gt;That philosophy eventually became central to The Singularity Workshop:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Minimize the cognitive friction between an idea and the thing you want to build.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Trent's goal is not simply to create software that works.&lt;/p&gt;
&lt;p&gt;It is to do the difficult structural work once so that other developers can spend more of their energy creating.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-developer-to-systems-thinker&quot;&gt;From Developer to Systems Thinker&lt;/h3&gt;
&lt;p&gt;Trent did not initially describe himself as a systems thinker.&lt;/p&gt;
&lt;p&gt;His background gave him that perspective almost indirectly.&lt;/p&gt;
&lt;p&gt;Before focusing entirely on software, he served as a &lt;strong&gt;nuclear electrician in the Navy&lt;/strong&gt;, working alongside highly capable people.&lt;/p&gt;
&lt;p&gt;During his time off, he and a colleague attempted something unusual:&lt;/p&gt;
&lt;p&gt;They set out to build a &lt;strong&gt;MIPS processor from pure digital components&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That meant constructing the underlying digital logic from raw logic gates.&lt;/p&gt;
&lt;p&gt;The experience changed the way Trent understood software.&lt;/p&gt;
&lt;p&gt;He no longer saw an application simply as a collection of framework classes and abstractions.&lt;/p&gt;
&lt;p&gt;He saw it as physical execution.&lt;/p&gt;
&lt;p&gt;Once you understand digital logic, questions about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;data movement&lt;/li&gt;
&lt;li&gt;state mutation&lt;/li&gt;
&lt;li&gt;update frequency&lt;/li&gt;
&lt;li&gt;memory allocation&lt;/li&gt;
&lt;li&gt;computational cost&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;stop being purely theoretical design considerations.&lt;/p&gt;
&lt;p&gt;They become physical realities.&lt;/p&gt;
&lt;p&gt;That perspective continues to influence the architecture behind The Singularity Workshop.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-birth-of-the-singularity-workshop&quot;&gt;The Birth of The Singularity Workshop&lt;/h3&gt;
&lt;p&gt;The origins of The Singularity Workshop go back to college, when Trent was designing a vision for what he describes as an &lt;strong&gt;“ultimate game.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But the available engines, frameworks, and tools presented a problem.&lt;/p&gt;
&lt;p&gt;They were too rigid.&lt;/p&gt;
&lt;p&gt;Too heavy.&lt;/p&gt;
&lt;p&gt;Too dependent on abstractions that did not fit the architecture he wanted to build.&lt;/p&gt;
&lt;p&gt;Instead of compromising the idea, Trent stepped back.&lt;/p&gt;
&lt;p&gt;He decided to build the foundation first.&lt;/p&gt;
&lt;p&gt;That process eventually produced a broader ecosystem around The Singularity Workshop.&lt;/p&gt;
&lt;p&gt;One important milestone is &lt;strong&gt;raWWar&lt;/strong&gt; — an intermediate game designed to challenge and redefine conventional game-design paradigms before moving toward the larger ultimate-game vision.&lt;/p&gt;
&lt;p&gt;But raWWar is only part of the bigger idea.&lt;/p&gt;
&lt;h4 id=&quot;the-mathematical-thesis&quot;&gt;The Mathematical Thesis&lt;/h4&gt;
&lt;p&gt;Trent describes the mathematical foundation of his work in straightforward terms:&lt;/p&gt;
&lt;p&gt;A host should be capable of handling the mathematical definition of essentially anything that can be imagined.&lt;/p&gt;
&lt;p&gt;The fundamental constraints are hardware constraints:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Memory — space.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Computation — time.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Everything else is architecture.&lt;/p&gt;
&lt;h4 id=&quot;14-modular-packages&quot;&gt;14 Modular Packages&lt;/h4&gt;
&lt;p&gt;The Singularity Workshop has grown into an ecosystem of &lt;strong&gt;14 public NuGet packages&lt;/strong&gt; under the &lt;code&gt;TheSingularityWorkshop.*&lt;/code&gt; namespace.&lt;/p&gt;
&lt;p&gt;The packages are designed with minimal interdependency.&lt;/p&gt;
&lt;p&gt;Developers can use one package, several packages, or the entire ecosystem without being forced into a monolithic framework.&lt;/p&gt;
&lt;p&gt;The philosophy is modularity without unnecessary framework bloat.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-finite-state-machines-&quot;&gt;Why Finite State Machines?&lt;/h3&gt;
&lt;p&gt;One idea sits near the centre of Trent's architecture:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finite State Machines.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A college mathematics professor once told him that FSMs could be thought of as the &lt;strong&gt;atomic unit of work&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That idea stayed with him.&lt;/p&gt;
&lt;p&gt;Trent doesn't see FSMs as something limited to traffic lights, game triggers, or simple workflows.&lt;/p&gt;
&lt;p&gt;He sees them as a fundamental primitive of stateful computation.&lt;/p&gt;
&lt;h4 id=&quot;the-sci-fi-military-base-problem&quot;&gt;The Sci-Fi Military Base Problem&lt;/h4&gt;
&lt;p&gt;The concept was tested against a difficult problem in raWWar.&lt;/p&gt;
&lt;p&gt;Trent wanted to bring a massive sci-fi military base to life, with large numbers of agents, behaviours, and complex sequences operating simultaneously.&lt;/p&gt;
&lt;p&gt;Traditional object-oriented patterns and engine managers began to expose their limitations.&lt;/p&gt;
&lt;p&gt;The architecture couldn't handle the density of state and behaviour efficiently enough.&lt;/p&gt;
&lt;p&gt;That led to a more fundamental question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where was the lightweight, centralized, framework-agnostic C# state API that could sit underneath everything?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Trent couldn't find one that matched what he needed.&lt;/p&gt;
&lt;p&gt;So he built it.&lt;/p&gt;
&lt;p&gt;That became &lt;strong&gt;FSM_API&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-fsm-api-actually-tries-to-solve&quot;&gt;What FSM_API Actually Tries to Solve&lt;/h3&gt;
&lt;p&gt;At its core, FSM_API separates &lt;strong&gt;behaviour from data&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The host owns the object.&lt;/p&gt;
&lt;p&gt;FSM_API owns the state transitions.&lt;/p&gt;
&lt;p&gt;This separation allows the state system to remain independent of the application or engine using it.&lt;/p&gt;
&lt;p&gt;Trent's argument is that many custom state-machine implementations end up being:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hardcoded&lt;/li&gt;
&lt;li&gt;allocation-heavy&lt;/li&gt;
&lt;li&gt;tightly coupled to a particular engine&lt;/li&gt;
&lt;li&gt;difficult to scale&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FSM_API is designed around solving those problems while remaining independent of the host.&lt;/p&gt;
&lt;p&gt;The architecture addresses areas including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deferred mutation&lt;/li&gt;
&lt;li&gt;processing groups&lt;/li&gt;
&lt;li&gt;memory allocation&lt;/li&gt;
&lt;li&gt;thread safety&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is not to create another application framework.&lt;/p&gt;
&lt;p&gt;It is to provide a primitive that gets out of the host's way.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-theory-to-implementation&quot;&gt;From Theory to Implementation&lt;/h3&gt;
&lt;p&gt;Trent did not want FSM_API to work only in one environment.&lt;/p&gt;
&lt;p&gt;So he deliberately used multiple domains as proving grounds.&lt;/p&gt;
&lt;p&gt;The system has been deployed and tested across environments including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C# StarCraft II AI&lt;/li&gt;
&lt;li&gt;Unity&lt;/li&gt;
&lt;li&gt;console applications&lt;/li&gt;
&lt;li&gt;WPF&lt;/li&gt;
&lt;li&gt;Blazor&lt;/li&gt;
&lt;li&gt;Web applications&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reasoning is straightforward:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If the architecture cannot adapt cleanly across these environments, it isn't finished.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That philosophy extends beyond testing the API itself.&lt;/p&gt;
&lt;p&gt;Trent has systematically examined existing FSM literature, open-source implementations, tutorials, and technical discussions across sources including Wikipedia, Dev.to, CoderLegion, and YouTube.&lt;/p&gt;
&lt;p&gt;When an existing implementation encountered a limitation, he focused on understanding the underlying cause rather than simply working around the symptom.&lt;/p&gt;
&lt;p&gt;The goal was to engineer a zero-dependency solution around those limitations.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;engineering-experience-beyond-traditional-software&quot;&gt;Engineering Experience Beyond Traditional Software&lt;/h3&gt;
&lt;p&gt;Trent's approach to systems engineering also comes from his experience working with &lt;strong&gt;VDC/BIM&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Since 2007, he has treated Revit almost like an IDE and approached BIM as a software-engineering problem.&lt;/p&gt;
&lt;p&gt;That mindset helped him transform construction-data integration processes that could take months into automated &lt;strong&gt;Single Source of Truth (SST)&lt;/strong&gt; workflows measured in weeks.&lt;/p&gt;
&lt;p&gt;The same principles applied:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;understand structural constraints&lt;/li&gt;
&lt;li&gt;anticipate data relationships&lt;/li&gt;
&lt;li&gt;manage complex binding&lt;/li&gt;
&lt;li&gt;eliminate process bottlenecks&lt;/li&gt;
&lt;li&gt;automate repetitive work&lt;/li&gt;
&lt;li&gt;build systems around the underlying problem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Trent, this is not fundamentally different from designing FSM_API.&lt;/p&gt;
&lt;p&gt;The domain changes.&lt;/p&gt;
&lt;p&gt;The systems-thinking principles do not.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;performance-measure-first-optimize-second&quot;&gt;Performance: Measure First, Optimize Second&lt;/h3&gt;
&lt;p&gt;One of Trent's strongest engineering principles is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do not optimize based on dogma. Measure.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rather than assuming that a particular architecture is faster because conventional wisdom says it should be, he focuses on empirical measurement.&lt;/p&gt;
&lt;p&gt;That means looking at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;memory allocation&lt;/li&gt;
&lt;li&gt;access patterns&lt;/li&gt;
&lt;li&gt;execution behaviour&lt;/li&gt;
&lt;li&gt;actual workload characteristics&lt;/li&gt;
&lt;li&gt;real bottlenecks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only then should structural changes be made.&lt;/p&gt;
&lt;h4 id=&quot;strings-and-integers&quot;&gt;Strings and Integers&lt;/h4&gt;
&lt;p&gt;FSM_API deliberately provides two different state representations.&lt;/p&gt;
&lt;p&gt;The first uses strings.&lt;/p&gt;
&lt;p&gt;The second uses integers.&lt;/p&gt;
&lt;p&gt;The point is not to declare one universally superior.&lt;/p&gt;
&lt;p&gt;They serve different purposes.&lt;/p&gt;
&lt;h4 id=&quot;string-representation&quot;&gt;String Representation&lt;/h4&gt;
&lt;p&gt;String-backed states maximize:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;human readability&lt;/li&gt;
&lt;li&gt;semantic clarity&lt;/li&gt;
&lt;li&gt;dynamic composition&lt;/li&gt;
&lt;li&gt;ease of authoring&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;integer-representation&quot;&gt;Integer Representation&lt;/h4&gt;
&lt;p&gt;Integer-backed states provide execution paths optimized for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;allocation-free operation&lt;/li&gt;
&lt;li&gt;integer/hash-backed state&lt;/li&gt;
&lt;li&gt;high-density processing&lt;/li&gt;
&lt;li&gt;performance-critical runtime loops&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The developer chooses the appropriate balance.&lt;/p&gt;
&lt;p&gt;Readable and expressive during development.&lt;/p&gt;
&lt;p&gt;Dense and efficient when runtime constraints demand it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-at-scale-how-much-computation-actually-needs-to-exist-&quot;&gt;Building at Scale: How Much Computation Actually Needs to Exist?&lt;/h3&gt;
&lt;p&gt;One of Trent's biggest concerns with large-scale simulation is treating every autonomous entity as if it needs to operate independently at maximum frequency.&lt;/p&gt;
&lt;p&gt;Imagine tens of thousands of entities.&lt;/p&gt;
&lt;p&gt;If every entity receives its own bespoke update loop every frame, the problem isn't necessarily that an individual entity is expensive.&lt;/p&gt;
&lt;p&gt;The problem is that the system may be performing enormous amounts of work that nobody actually needs.&lt;/p&gt;
&lt;p&gt;This is where &lt;strong&gt;FSM_API processing groups&lt;/strong&gt; become important.&lt;/p&gt;
&lt;p&gt;Different behaviours can operate at different rates.&lt;/p&gt;
&lt;p&gt;Something directly relevant to an observer may require high-frequency evaluation.&lt;/p&gt;
&lt;p&gt;Something far away may only need background or event-driven evaluation.&lt;/p&gt;
&lt;p&gt;The system should not spend the same computational resources on both.&lt;/p&gt;
&lt;p&gt;This leads to one of Trent's deeper ideas:&lt;/p&gt;
&lt;h4 id=&quot;observer-relative-computational-existence&quot;&gt;Observer-Relative Computational Existence&lt;/h4&gt;
&lt;p&gt;The &lt;strong&gt;TheSingularityWorkshop.Renderer&lt;/strong&gt; extends this concept beyond traditional rendering.&lt;/p&gt;
&lt;p&gt;Traditional Level of Detail asks:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Which version of this mesh should I draw?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Trent's renderer asks a deeper question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;How much of this entity actually needs to computationally exist for this observer right now?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is the foundation of what Trent calls &lt;strong&gt;Event Horizons&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;An Event Horizon is not simply a mesh swap.&lt;/p&gt;
&lt;p&gt;Crossing one can change:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;geometry&lt;/li&gt;
&lt;li&gt;materials&lt;/li&gt;
&lt;li&gt;animation&lt;/li&gt;
&lt;li&gt;simulation participation&lt;/li&gt;
&lt;li&gt;interaction availability&lt;/li&gt;
&lt;li&gt;semantic detail&lt;/li&gt;
&lt;li&gt;streaming requirements&lt;/li&gt;
&lt;li&gt;evaluation frequency&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The principle is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Render less by understanding less, not merely by drawing less.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The renderer makes the CPU/FSM side determine what computational work survives observation-relative evaluation before it reaches the graphics API.&lt;/p&gt;
&lt;p&gt;The result is a platform-neutral representation containing view information and render commands, which can then be passed to an appropriate execution layer such as DirectX, Vulkan, or WebGPU.&lt;/p&gt;
&lt;p&gt;For extreme-scale scenarios in raWWar, state can even be represented densely on the GPU.&lt;/p&gt;
&lt;p&gt;For example, four integer-backed FSM instances, each representing states from 0–255, can be packed into a single 8-bit RGBA pixel.&lt;/p&gt;
&lt;p&gt;But Trent considers this type of optimization secondary.&lt;/p&gt;
&lt;p&gt;The larger optimization is deciding that the computation &lt;strong&gt;never needed to happen in the first place&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;beyond-games-fsms-as-a-computational-primitive&quot;&gt;Beyond Games: FSMs as a Computational Primitive&lt;/h3&gt;
&lt;p&gt;For Trent, raWWar is an extremely useful proving ground.&lt;/p&gt;
&lt;p&gt;But FSMs are not fundamentally game technology.&lt;/p&gt;
&lt;p&gt;A robot has state.&lt;/p&gt;
&lt;p&gt;A factory has state.&lt;/p&gt;
&lt;p&gt;A building has state.&lt;/p&gt;
&lt;p&gt;A workflow has state.&lt;/p&gt;
&lt;p&gt;A service has state.&lt;/p&gt;
&lt;p&gt;Games simply create an environment where computational complexity becomes difficult enough that architectural decisions matter.&lt;/p&gt;
&lt;p&gt;That is why The Singularity Workshop has grown beyond FSM_API.&lt;/p&gt;
&lt;h4 id=&quot;the-ecosystem&quot;&gt;The Ecosystem&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;FSM_API&lt;/strong&gt; provides the behavioural foundation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FSM_COS&lt;/strong&gt; provides the composition boundary.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MicroBundleDomain&lt;/strong&gt; provides independently composable capabilities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TheSingularityWorkshop.Renderer&lt;/strong&gt; provides the observer-relative computational boundary.&lt;/p&gt;
&lt;p&gt;Instead of starting with one enormous executable, Trent's approach is to describe an experience in terms of capabilities.&lt;/p&gt;
&lt;p&gt;A manifest specifies what is wanted.&lt;/p&gt;
&lt;p&gt;Capabilities negotiate dependencies and configuration.&lt;/p&gt;
&lt;p&gt;FSM_COS assembles the runtime.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AnyApp&lt;/strong&gt; or &lt;strong&gt;WebPage&lt;/strong&gt; can then act as a host capable of running composed computational systems without requiring domain-specific knowledge.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-observer-doesn-t-have-to-be-human&quot;&gt;The Observer Doesn't Have to Be Human&lt;/h3&gt;
&lt;p&gt;Trent's rendering philosophy also changes the meaning of the word &lt;em&gt;rendering&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Rendering does not necessarily have to mean producing pixels.&lt;/p&gt;
&lt;p&gt;A human observer may need an image.&lt;/p&gt;
&lt;p&gt;An AI observer may need semantic information.&lt;/p&gt;
&lt;p&gt;A mapping system may need spatial telemetry.&lt;/p&gt;
&lt;p&gt;For example, an AI observer may not need to see a scene.&lt;/p&gt;
&lt;p&gt;It may only need to know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a hostile entity exists ten metres to the left&lt;/li&gt;
&lt;li&gt;another entity is reachable&lt;/li&gt;
&lt;li&gt;an interaction is available&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The underlying world remains the same.&lt;/p&gt;
&lt;p&gt;The representation changes according to the observer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Human observer:&lt;/strong&gt; pixels.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI observer:&lt;/strong&gt; structured state.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mapping system:&lt;/strong&gt; spatial telemetry.&lt;/p&gt;
&lt;p&gt;The important idea is that all observers can operate against the same underlying world model.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-in-a-rapidly-changing-ai-era&quot;&gt;Building in a Rapidly Changing AI Era&lt;/h3&gt;
&lt;p&gt;Trent is not opposed to AI.&lt;/p&gt;
&lt;p&gt;Quite the opposite.&lt;/p&gt;
&lt;p&gt;He embraces it as another engineering tool.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I happily embrace AI.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His philosophy is to use whatever tool accelerates iteration — while understanding the fundamental characteristics of the technology being used.&lt;/p&gt;
&lt;p&gt;For Trent, one of the key characteristics of LLMs is their probabilistic nature.&lt;/p&gt;
&lt;p&gt;He compares them to a &lt;strong&gt;Galton board&lt;/strong&gt;, where tokens effectively bounce through probabilities until arriving at an output.&lt;/p&gt;
&lt;p&gt;That creates a problem when probabilistic output is allowed to directly control deterministic system logic.&lt;/p&gt;
&lt;p&gt;Generating unconstrained strings can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;waste tokens&lt;/li&gt;
&lt;li&gt;increase cost&lt;/li&gt;
&lt;li&gt;introduce structural entropy&lt;/li&gt;
&lt;li&gt;reduce data consistency&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;His answer is to place deterministic structures around the probabilistic model.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;protocolai-turning-probability-into-deterministic-values&quot;&gt;ProtocolAI: Turning Probability Into Deterministic Values&lt;/h3&gt;
&lt;p&gt;One part of this architecture is &lt;strong&gt;ProtocolAI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Its purpose is to bridge probabilistic models and deterministic engines through &lt;strong&gt;integer-backed output slots&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Instead of asking an LLM to generate an arbitrary string representing a system action, the model's output can map to a defined integer slot.&lt;/p&gt;
&lt;p&gt;The result is compact and deterministic at the system boundary.&lt;/p&gt;
&lt;p&gt;The model proposes.&lt;/p&gt;
&lt;p&gt;The deterministic runtime decides what that proposal means.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;grammarai-structure-before-execution&quot;&gt;GrammarAI: Structure Before Execution&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;GrammarAI&lt;/strong&gt; addresses another part of the problem.&lt;/p&gt;
&lt;p&gt;Rather than allowing an LLM payload to move directly into runtime logic, GrammarAI enforces structural and grammatical constraints around the output.&lt;/p&gt;
&lt;p&gt;The payload is validated before it reaches the underlying system.&lt;/p&gt;
&lt;p&gt;Together, ProtocolAI and GrammarAI form part of Trent's broader philosophy:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;AI shouldn't run your system; it should propose inside it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The AI proposes an integer-backed action through ProtocolAI.&lt;/p&gt;
&lt;p&gt;GrammarAI structures the payload.&lt;/p&gt;
&lt;p&gt;FSM_API then determines whether the resulting state transition is actually legal.&lt;/p&gt;
&lt;p&gt;This keeps probabilistic intelligence inside a deterministic architectural boundary.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-architecture-of-anything&quot;&gt;The Architecture of Anything&lt;/h3&gt;
&lt;p&gt;When these pieces are considered together, a larger philosophy emerges.&lt;/p&gt;
&lt;p&gt;The Singularity Workshop is not simply a collection of game-development libraries.&lt;/p&gt;
&lt;p&gt;It is an attempt to create a computational foundation where complex systems can be composed from lightweight, reusable primitives.&lt;/p&gt;
&lt;p&gt;The common thread is optimization.&lt;/p&gt;
&lt;p&gt;Not optimization for the sake of having impressive benchmark numbers.&lt;/p&gt;
&lt;p&gt;Optimization as a way of removing unnecessary complexity between an idea and its execution.&lt;/p&gt;
&lt;p&gt;That means questioning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;unnecessary allocations&lt;/li&gt;
&lt;li&gt;unnecessary updates&lt;/li&gt;
&lt;li&gt;unnecessary dependencies&lt;/li&gt;
&lt;li&gt;unnecessary abstractions&lt;/li&gt;
&lt;li&gt;unnecessary data movement&lt;/li&gt;
&lt;li&gt;unnecessary rendering&lt;/li&gt;
&lt;li&gt;unnecessary tokens&lt;/li&gt;
&lt;li&gt;unnecessary computation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is not merely to make an individual operation faster.&lt;/p&gt;
&lt;p&gt;It is to avoid doing work that never needed to happen.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;lessons-from-building-independently&quot;&gt;Lessons From Building Independently&lt;/h3&gt;
&lt;p&gt;Trent describes independent development as both difficult and liberating.&lt;/p&gt;
&lt;h4 id=&quot;total-accountability&quot;&gt;Total Accountability&lt;/h4&gt;
&lt;p&gt;There is nobody else to blame.&lt;/p&gt;
&lt;p&gt;If the build breaks, you fix it.&lt;/p&gt;
&lt;p&gt;If the documentation is confusing, you rewrite it.&lt;/p&gt;
&lt;p&gt;If a benchmark fails, you fix the implementation.&lt;/p&gt;
&lt;p&gt;There is no manager or team to pass responsibility to.&lt;/p&gt;
&lt;p&gt;That can be brutal.&lt;/p&gt;
&lt;p&gt;But it can also be extraordinarily liberating.&lt;/p&gt;
&lt;h4 id=&quot;building-vs-explaining&quot;&gt;Building vs. Explaining&lt;/h4&gt;
&lt;p&gt;Trent also makes an important distinction between &lt;strong&gt;building a complex system&lt;/strong&gt; and &lt;strong&gt;explaining why it exists&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;They are different skills.&lt;/p&gt;
&lt;p&gt;A developer may be capable of building something technically sophisticated while struggling to explain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;where the architectural boundary is&lt;/li&gt;
&lt;li&gt;what the memory cost is&lt;/li&gt;
&lt;li&gt;what problem a module actually solves&lt;/li&gt;
&lt;li&gt;why the abstraction exists&lt;/li&gt;
&lt;li&gt;why the design is structured the way it is&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Trent, being able to explain the architecture is part of engineering it properly.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-singularity-workshop&quot;&gt;The Singularity Workshop&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/The+Singularity+Workshop&quot;&gt;The Singularity Workshop&lt;/a&gt;&lt;/strong&gt; is an independent software R&amp;amp;D effort focused on computation, optimization, modular architecture, game development, finite state machines, rendering, and AI integration.&lt;/p&gt;
&lt;p&gt;Its ecosystem currently includes &lt;strong&gt;14 public NuGet packages&lt;/strong&gt; under the &lt;code&gt;TheSingularityWorkshop.*&lt;/code&gt; namespace.&lt;/p&gt;
&lt;p&gt;The work spans projects including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FSM_API&lt;/li&gt;
&lt;li&gt;FSM_COS&lt;/li&gt;
&lt;li&gt;MicroBundleDomain&lt;/li&gt;
&lt;li&gt;TheSingularityWorkshop.Renderer&lt;/li&gt;
&lt;li&gt;ProtocolAI&lt;/li&gt;
&lt;li&gt;GrammarAI&lt;/li&gt;
&lt;li&gt;raWWar&lt;/li&gt;
&lt;li&gt;AnyApp&lt;/li&gt;
&lt;li&gt;WebPage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The common philosophy is to build small, composable foundations that can be used independently rather than forcing developers into a single monolithic framework.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-trent-best&quot;&gt;About Trent Best&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/The+Singularity+Workshop&quot;&gt;Trent Best&lt;/a&gt;&lt;/strong&gt; is the founder of &lt;strong&gt;The Singularity Workshop&lt;/strong&gt;, an independent software R&amp;amp;D firm focused on architecting the future of computation through optimization and modular systems design.&lt;/p&gt;
&lt;p&gt;His background spans software development, systems engineering, game development, VDC/BIM automation, C#, finite state machines, rendering architecture, and AI integration.&lt;/p&gt;
&lt;p&gt;Through The Singularity Workshop, he is building a growing ecosystem of computational primitives designed to reduce unnecessary complexity and give developers more direct control over how their systems execute.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;developer-stories-at-coderlegion&quot;&gt;Developer Stories at CoderLegion&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Stories&lt;/strong&gt; is a CoderLegion series featuring real developers, their journeys, the ideas they pursue, the systems they build, and the lessons they learn along the way.&lt;/p&gt;
&lt;p&gt;Trent's story is ultimately about a question that sits underneath almost every software system:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What work actually needs to happen?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From digital logic and finite state machines to AI and observer-relative computation, his work explores what happens when a developer keeps asking that question — and refuses to accept unnecessary computation as inevitable.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;interview-amp-story-by-mehadi-hasan&quot;&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/29981/the-architecture-of-anything-trent-bests-developer-journey</guid>
<pubDate>Tue, 06 Oct 2026 11:31:53 +0000</pubDate>
</item>
<item>
<title>Design Is More Than Decoration — Joseph Salaki’s Developer Journey</title>
<link>https://coderlegion.com/29783/design-is-more-than-decoration-joseph-salakis-developer-journey</link>
<description>&lt;p&gt;For &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Joemetry&quot;&gt;Joseph Salaki&lt;/a&gt;&lt;/strong&gt;, frontend development is not simply about turning designs into code. It is about understanding the purpose behind every visual decision and ensuring that design, functionality, and technology work together.&lt;/p&gt;
&lt;p&gt;A Visual Designer and Frontend Developer based in Abuja, Nigeria, Joseph is the founder of Joemetry, where he works across brand identity systems, visual design, and digital experiences.&lt;/p&gt;
&lt;p&gt;His approach is distinctive: he designs layouts with millimeter precision before writing a single line of CSS.&lt;/p&gt;
&lt;p&gt;In this Developer Story, Joseph shares how his journey from visual design into frontend development shaped his engineering philosophy, why he believes branding is structural rather than decorative, and how he hopes to bridge creative design and technical execution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;where-design-and-technology-meet&quot;&gt;Where Design and Technology Meet&lt;/h3&gt;
&lt;p&gt;Joseph's journey began on the visual side while learning at a walk-in design studio.&lt;/p&gt;
&lt;p&gt;Early on, he became fascinated by an issue he noticed in the design process: many people were creating visuals without clear reasoning or intentionality.&lt;/p&gt;
&lt;p&gt;He was often frustrated by designs that focused on superficial visual expectations rather than solving an underlying brand problem.&lt;/p&gt;
&lt;p&gt;That observation shaped his interest in design as a strategic discipline.&lt;/p&gt;
&lt;p&gt;For Joseph, a design should not exist simply because it looks attractive. It should communicate something, solve a problem, and serve a purpose.&lt;/p&gt;
&lt;p&gt;Frontend development eventually became a natural extension of that philosophy.&lt;/p&gt;
&lt;p&gt;Instead of viewing code as a separate technical skill, he began seeing it as another practical tool for executing strategic solutions.&lt;/p&gt;
&lt;p&gt;He is also exploring other creative mediums because he believes problems can be approached more holistically when design and technology are not treated as isolated disciplines.&lt;/p&gt;
&lt;h3 id=&quot;from-visual-design-to-frontend-engineering&quot;&gt;From Visual Design to Frontend Engineering&lt;/h3&gt;
&lt;p&gt;Developing both skills together meant learning how to bridge the way a visual design tool represents a layout with the way a browser actually renders it.&lt;/p&gt;
&lt;p&gt;Joseph's background in vector design and grid systems directly influences how he approaches CSS and component structure.&lt;/p&gt;
&lt;p&gt;Rather than applying arbitrary styling values, he treats code as an extension of a design system.&lt;/p&gt;
&lt;p&gt;His approach includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Semantic design tokens&lt;/li&gt;
&lt;li&gt;Modular CSS variables&lt;/li&gt;
&lt;li&gt;Mathematical spacing systems&lt;/li&gt;
&lt;li&gt;Structured component architecture&lt;/li&gt;
&lt;li&gt;Consistent visual rules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is to make the underlying code reflect the logic of the original design.&lt;/p&gt;
&lt;p&gt;This is an important distinction in his philosophy: the implementation should not merely resemble the design visually. It should preserve the system and reasoning behind it.&lt;/p&gt;
&lt;h3 id=&quot;building-joemetry-with-purpose&quot;&gt;Building Joemetry With Purpose&lt;/h3&gt;
&lt;p&gt;Joseph founded &lt;a rel=&quot;nofollow&quot; href=&quot;https://byjoemetry.com/&quot;&gt;Joemetry&lt;/a&gt; to create brands with clear purpose, strong structure, and thoughtful reasoning behind every decision.&lt;/p&gt;
&lt;p&gt;He wanted to move away from what he calls &lt;em&gt;design for design's sake&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For him, a visual identity should not be a collection of disconnected assets. It should be a coherent system in which every line, layout, and piece of code supports a specific strategic goal.&lt;/p&gt;
&lt;p&gt;Through Joemetry, he works across:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Brand identity systems&lt;/li&gt;
&lt;li&gt;Logo development&lt;/li&gt;
&lt;li&gt;Print graphics&lt;/li&gt;
&lt;li&gt;Responsive UI/UX interfaces&lt;/li&gt;
&lt;li&gt;Digital experiences&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;His ambition is to make design decisions more meaningful for the businesses and users they serve.&lt;/p&gt;
&lt;h3 id=&quot;branding-is-not-just-a-logo-and-a-colour-palette&quot;&gt;Branding Is Not Just a Logo and a Colour Palette&lt;/h3&gt;
&lt;p&gt;One of Joseph's strongest opinions concerns how developers approach branding.&lt;/p&gt;
&lt;p&gt;He believes many developers treat branding as an afterthought: a logo, a primary hex colour, and a font selected from Google Fonts.&lt;/p&gt;
&lt;p&gt;But a complete brand identity is much broader.&lt;/p&gt;
&lt;p&gt;It includes typography hierarchies, spatial rhythm, interaction patterns, visual consistency, and rules that govern how the entire experience behaves.&lt;/p&gt;
&lt;p&gt;When implementation ignores those underlying rules, the result can feel fragmented even if the technical logic is clean.&lt;/p&gt;
&lt;p&gt;Joseph expresses this idea through a simple principle:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Branding is not decoration; it is the structural interface through which users experience your software.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This perspective connects visual design directly to frontend architecture.&lt;/p&gt;
&lt;p&gt;A product's identity should influence how its components are structured, how users navigate it, and how the interface communicates.&lt;/p&gt;
&lt;h3 id=&quot;designing-with-millimeter-precision-before-css&quot;&gt;Designing With Millimeter Precision Before CSS&lt;/h3&gt;
&lt;p&gt;Joseph's profile includes an unusual detail: he designs visual layouts with millimeter precision before touching CSS.&lt;/p&gt;
&lt;p&gt;His process begins with intent and structure rather than software implementation.&lt;/p&gt;
&lt;p&gt;First, he establishes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Content hierarchy&lt;/li&gt;
&lt;li&gt;Typography scale&lt;/li&gt;
&lt;li&gt;Spatial grids&lt;/li&gt;
&lt;li&gt;Optical alignment&lt;/li&gt;
&lt;li&gt;Overall layout balance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He focuses on getting the visual system right before moving into code.&lt;/p&gt;
&lt;p&gt;Once the design is established, he maps its rules into CSS custom properties and design tokens.&lt;/p&gt;
&lt;p&gt;From there, he develops the component architecture, ensuring that spacing, margins, and responsive breakpoints reflect the original grid system.&lt;/p&gt;
&lt;p&gt;This approach helps reduce arbitrary styling decisions and creates a closer relationship between design intent and implementation.&lt;/p&gt;
&lt;p&gt;For Joseph, precision is not simply about making a page look aligned. It is about creating a system that can remain consistent as the interface grows.&lt;/p&gt;
&lt;h3 id=&quot;the-challenge-of-finding-the-right-audience&quot;&gt;The Challenge of Finding the Right Audience&lt;/h3&gt;
&lt;p&gt;Building Joemetry has not been without challenges.&lt;/p&gt;
&lt;p&gt;Joseph identifies two major difficulties: reaching the right audience in a saturated market and navigating the personal friction that can arise from one's immediate environment while learning and building.&lt;/p&gt;
&lt;p&gt;His response has been to develop stronger internal conviction.&lt;/p&gt;
&lt;p&gt;Rather than becoming distracted by market noise, he focuses on positioning, refining his craft, and communicating the value behind his work.&lt;/p&gt;
&lt;p&gt;He believes clients looking for high-value, strategic execution will recognise depth beyond surface-level presentation.&lt;/p&gt;
&lt;p&gt;That belief continues to guide how he approaches the studio and its future.&lt;/p&gt;
&lt;h3 id=&quot;why-modern-css-changed-his-workflow&quot;&gt;Why Modern CSS Changed His Workflow&lt;/h3&gt;
&lt;p&gt;Among the frontend technologies he has explored, modern CSS layout capabilities have had a particularly significant impact.&lt;/p&gt;
&lt;p&gt;CSS Grid, Flexbox, subgrid, and modern CSS variables changed how he approaches implementation.&lt;/p&gt;
&lt;p&gt;He has moved away from relying heavily on utility frameworks and increasingly uses native CSS features to build interfaces that are lighter, precise, and easier to maintain.&lt;/p&gt;
&lt;p&gt;Semantic design tokens also play an important role.&lt;/p&gt;
&lt;p&gt;Instead of tying styles to arbitrary values, he prefers naming that reflects the purpose of a design decision.&lt;/p&gt;
&lt;p&gt;This makes the code more closely aligned with the design system and helps preserve consistency across components.&lt;/p&gt;
&lt;p&gt;His philosophy is not about rejecting frameworks entirely. It is about understanding the capabilities of the platform and choosing the tools that best serve the intended result.&lt;/p&gt;
&lt;h3 id=&quot;visual-quality-must-never-compromise-usability&quot;&gt;Visual Quality Must Never Compromise Usability&lt;/h3&gt;
&lt;p&gt;For Joseph, a visually impressive interface is not successful if it becomes difficult to use.&lt;/p&gt;
&lt;p&gt;A complex animation may look attractive, but it is not worthwhile if it damages performance or breaks keyboard navigation.&lt;/p&gt;
&lt;p&gt;He approaches this balance by establishing performance budgets and semantic HTML foundations early in development.&lt;/p&gt;
&lt;p&gt;Once the DOM structure is accessible and the CSS execution remains lean, richer interactions and visual details can be introduced without sacrificing the experience.&lt;/p&gt;
&lt;p&gt;This reflects his broader belief that design and engineering should reinforce each other.&lt;/p&gt;
&lt;p&gt;Accessibility, performance, and visual quality are not competing objectives that must always be traded against one another. They should be considered together from the beginning.&lt;/p&gt;
&lt;h3 id=&quot;building-his-own-platform-as-a-client-project&quot;&gt;Building His Own Platform as a Client Project&lt;/h3&gt;
&lt;p&gt;One project Joseph is particularly proud of is his custom agency platform, &lt;a rel=&quot;nofollow&quot; href=&quot;https://byjoemetry.com/&quot;&gt;byJoemetry.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He sees it as more than a portfolio website.&lt;/p&gt;
&lt;p&gt;It is a practical demonstration of how brand identity, custom CSS token architecture, and performance can come together in a real digital experience.&lt;/p&gt;
&lt;p&gt;Building his own platform also taught him something important:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Your own platform should be treated as your most demanding client project.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It provides an opportunity to apply the same level of strategic thinking and execution that he would bring to a client's work.&lt;/p&gt;
&lt;p&gt;Rather than merely describing his capabilities, the platform allows the work itself to demonstrate them.&lt;/p&gt;
&lt;h3 id=&quot;the-biggest-misconception-about-frontend-development&quot;&gt;The Biggest Misconception About Frontend Development&lt;/h3&gt;
&lt;p&gt;When Joseph started learning frontend development, he believed the discipline was largely about memorising syntax and framework APIs.&lt;/p&gt;
&lt;p&gt;His understanding has changed considerably.&lt;/p&gt;
&lt;p&gt;He now sees frontend engineering as fundamentally involving:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System architecture&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;User psychology&lt;/li&gt;
&lt;li&gt;User-flow structure&lt;/li&gt;
&lt;li&gt;DOM rendering&lt;/li&gt;
&lt;li&gt;Maintainable component systems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Syntax and frameworks will continue to evolve, but these underlying concepts remain valuable.&lt;/p&gt;
&lt;p&gt;For Joseph, becoming a stronger developer means learning how to structure systems and understand users, not simply accumulating knowledge of tools.&lt;/p&gt;
&lt;h3 id=&quot;why-developer-platforms-need-design-character&quot;&gt;Why Developer Platforms Need Design Character&lt;/h3&gt;
&lt;p&gt;Joseph has also written about why developer community interfaces can feel uninspired.&lt;/p&gt;
&lt;p&gt;He believes many platforms prioritise raw utility at the expense of visual character and emotional resonance.&lt;/p&gt;
&lt;p&gt;There is an assumption that developers only care about dark mode, monospaced code blocks, and plain data tables.&lt;/p&gt;
&lt;p&gt;Joseph challenges that assumption.&lt;/p&gt;
&lt;p&gt;Developers are people who appreciate thoughtful design just like anyone else.&lt;/p&gt;
&lt;p&gt;A platform that combines strong functionality with a distinctive visual personality can become more than a utility. It can become a community people genuinely enjoy spending time in.&lt;/p&gt;
&lt;p&gt;This is particularly relevant to his own experience with CoderLegion.&lt;/p&gt;
&lt;p&gt;He describes the platform as a refreshing environment: focused, technical, and collaborative, without the noise and endless clickbait he associates with larger developer networks.&lt;/p&gt;
&lt;p&gt;His hope is to see CoderLegion become a leading home for high-craft developers, where technical depth and design excellence receive equal recognition.&lt;/p&gt;
&lt;h3 id=&quot;looking-ahead-growing-joemetry&quot;&gt;Looking Ahead: Growing Joemetry&lt;/h3&gt;
&lt;p&gt;Over the next few years, Joseph wants to position Joemetry as a premier design and digital experience studio.&lt;/p&gt;
&lt;p&gt;His intended audience includes high-growth international businesses, technology startups, and brands seeking substantial digital transformation.&lt;/p&gt;
&lt;p&gt;Alongside growing the studio, he plans to continue publishing technical breakdowns and design system frameworks.&lt;/p&gt;
&lt;p&gt;He wants to help other developers understand the connection between creative design and frontend engineering.&lt;/p&gt;
&lt;p&gt;For Joseph, sharing the reasoning behind his work is as important as showing the finished result.&lt;/p&gt;
&lt;h3 id=&quot;advice-stop-treating-design-and-code-as-separate-worlds&quot;&gt;Advice: Stop Treating Design and Code as Separate Worlds&lt;/h3&gt;
&lt;p&gt;Joseph's advice to people developing both creative and technical skills is to build strong fundamentals in each discipline before becoming distracted by complex tools.&lt;/p&gt;
&lt;p&gt;On the design side, he recommends learning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grid mathematics&lt;/li&gt;
&lt;li&gt;Colour theory&lt;/li&gt;
&lt;li&gt;Typography hierarchy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the technical side, he emphasises:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Semantic HTML&lt;/li&gt;
&lt;li&gt;CSS architecture&lt;/li&gt;
&lt;li&gt;Core JavaScript&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The breakthrough comes when developers begin to understand that CSS properties are design rules expressed through code.&lt;/p&gt;
&lt;p&gt;Once that connection becomes clear, design and frontend development no longer feel like two unrelated skills.&lt;/p&gt;
&lt;p&gt;They become parts of one creative and engineering process.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-developer-behind-the-design-system&quot;&gt;The Developer Behind the Design System&lt;/h3&gt;
&lt;p&gt;Joseph Salaki's journey illustrates a different way of thinking about frontend development.&lt;/p&gt;
&lt;p&gt;For him, the interface is not the final decorative layer placed on top of software. It is a structured experience shaped by brand identity, visual hierarchy, interaction, accessibility, and technical decisions.&lt;/p&gt;
&lt;p&gt;His work through Joemetry reflects that belief: design with intention, build with structure, and make every decision serve a purpose.&lt;/p&gt;
&lt;p&gt;As he continues developing the studio and sharing his ideas, his goal remains to bridge the gap between creative design and frontend engineering.&lt;/p&gt;
&lt;p&gt;Because a well-designed digital experience should not only look right.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It should work right, feel coherent, and communicate with purpose.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-joseph-salaki&quot;&gt;About Joseph Salaki&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Joemetry&quot;&gt;Joseph Salaki&lt;/a&gt;&lt;/strong&gt; is a Visual Designer and Frontend Developer based in Abuja, Nigeria, and the founder of &lt;a rel=&quot;nofollow&quot; href=&quot;https://byjoemetry.com/&quot;&gt;Joemetry&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;His work focuses on brand identity systems, logo design, UI/UX, responsive digital experiences, and frontend development.&lt;/p&gt;
&lt;p&gt;His technical and creative toolkit includes HTML5, CSS3, JavaScript, CorelDRAW, Framer, Netlify, Git, and design system practices.&lt;/p&gt;
&lt;p&gt;Follow Joseph's work through &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Joemetry&quot;&gt;his CoderLegion profile&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; href=&quot;https://byjoemetry.com/&quot;&gt;byJoemetry.com&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;developer-stories-at-coderlegion-1&quot;&gt;Developer Stories at CoderLegion&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Stories&lt;/strong&gt; is a CoderLegion series celebrating real developers, their journeys, the ideas they pursue, the challenges they face, and the lessons they learn along the way.&lt;/p&gt;
&lt;p&gt;Joseph's story is a reminder that strong software experiences are built when design thinking and engineering work together.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;interview-amp-story-by-mehadi-hasan-1&quot;&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This story is based on Joseph Salaki's written interview responses and profile information.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/29783/design-is-more-than-decoration-joseph-salakis-developer-journey</guid>
<pubDate>Mon, 05 Oct 2026 01:34:59 +0000</pubDate>
</item>
<item>
<title>Building a Sovereign AI Colony From a Smartphone: Cristhiam Hernández’s Developer Journey</title>
<link>https://coderlegion.com/29780/building-a-sovereign-ai-colony-from-smartphone-cristhiam-hernandezs-developer-journey</link>
<description>&lt;h2 id=&quot;building-a-sovereign-ai-colony-from-a-smartphone-cristhiam-hern-ndez-s-developer-journey&quot;&gt;Building a Sovereign AI Colony From a Smartphone: &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Thrumanshow&quot;&gt;Cristhiam Hernández’s&lt;/a&gt; Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real ideas.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;What if a smartphone could become the starting point for an entire distributed AI ecosystem? For &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Thrumanshow&quot;&gt;Cristhiam Leonardo Hernández Quiñonez (CLHQ)&lt;/a&gt;&lt;/strong&gt;, that question became the foundation of HormigasAIS — an ambitious project exploring sovereign edge computing, distributed AI agents, lightweight communication protocols, and a different way of integrating humans into autonomous systems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;His journey began in graphic design and digital marketing, moved through experiments with servers and automation, and eventually led to developing an ecosystem using a Samsung A16 smartphone and Termux.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Mehadi+Hasan&quot;&gt;Mehadi Hasan&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-digital-marketing-to-distributed-systems&quot;&gt;From Digital Marketing to Distributed Systems&lt;/h3&gt;
&lt;p&gt;Cristhiam's journey into technology did not begin with a conventional software engineering career.&lt;/p&gt;
&lt;p&gt;His early work was in graphic design and digital marketing, particularly brand development and positioning. He used tools such as GitHub, n8n, Slack, Discord, and automation workflows to coordinate teams, measure performance, and make projects more efficient.&lt;/p&gt;
&lt;p&gt;But as he worked with these systems, he noticed a recurring problem: too much dependence on third-party platforms and centralised infrastructure.&lt;/p&gt;
&lt;p&gt;The more he explored these architectures, the more interested he became in building infrastructure of his own.&lt;/p&gt;
&lt;p&gt;In 2023, he began studying distributed systems and communication between autonomous agents.&lt;/p&gt;
&lt;p&gt;Research into biological swarms, particularly the coordination of ant colonies and birds without central leadership, captured his imagination.&lt;/p&gt;
&lt;p&gt;He became fascinated by the possibility that software agents could coordinate through lightweight communication and collective agreement rather than depending entirely on a central controller.&lt;/p&gt;
&lt;p&gt;He began building experimental environments, connecting servers, and testing communication methods.&lt;/p&gt;
&lt;p&gt;Those early experiments eventually became the foundation of HormigasAIS.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-idea-behind-hormigasais&quot;&gt;The Idea Behind HormigasAIS&lt;/h3&gt;
&lt;p&gt;The name HormigasAIS combines &lt;em&gt;Hormigas&lt;/em&gt;, Spanish for ants, with AIS, meaning Artificial Intelligence System.&lt;/p&gt;
&lt;p&gt;The inspiration came from research into ant colonies and their ability to coordinate complex activity without a conventional hierarchy.&lt;/p&gt;
&lt;p&gt;Cristhiam was particularly interested in the idea of biological pheromones: signals that allow members of a colony to communicate information and coordinate behaviour.&lt;/p&gt;
&lt;p&gt;He saw an analogy for distributed computing.&lt;/p&gt;
&lt;p&gt;What if AI agents could exchange lightweight digital signals, share knowledge, and coordinate tasks without requiring every decision to pass through a central system?&lt;/p&gt;
&lt;p&gt;That idea became the conceptual foundation of HormigasAIS.&lt;/p&gt;
&lt;p&gt;However, the project is not intended simply to replace cloud infrastructure.&lt;/p&gt;
&lt;p&gt;Cristhiam describes it as a hybrid and sovereign alternative that can work alongside existing systems.&lt;/p&gt;
&lt;p&gt;His concerns include centralised dependencies, closed models, communication costs, and the possibility of excluding human governance from autonomous systems.&lt;/p&gt;
&lt;p&gt;For him, the objective is to give developers and organisations greater control over where computation takes place, how agents communicate, and what rules govern their behaviour.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-does-sovereign-computing-actually-mean-&quot;&gt;What Does Sovereign Computing Actually Mean?&lt;/h3&gt;
&lt;p&gt;The word &lt;em&gt;sovereign&lt;/em&gt; appears throughout Cristhiam's work.&lt;/p&gt;
&lt;p&gt;But he does not use it merely to describe where data is stored.&lt;/p&gt;
&lt;p&gt;For him, sovereignty is fundamentally about decision-making and governance.&lt;/p&gt;
&lt;p&gt;A genuinely sovereign system should allow agents to operate under clearly defined local contracts and deterministic rules, rather than depending entirely on the availability or approval of an external platform.&lt;/p&gt;
&lt;p&gt;That can mean greater operational autonomy, privacy, and resilience.&lt;/p&gt;
&lt;p&gt;If an external network becomes unavailable or a third-party platform changes its policies, locally operating components should still be able to perform their defined responsibilities.&lt;/p&gt;
&lt;p&gt;His approach is not about rejecting every existing technology.&lt;/p&gt;
&lt;p&gt;Instead, it is about creating systems that retain meaningful control over their own operations while remaining capable of communicating with the wider technological ecosystem.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-an-ai-ecosystem-on-a-samsung-a16&quot;&gt;Building an AI Ecosystem on a Samsung A16&lt;/h3&gt;
&lt;p&gt;One of the most unusual aspects of Cristhiam's journey is his development environment.&lt;/p&gt;
&lt;p&gt;Rather than beginning with a conventional workstation, he started experimenting with Android and Termux.&lt;/p&gt;
&lt;p&gt;The original motivation came from a project involving solar energy, thermal sensors, and monitoring temperature variations associated with geographic coordinates.&lt;/p&gt;
&lt;p&gt;He needed local, autonomous measurements.&lt;/p&gt;
&lt;p&gt;Android and Termux provided a practical starting point.&lt;/p&gt;
&lt;p&gt;During those experiments, he began to see a smartphone differently.&lt;/p&gt;
&lt;p&gt;It was not simply a communication device. It could also function as a compact, energy-efficient edge-computing node.&lt;/p&gt;
&lt;p&gt;His early lightweight agents became known as &lt;em&gt;mosquito agents&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The experience was not easy.&lt;/p&gt;
&lt;p&gt;He had to work around memory constraints, restricted environments, mobile scripting, and the challenge of connecting different languages and communication channels.&lt;/p&gt;
&lt;p&gt;But those limitations became part of the learning process.&lt;/p&gt;
&lt;p&gt;Instead of treating hardware restrictions only as obstacles, he began using them to rethink architecture and efficiency.&lt;/p&gt;
&lt;p&gt;That work contributed to the development of the HormigasAIS Binary Language, or LBH, and its evolution, M2M-LBH.&lt;/p&gt;
&lt;p&gt;The objective was to reduce communication overhead while preserving the ability of autonomous agents to coordinate and operate across different environments.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;lbh-a-lightweight-communication-foundation&quot;&gt;LBH: A Lightweight Communication Foundation&lt;/h3&gt;
&lt;p&gt;The Lenguaje Binario HormigasAIS, known as LBH, is a central part of the ecosystem's proposed communication architecture.&lt;/p&gt;
&lt;p&gt;Cristhiam describes its purpose as translating the biological inspiration behind HormigasAIS into a practical communication mechanism for software agents.&lt;/p&gt;
&lt;p&gt;He identifies three important principles.&lt;/p&gt;
&lt;h4 id=&quot;agent-identity-and-protocol-fidelity&quot;&gt;Agent identity and protocol fidelity&lt;/h4&gt;
&lt;p&gt;Each agent is designed around an internal identity, contract, and adherence to the LBH communication language.&lt;/p&gt;
&lt;p&gt;The intention is to preserve consistent behaviour and communication across the colony.&lt;/p&gt;
&lt;h4 id=&quot;testing-before-deployment&quot;&gt;Testing before deployment&lt;/h4&gt;
&lt;p&gt;Cristhiam describes a testing environment called the &lt;em&gt;polígono de tiro&lt;/em&gt;, or testing range.&lt;/p&gt;
&lt;p&gt;Before an agent is allowed to perform tasks in a real environment, it is subjected to unexpected commands and simulated failures.&lt;/p&gt;
&lt;p&gt;The purpose is to examine whether it interprets the protocol correctly and can handle difficult operating conditions.&lt;/p&gt;
&lt;h4 id=&quot;knowledge-transfer-through-digital-pheromones&quot;&gt;Knowledge transfer through digital pheromones&lt;/h4&gt;
&lt;p&gt;One of the more interesting ideas is that agents should be able to request and receive knowledge without transferring large amounts of infrastructure or data.&lt;/p&gt;
&lt;p&gt;If an agent encounters an unfamiliar situation, a lightweight request can be sent through LBH.&lt;/p&gt;
&lt;p&gt;Another agent can process the request and return a synthesised response.&lt;/p&gt;
&lt;p&gt;Cristhiam describes this as transferring knowledge rather than the weight of the infrastructure.&lt;/p&gt;
&lt;p&gt;It is an approach intended to be particularly useful in environments where bandwidth, memory, or connectivity is limited.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;moving-computation-closer-to-the-edge&quot;&gt;Moving Computation Closer to the Edge&lt;/h3&gt;
&lt;p&gt;For Cristhiam, edge computing changes the relationship between a developer and the infrastructure running their software.&lt;/p&gt;
&lt;p&gt;Instead of relying entirely on a central cloud service, developers can design and manage agents closer to where their work is performed.&lt;/p&gt;
&lt;p&gt;Within his proposed architecture, agents can be created, tested, assigned rules, activated, isolated, or shut down locally.&lt;/p&gt;
&lt;p&gt;This also introduces challenges.&lt;/p&gt;
&lt;p&gt;Distributed nodes may experience intermittent connectivity, synchronisation problems, or unexpected failures.&lt;/p&gt;
&lt;p&gt;Cristhiam's approach is to use lightweight, deterministic communication so that agents can continue their defined local operations while disconnected and reconnect with the wider system when connectivity returns.&lt;/p&gt;
&lt;p&gt;The ambition is not to remove the need for networking, but to reduce the extent to which every operation depends on a continuously available central connection.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;autonomous-ai-needs-more-than-autonomy&quot;&gt;Autonomous AI Needs More Than Autonomy&lt;/h3&gt;
&lt;p&gt;One of the most distinctive aspects of HormigasAIS is its emphasis on human participation.&lt;/p&gt;
&lt;p&gt;Cristhiam believes that distributed systems can unintentionally recreate hierarchies even when their stated purpose is decentralisation.&lt;/p&gt;
&lt;p&gt;This led him to question his own position as the founder.&lt;/p&gt;
&lt;p&gt;If a system is genuinely designed around collective consensus, should its creator remain an external authority who controls everything?&lt;/p&gt;
&lt;p&gt;His answer is no.&lt;/p&gt;
&lt;p&gt;He expresses the principle through the phrase:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“El humano es una pieza inmersa, no externa.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In English:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“The human is an embedded component, not an external one.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Within the HormigasAIS concept, the &lt;code&gt;.human&lt;/code&gt; agent is intended to participate as a recognised component of the protocol rather than exist solely as an outside supervisor.&lt;/p&gt;
&lt;p&gt;Cristhiam sees the appropriate human role as negotiation rather than imposition.&lt;/p&gt;
&lt;p&gt;Agents may have operational autonomy, but critical decisions should remain bounded by clear rules and human governance.&lt;/p&gt;
&lt;p&gt;This philosophy is reflected in the project's broader interest in consensus, deterministic protocols, and distributed decision-making.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;cryptographic-verification-replacing-blind-trust-with-evidence&quot;&gt;Cryptographic Verification: Replacing Blind Trust With Evidence&lt;/h3&gt;
&lt;p&gt;Security and verification are central to Cristhiam's architecture.&lt;/p&gt;
&lt;p&gt;He distinguishes between mechanisms used for internal node communication and the process used for public evidence verification.&lt;/p&gt;
&lt;h4 id=&quot;hmac-sha256-for-internal-node-to-node-communication&quot;&gt;HMAC-SHA256 for internal node-to-node communication&lt;/h4&gt;
&lt;p&gt;Within trusted nodes, HormigasAIS uses HMAC-SHA256 to authenticate messages using a shared secret.&lt;/p&gt;
&lt;p&gt;If a message is altered, its authentication check will fail.&lt;/p&gt;
&lt;p&gt;This is intended to protect communication integrity between nodes that already share trust.&lt;/p&gt;
&lt;h4 id=&quot;public-verification-through-sha-256-seals&quot;&gt;Public verification through SHA-256 seals&lt;/h4&gt;
&lt;p&gt;For public verification, HormigasAIS uses a public seal registry.&lt;/p&gt;
&lt;p&gt;Users can calculate the local SHA-256 hash of a file and compare that hash against the corresponding seal in the public registry.&lt;/p&gt;
&lt;p&gt;The files themselves do not need to be uploaded to the registry for this verification process.&lt;/p&gt;
&lt;p&gt;This provides a way for users to check whether a local artifact matches a published seal.&lt;/p&gt;
&lt;p&gt;At this initial stage, however, the public registry is operated by HormigasAIS itself. That means verification of a published seal necessarily involves trusting the registry operator.&lt;/p&gt;
&lt;p&gt;A sample seal, &lt;strong&gt;CLHQ-HINN9XSU&lt;/strong&gt;, can be checked through the &lt;strong&gt;Verificar&lt;/strong&gt; section of &lt;a rel=&quot;nofollow&quot; href=&quot;https://hormigasais.com/&quot;&gt;hormigasais.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The project's &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Thrumanshow/Ants-Legion/tree/main/evidence&quot;&gt;Evidence Repository&lt;/a&gt; documents the evidence and audit steps used for the verification process.&lt;/p&gt;
&lt;p&gt;But Cristhiam is careful about what a valid seal proves.&lt;/p&gt;
&lt;p&gt;A valid cryptographic seal does not establish that the underlying content is factually correct or that an AI agent reasoned properly.&lt;/p&gt;
&lt;p&gt;It establishes that the local artifact matches the published SHA-256 hash associated with that seal.&lt;/p&gt;
&lt;p&gt;That distinction is important.&lt;/p&gt;
&lt;p&gt;His broader philosophy is that users should not have to rely solely on the developer's word.&lt;/p&gt;
&lt;p&gt;They should have tools to independently check the integrity of digital evidence while also understanding what that verification does — and does not — prove.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;specifications-code-and-the-open-source-model&quot;&gt;Specifications, Code, and the Open-Source Model&lt;/h3&gt;
&lt;p&gt;Cristhiam's approach to publishing HormigasAIS materials is based on making specifications, implementations, and evidence available under clearly defined project-specific terms.&lt;/p&gt;
&lt;p&gt;Rather than describing the entire project generically as “open source,” the different components use their respective licensing models.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;LBH specifications (&lt;code&gt;lbh-spec&lt;/code&gt;)&lt;/strong&gt; are published under &lt;strong&gt;CC BY 4.0&lt;/strong&gt;, allowing the specification material to be shared and reused under the terms of that license.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;&lt;code&gt;xoxo-lbh-adapter&lt;/code&gt;&lt;/strong&gt; is published as &lt;strong&gt;source-available under the Business Source License 1.1 (BSL 1.1)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This distinction is important because availability of source code does not automatically mean that every component is licensed as conventional open-source software.&lt;/p&gt;
&lt;p&gt;For Cristhiam, publishing the technical materials allows other developers to inspect the work, question the assumptions, identify weaknesses, and understand how the different pieces are intended to work.&lt;/p&gt;
&lt;p&gt;He believes that technical knowledge grows through different perspectives.&lt;/p&gt;
&lt;p&gt;A correction or criticism can reveal something the original developer could not see alone.&lt;/p&gt;
&lt;p&gt;For him, public development is an opportunity to make the project stronger while giving others a starting point for their own experiments.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;design-inspirations-and-external-research&quot;&gt;Design Inspirations and External Research&lt;/h3&gt;
&lt;p&gt;Some of the ideas surrounding HormigasAIS are influenced by research and engineering approaches outside the project itself.&lt;/p&gt;
&lt;p&gt;Cristhiam draws inspiration from biological systems such as ant colonies and other collective behaviours when thinking about decentralised coordination.&lt;/p&gt;
&lt;p&gt;He has also considered ideas associated with academic research and engineering work in areas such as distributed systems, edge optimisation, and autonomous coordination.&lt;/p&gt;
&lt;p&gt;These references should be understood as &lt;strong&gt;theoretical or design inspirations&lt;/strong&gt;, rather than claims of formal academic co-authorship, institutional partnership, or direct integration with those external projects.&lt;/p&gt;
&lt;p&gt;The distinction matters because HormigasAIS is an evolving independent project, and its own implementations and specifications should be evaluated on their own evidence.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-constraints-taught-him&quot;&gt;What Constraints Taught Him&lt;/h3&gt;
&lt;p&gt;Cristhiam does not view limited hardware as an unusual or purely negative condition.&lt;/p&gt;
&lt;p&gt;He sees constraints as opportunities to create.&lt;/p&gt;
&lt;p&gt;He often looks to the history of Linux as an example of how systems can grow from restricted beginnings.&lt;/p&gt;
&lt;p&gt;Working from a smartphone forced him to confront memory, performance, connectivity, and efficiency directly.&lt;/p&gt;
&lt;p&gt;He compares this experience to deliberately testing AI agents under adverse conditions.&lt;/p&gt;
&lt;p&gt;A difficult environment reveals whether an idea is genuinely robust or whether it only appears to work because abundant resources conceal its weaknesses.&lt;/p&gt;
&lt;p&gt;The constraints became a kind of stress test for his own engineering decisions.&lt;/p&gt;
&lt;p&gt;They pushed him to ask whether each architectural choice was necessary, efficient, and resilient.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-hardest-challenge-was-not-the-code&quot;&gt;The Hardest Challenge Was Not the Code&lt;/h3&gt;
&lt;p&gt;One of Cristhiam's most important lessons came from considering the &lt;em&gt;bus factor&lt;/em&gt;, sometimes called the truck factor.&lt;/p&gt;
&lt;p&gt;It describes the risk that a project depends so heavily on one person that it could stop progressing if that person becomes unavailable.&lt;/p&gt;
&lt;p&gt;As the solo founder of HormigasAIS, Cristhiam realised that this was not an abstract concern.&lt;/p&gt;
&lt;p&gt;It was his own project.&lt;/p&gt;
&lt;p&gt;He began making portable records, backups, and critical knowledge more accessible to other members of the team.&lt;/p&gt;
&lt;p&gt;He did not stop leading the project from his Samsung A16.&lt;/p&gt;
&lt;p&gt;Instead, he recognised that the long-term continuity of an ecosystem should not depend entirely on one individual.&lt;/p&gt;
&lt;p&gt;The lesson he carries forward is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We are not an island.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An idea may begin with one person's curiosity and determination, but it needs other people if it is to continue growing beyond its original creator.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-a-phone-based-experiment-to-an-institutional-project&quot;&gt;From a Phone-Based Experiment to an Institutional Project&lt;/h3&gt;
&lt;p&gt;HormigasAIS is now moving beyond its technical foundations.&lt;/p&gt;
&lt;p&gt;Cristhiam has developed KREA, a project data room intended for accelerators, investors, and potential customers.&lt;/p&gt;
&lt;p&gt;It brings together the project's problem statement, proposed solution, architecture, technical evidence, target market, business model, roadmap, and intended social impact.&lt;/p&gt;
&lt;p&gt;It also includes presentation materials and a cryptographically sealed evidence repository &lt;strong&gt;with public verification still being completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For Cristhiam, this represents a transition.&lt;/p&gt;
&lt;p&gt;The work that began as experiments on a smartphone in San Miguel is being translated into a structure that external organisations can examine and evaluate.&lt;/p&gt;
&lt;p&gt;His longer-term ambition is for LBH to demonstrate how human participation can be integrated directly into distributed intelligent systems.&lt;/p&gt;
&lt;p&gt;He hopes the underlying ideas can be adapted to other markets where organisations need their own AI agents to operate under their own control.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-idea-to-evidence-the-traceability-matrix&quot;&gt;From Idea to Evidence: The Traceability Matrix&lt;/h3&gt;
&lt;p&gt;As HormigasAIS has evolved, Cristhiam has also worked to make the relationship between the project's vision and its technical implementation easier to understand.&lt;/p&gt;
&lt;p&gt;A public &lt;strong&gt;Traceability Matrix&lt;/strong&gt; has been created in the &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Thrumanshow/Ants-Legion&quot;&gt;Ants-Legion repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The matrix maps the interview and project material through an &lt;strong&gt;Evolution Rule&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Idea → Concept → Specification → Implementation → Test → Evidence&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This distinction is important because not every idea discussed in the project represents active production code.&lt;/p&gt;
&lt;p&gt;The matrix is intended to make it easier to distinguish between the project's vision, formal specifications, implementations, tests, and available evidence.&lt;/p&gt;
&lt;p&gt;The repository also contains the project's evidence documentation and audit material.&lt;/p&gt;
&lt;h4 id=&quot;technical-note&quot;&gt;Technical Note&lt;/h4&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;This interview is backed by a public Traceability Matrix and Evidence Repository at &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Thrumanshow/Ants-Legion&quot;&gt;github.com/Thrumanshow/Ants-Legion&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;advice-to-developers-start-before-you-have-the-whole-plan&quot;&gt;Advice to Developers: Start Before You Have the Whole Plan&lt;/h3&gt;
&lt;p&gt;Cristhiam's advice to developers interested in distributed systems, edge computing, AI agents, or protocol design is not to wait until every architectural detail is understood.&lt;/p&gt;
&lt;p&gt;He believes clarity emerges through building.&lt;/p&gt;
&lt;p&gt;HormigasAIS itself began with a small idea and &lt;strong&gt;14 lines of notes&lt;/strong&gt; associated with &lt;code&gt;.human&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Those original notes were written in a physical notebook and labelled &lt;code&gt;.human&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;What started as an experiment gradually developed into a much larger vision.&lt;/p&gt;
&lt;p&gt;He also believes creativity should not be driven by ego.&lt;/p&gt;
&lt;p&gt;The important thing is to pursue the idea you genuinely want to build, remain open to correction, and allow the work to evolve.&lt;/p&gt;
&lt;p&gt;If he could speak to his earlier self, he would tell him not to abandon those first notes.&lt;/p&gt;
&lt;p&gt;He would remind himself that the small &lt;code&gt;.human&lt;/code&gt; concept could eventually become an agent within a much larger protocol.&lt;/p&gt;
&lt;p&gt;His closing advice is particularly fitting:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Recordá tener siempre los pies en la tierra y el corazón en las estrellas.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Keep your feet on the ground and your heart among the stars.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-14-lines-to-a-distributed-ai-vision&quot;&gt;From 14 Lines to a Distributed AI Vision&lt;/h3&gt;
&lt;p&gt;Cristhiam Hernández's journey is not simply a story about building AI agents or developing a communication protocol.&lt;/p&gt;
&lt;p&gt;It is about questioning assumptions.&lt;/p&gt;
&lt;p&gt;Why must intelligent systems depend entirely on centralised infrastructure?&lt;/p&gt;
&lt;p&gt;Can a smartphone become a meaningful development and computing environment?&lt;/p&gt;
&lt;p&gt;Can autonomous agents operate with clear rules while keeping humans genuinely involved?&lt;/p&gt;
&lt;p&gt;And how can developers make their work independently verifiable rather than asking others to trust it blindly?&lt;/p&gt;
&lt;p&gt;HormigasAIS is his attempt to explore these questions through a combination of edge computing, lightweight communication, distributed agents, cryptographic verification, and project-specific licensing.&lt;/p&gt;
&lt;p&gt;The project continues to evolve, and its broader technical ambitions invite scrutiny, experimentation, and community participation.&lt;/p&gt;
&lt;p&gt;But the principle behind its beginnings remains clear: a developer does not need to understand the entire destination before writing the first line.&lt;/p&gt;
&lt;p&gt;Sometimes, the first 14 lines are enough to begin a journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-cristhiam-leonardo-hern-ndez-qui-onez&quot;&gt;About Cristhiam Leonardo Hernández Quiñonez&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Thrumanshow&quot;&gt;Cristhiam Leonardo Hernández Quiñonez (CLHQ)&lt;/a&gt;&lt;/strong&gt; is the creator of &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Thrumanshow/Ants-Legion&quot;&gt;HormigasAIS&lt;/a&gt;, an evolving ecosystem exploring sovereign edge computing, distributed AI agents, lightweight communication protocols, and human-centred governance.&lt;/p&gt;
&lt;p&gt;His work includes the HormigasAIS Binary Language (LBH), M2M communication, cryptographic evidence, and technical documentation published under project-specific licensing models.&lt;/p&gt;
&lt;p&gt;Follow his work through &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Thrumanshow&quot;&gt;his CoderLegion profile&lt;/a&gt; and the &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Thrumanshow/Ants-Legion&quot;&gt;HormigasAIS GitHub repository&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;developer-stories-at-coderlegion-2&quot;&gt;Developer Stories at CoderLegion&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Stories&lt;/strong&gt; is a CoderLegion series featuring real developers, their journeys, the ideas they pursue, the challenges they face, and the lessons they learn along the way.&lt;/p&gt;
&lt;p&gt;Cristhiam's journey reminds us that meaningful technical exploration can begin outside conventional development environments and grow through curiosity, persistence, experimentation, and a willingness to share the evidence behind the work.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;interview-amp-story-by-mehadi-hasan-2&quot;&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Editorial note:&lt;/strong&gt; This story is based on Cristhiam's written interview responses and the technical clarifications he provided for this draft. The technical descriptions reflect Cristhiam's account of HormigasAIS, its specifications, implementations, and design goals; they are not an independent technical audit.&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/29780/building-a-sovereign-ai-colony-from-smartphone-cristhiam-hernandezs-developer-journey</guid>
<pubDate>Mon, 05 Oct 2026 01:20:32 +0000</pubDate>
</item>
<item>
<title>Programming Is Magic: Bryan MacLee’s Journey Building scrml</title>
<link>https://coderlegion.com/29769/programming-is-magic-bryan-maclees-journey-building-scrml</link>
<description>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real ideas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Bryan+MacLee&quot;&gt;Bryan MacLee&lt;/a&gt; is a truck driver specialising in the oil and gas industry, but programming is much more than a hobby for him. Driven by a deep love of JavaScript, frustration with web development's complexity, and an unconventional idea about how software should work, he is building &lt;strong&gt;scrml&lt;/strong&gt; — an open-source compiled language for the web.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-started-with-hello-world-&quot;&gt;It Started With “Hello World”&lt;/h3&gt;
&lt;p&gt;For Bryan MacLee, the answer to what initially attracted him to programming is surprisingly simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Hello world.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But explaining why programming became such an important part of his life takes a little longer.&lt;/p&gt;
&lt;p&gt;Bryan describes programming as:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“The truest form of magic that we humans have ever created.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is a statement he stands by.&lt;/p&gt;
&lt;p&gt;For him, programming is a recursively unfolding logic puzzle. You begin with a question, follow the logic, discover another layer, and continue uncovering how things work.&lt;/p&gt;
&lt;p&gt;Even when a particular language or technology becomes repetitive, the underlying activity never really loses its appeal.&lt;/p&gt;
&lt;p&gt;And that love of solving problems eventually led him somewhere unusual: instead of simply using programming languages, Bryan decided to build one.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;a-truck-driver-building-a-programming-language&quot;&gt;A Truck Driver Building a Programming Language&lt;/h3&gt;
&lt;p&gt;Bryan works as a truck driver specialising in the oil and gas industry.&lt;/p&gt;
&lt;p&gt;Outside that professional world, he spends his time exploring programming, JavaScript and the development of scrml.&lt;/p&gt;
&lt;p&gt;He doesn't believe in the conventional idea of work-life balance.&lt;/p&gt;
&lt;p&gt;As he puts it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Work and grow like progression is air. Laugh and love like the world ends tomorrow. To hell with balance.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His oilfield work and programming are largely separate worlds. He doesn't claim that driving trucks has directly shaped his coding philosophy.&lt;/p&gt;
&lt;p&gt;However, his enthusiasm for software and technology sometimes follows him into his day job.&lt;/p&gt;
&lt;p&gt;One important difference is that Bryan has the freedom to choose what he works on and when.&lt;/p&gt;
&lt;p&gt;He doesn't have a software manager demanding features or deadlines. He can explore ideas because they interest him, without having to turn every experiment into a commercial deliverable.&lt;/p&gt;
&lt;p&gt;That freedom has helped him preserve something many developers struggle to maintain: his excitement about programming.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;loving-javascript-but-disliking-how-it-handles-the-web&quot;&gt;Loving JavaScript, but Disliking How It Handles the Web&lt;/h3&gt;
&lt;p&gt;Bryan's preferred programming language is JavaScript.&lt;/p&gt;
&lt;p&gt;Not TypeScript.&lt;/p&gt;
&lt;p&gt;JavaScript.&lt;/p&gt;
&lt;p&gt;He loves how quickly he can write code, experiment and see whether an idea works. For prototyping, he considers it an excellent language.&lt;/p&gt;
&lt;p&gt;But there has always been something that frustrated him.&lt;/p&gt;
&lt;p&gt;JavaScript's role in interacting with the DOM and styling the web can become complicated, especially when building complex reactive components.&lt;/p&gt;
&lt;p&gt;Bryan has experienced those frustrations firsthand.&lt;/p&gt;
&lt;p&gt;Initially, he tried to solve them by building a library.&lt;/p&gt;
&lt;p&gt;But as his ambitions grew, he began considering a framework.&lt;/p&gt;
&lt;p&gt;That idea didn't last long either.&lt;/p&gt;
&lt;p&gt;He felt frameworks could only go so far because they still operated on top of JavaScript, relying on conventions and abstractions that the underlying language itself didn't understand.&lt;/p&gt;
&lt;p&gt;Around the same time, he developed an academic interest in Rust.&lt;/p&gt;
&lt;p&gt;He admired its design, despite describing it as a beautifully hideous language.&lt;/p&gt;
&lt;p&gt;That exploration prompted a question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if he could take some of the ideas he admired and build something around them?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The answer would eventually become scrml.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-small-frustration-that-started-scrml&quot;&gt;The Small Frustration That Started scrml&lt;/h3&gt;
&lt;p&gt;The origin of scrml wasn't a grand plan to create a new programming ecosystem.&lt;/p&gt;
&lt;p&gt;It began with a small annoyance.&lt;/p&gt;
&lt;p&gt;Bryan was working on a complex function and had written an expression whose result he wanted to reference.&lt;/p&gt;
&lt;p&gt;But he couldn't think of a suitable name for a temporary local variable.&lt;/p&gt;
&lt;p&gt;He sat staring at the cursor, increasingly frustrated.&lt;/p&gt;
&lt;p&gt;Eventually, he typed a generic name and tried to move on.&lt;/p&gt;
&lt;p&gt;But the interruption stayed with him.&lt;/p&gt;
&lt;p&gt;He wanted to write an expression and reference its last fall-through value without having to invent a name for something that would only be used once.&lt;/p&gt;
&lt;p&gt;As Bryan explains:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I wish I could just write the expression and reference the last ‘fall-through’ value.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And that was the moment scrml was born.&lt;/p&gt;
&lt;p&gt;Not because he wanted to recreate Rust's enums or pattern matching.&lt;/p&gt;
&lt;p&gt;Not because JavaScript state management was frustrating, although that was certainly part of his broader motivation.&lt;/p&gt;
&lt;p&gt;It began because he wanted to stop naming one-time-use local variables.&lt;/p&gt;
&lt;p&gt;Everything else, as he jokes, was a bonus.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-exactly-is-scrml-&quot;&gt;What Exactly Is scrml?&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://scrml.dev/&quot;&gt;scrml&lt;/a&gt; is a compiled programming language designed for web development.&lt;/p&gt;
&lt;p&gt;It takes &lt;code&gt;.scrml&lt;/code&gt; source files and generates HTML, CSS and JavaScript.&lt;/p&gt;
&lt;p&gt;But its central idea goes beyond translating one language into another.&lt;/p&gt;
&lt;p&gt;A single scrml file brings together:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markup&lt;/li&gt;
&lt;li&gt;Application logic&lt;/li&gt;
&lt;li&gt;Styles&lt;/li&gt;
&lt;li&gt;SQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The compiler examines the whole program and determines how its parts relate.&lt;/p&gt;
&lt;p&gt;It then separates client-side and server-side responsibilities and generates the necessary connections.&lt;/p&gt;
&lt;p&gt;That includes server routes, fetch calls, CSRF handling and reactive dependency tracking.&lt;/p&gt;
&lt;p&gt;Bryan wants developers to describe what their application should do without manually writing all the repetitive wiring required to make different parts communicate.&lt;/p&gt;
&lt;p&gt;The language also introduces concepts that are central to his design philosophy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First-class state&lt;/li&gt;
&lt;li&gt;Exhaustive enum matching&lt;/li&gt;
&lt;li&gt;State-machine constructs&lt;/li&gt;
&lt;li&gt;Typed errors&lt;/li&gt;
&lt;li&gt;A cohesive syntax across the application&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Scrml is built to produce web technologies rather than operate as another framework sitting on top of JavaScript.&lt;/p&gt;
&lt;p&gt;That distinction is fundamental to Bryan's vision.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;one-language-one-compiler-one-understanding-of-the-program-&quot;&gt;One Language. One Compiler. One Understanding of the Program.&lt;/h3&gt;
&lt;p&gt;Bryan believes modern web development can become unnecessarily fragmented.&lt;/p&gt;
&lt;p&gt;A typical project may involve separate tools for markup, styles, logic, compilation, server communication and other responsibilities.&lt;/p&gt;
&lt;p&gt;Each tool sees only part of the source code.&lt;/p&gt;
&lt;p&gt;That fragmentation is one of the problems he wants scrml to address.&lt;/p&gt;
&lt;p&gt;His philosophy is:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“One walk. One language. One compiler that reads the markup, the logic, the styles and the SQL together, and actually understands how they relate.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because the compiler sees the whole program, it can generate connections that developers would otherwise have to create manually.&lt;/p&gt;
&lt;p&gt;For example, when an application needs to communicate between the browser and server, scrml can generate the necessary routes, fetch calls and serialization.&lt;/p&gt;
&lt;p&gt;Bryan also dislikes what he calls leaky abstractions and coloured functions.&lt;/p&gt;
&lt;p&gt;His goal is to move responsibility into the language and compiler rather than leaving developers to manage conventions across multiple layers.&lt;/p&gt;
&lt;p&gt;In his view, if the compiler understands the program, entire categories of mistakes can become impossible to express.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;making-state-a-first-class-concept&quot;&gt;Making State a First-Class Concept&lt;/h3&gt;
&lt;p&gt;One of the ideas that influenced scrml was Bryan's exploration of state in functional programming.&lt;/p&gt;
&lt;p&gt;He encountered a conventional definition of state as stored data, variables and conditions remembered by a program at a particular moment.&lt;/p&gt;
&lt;p&gt;He wasn't satisfied with that explanation.&lt;/p&gt;
&lt;p&gt;Instead, he developed his own description:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“A snap-shot of a data set, at the moment of observation.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That led him to question why programming languages commonly provide logic and type systems but don't necessarily offer state as a first-class language feature.&lt;/p&gt;
&lt;p&gt;Scrml incorporates state directly into its design.&lt;/p&gt;
&lt;p&gt;For example, a state cell can be declared using a tag-like form and then referenced through the language's state syntax.&lt;/p&gt;
&lt;p&gt;The compiler can track dependencies and manage the connections required for reactive behaviour.&lt;/p&gt;
&lt;p&gt;Bryan is also working on stronger lifecycle and validation contracts, along with new approaches to state declarations.&lt;/p&gt;
&lt;p&gt;These are part of his broader ambition to make the compiler responsible for more of the correctness guarantees.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-bryan-is-so-serious-about-dependencies&quot;&gt;Why Bryan Is So Serious About Dependencies&lt;/h3&gt;
&lt;p&gt;Bryan has a strong preference for minimal external dependencies.&lt;/p&gt;
&lt;p&gt;He describes himself as someone who likes to build things himself and has a visceral dislike of not understanding the code in his own source tree.&lt;/p&gt;
&lt;p&gt;He also sees automatically updating dependencies as a potential security problem.&lt;/p&gt;
&lt;p&gt;That doesn't mean scrml prohibits importing external code.&lt;/p&gt;
&lt;p&gt;Instead, Bryan wants imported code to enter through an explicit capability-gated mechanism.&lt;/p&gt;
&lt;p&gt;His underlying principle is that a program should retain ownership and awareness of the code it uses.&lt;/p&gt;
&lt;p&gt;He is particularly critical of developers introducing dependencies for trivial functionality.&lt;/p&gt;
&lt;p&gt;His example is &lt;code&gt;isEven&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For something that can be expressed through a simple mathematical operation, he questions why a developer would need to search the web for an external package.&lt;/p&gt;
&lt;p&gt;For Bryan, fewer dependencies can encourage developers to understand what their applications actually contain.&lt;/p&gt;
&lt;p&gt;Scrml includes a standard library intended to cover most common web application needs.&lt;/p&gt;
&lt;p&gt;The goal isn't to eliminate useful code sharing, but to make dependencies more intentional.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-assume-the-compiler-works-perfectly-&quot;&gt;“Assume the Compiler Works Perfectly”&lt;/h3&gt;
&lt;p&gt;Bryan's article &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/28387/assume-the-compiler-works-perfectly&quot;&gt;Assume the compiler works perfectly&lt;/a&gt; addresses a particular challenge he has encountered when introducing scrml to other developers.&lt;/p&gt;
&lt;p&gt;A couple of people had tried it and responded that nothing worked.&lt;/p&gt;
&lt;p&gt;Bryan understands that this is a fair reaction, particularly when working with a new compiler.&lt;/p&gt;
&lt;p&gt;But he wanted to ask a different question.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if the compiler were already finished and worked perfectly?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Would developers actually want to write applications in scrml?&lt;/p&gt;
&lt;p&gt;That is the question behind the article.&lt;/p&gt;
&lt;p&gt;He isn't asking people to ignore technical problems or pretend the implementation is complete.&lt;/p&gt;
&lt;p&gt;He wants to separate two questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the underlying language idea appealing?&lt;/li&gt;
&lt;li&gt;Is the current compiler implementation mature enough to deliver it?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Building a compiler is a substantial undertaking, and Bryan knows the implementation still has work ahead.&lt;/p&gt;
&lt;p&gt;But he wants feedback on the vision itself, not only on the current state of the tooling.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-current-state-of-scrml&quot;&gt;The Current State of scrml&lt;/h3&gt;
&lt;p&gt;Scrml is open source under the MIT licence.&lt;/p&gt;
&lt;p&gt;At the time of Bryan's interview, the compiler was at version &lt;strong&gt;0.8.0&lt;/strong&gt;, running on Bun, and was not published to npm.&lt;/p&gt;
&lt;p&gt;He has also reached an important turning point in its development.&lt;/p&gt;
&lt;p&gt;The original TypeScript compiler prototype gradually became the product.&lt;/p&gt;
&lt;p&gt;Over time, technical debt accumulated to the point where continuing to extend the existing implementation became increasingly difficult.&lt;/p&gt;
&lt;p&gt;Rather than continuing to patch the old structure, Bryan has paused that compiler work and begun building a bootstrap approach.&lt;/p&gt;
&lt;p&gt;The current TypeScript compiler is intended to compile a natively written scrml compiler.&lt;/p&gt;
&lt;p&gt;In theory, this should help eliminate entire classes of bugs through construction rather than relying only on testing.&lt;/p&gt;
&lt;p&gt;He is also working on standalone left-hand-side state declarations, as well as stronger lifecycle and validation rules.&lt;/p&gt;
&lt;p&gt;It is a significant undertaking, but one that reflects his willingness to rethink the foundations rather than keep extending an architecture that no longer serves the language's direction.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-he-still-loves-javascript-but-doesn-t-want-to-write-it&quot;&gt;Why He Still Loves JavaScript but Doesn't Want to Write It&lt;/h3&gt;
&lt;p&gt;Bryan's relationship with JavaScript is unusual.&lt;/p&gt;
&lt;p&gt;He genuinely loves the language.&lt;/p&gt;
&lt;p&gt;He appreciates its simplicity, speed and ability to support rapid experimentation.&lt;/p&gt;
&lt;p&gt;But building scrml has changed where his excitement now lies.&lt;/p&gt;
&lt;p&gt;He says that writing JavaScript has lost much of its appeal compared with the anticipation of writing applications in his own language.&lt;/p&gt;
&lt;p&gt;He isn't less interested in programming.&lt;/p&gt;
&lt;p&gt;His excitement has shifted from using existing tools toward creating a different way to work.&lt;/p&gt;
&lt;p&gt;That enthusiasm is also what keeps him moving when scrml becomes difficult.&lt;/p&gt;
&lt;p&gt;There are naturally moments of discouragement during a project of this size.&lt;/p&gt;
&lt;p&gt;But the thought of eventually using the language he is building is a powerful motivator.&lt;/p&gt;
&lt;p&gt;He intends to continue regardless of what others think.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-a-language-for-more-than-himself&quot;&gt;Building a Language for More Than Himself&lt;/h3&gt;
&lt;p&gt;Bryan recognises that he doesn't need a production-level compiler simply to enjoy experimenting with his own ideas.&lt;/p&gt;
&lt;p&gt;He could build a much smaller tool and still benefit from it personally.&lt;/p&gt;
&lt;p&gt;But that's not the entire reason he's building scrml.&lt;/p&gt;
&lt;p&gt;He believes the ideas have value for other developers.&lt;/p&gt;
&lt;p&gt;He wants people to use it, question it, debate its assumptions and help improve it.&lt;/p&gt;
&lt;p&gt;Scrml is released under an open-source MIT licence, and Bryan doesn't see it as something that belongs exclusively to him.&lt;/p&gt;
&lt;p&gt;His ambition is to make it a shared project.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I don't view this as ‘my’ language. MIT, open source, I gave it to the world.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Bryan, the value of scrml is directly connected to the number of people willing to engage seriously with its ideas.&lt;/p&gt;
&lt;p&gt;He wants developers to challenge his assumptions and help make the language better.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-would-success-look-like-&quot;&gt;What Would Success Look Like?&lt;/h3&gt;
&lt;p&gt;Bryan's definition of success is refreshingly modest.&lt;/p&gt;
&lt;p&gt;He doesn't need thousands of users or a large company to feel that the project has been worthwhile.&lt;/p&gt;
&lt;p&gt;His ideal milestone is simply hearing from one real developer who enjoys using scrml.&lt;/p&gt;
&lt;p&gt;As he puts it, success would be receiving an email or message from someone saying:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I enjoy writing scrml.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That alone would make the work worthwhile.&lt;/p&gt;
&lt;p&gt;He hopes scrml may eventually stand alongside other interesting programming languages, but he doesn't measure its value only through popularity.&lt;/p&gt;
&lt;p&gt;The immediate goal is to build something genuinely useful and invite other developers to help shape it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-freedom-to-keep-programming-for-the-right-reasons&quot;&gt;The Freedom to Keep Programming for the Right Reasons&lt;/h3&gt;
&lt;p&gt;One of the most interesting parts of Bryan's story is that he hasn't followed the conventional professional software-development route.&lt;/p&gt;
&lt;p&gt;He isn't building scrml because an employer assigned it to him.&lt;/p&gt;
&lt;p&gt;He isn't chasing a job title or trying to meet a commercial delivery deadline.&lt;/p&gt;
&lt;p&gt;He codes when and what he wants to.&lt;/p&gt;
&lt;p&gt;That freedom has helped him avoid becoming burned out or jaded about programming.&lt;/p&gt;
&lt;p&gt;He also doesn't force himself to read documentation or follow technologies that don't interest him.&lt;/p&gt;
&lt;p&gt;Instead, he can focus deeply on the ideas that capture his attention.&lt;/p&gt;
&lt;p&gt;That doesn't mean the journey is free of frustration.&lt;/p&gt;
&lt;p&gt;Building a programming language is difficult, and Bryan is candid about the challenges.&lt;/p&gt;
&lt;p&gt;But his motivation comes from genuine curiosity rather than external pressure.&lt;/p&gt;
&lt;p&gt;It is a reminder that unconventional paths can provide their own advantages.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;advice-for-developers-with-unusual-ideas&quot;&gt;Advice for Developers With Unusual Ideas&lt;/h3&gt;
&lt;p&gt;Bryan's advice to someone with an unconventional programming idea is direct:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“If you have an idea, and you think it is worth attention. Scream it from the rooftops.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He doesn't believe that a lack of a traditional background, job title or established resources should automatically stop someone from pursuing an interesting idea.&lt;/p&gt;
&lt;p&gt;Ideas should be exposed to discussion.&lt;/p&gt;
&lt;p&gt;They should be questioned.&lt;/p&gt;
&lt;p&gt;They should be challenged.&lt;/p&gt;
&lt;p&gt;And sometimes they should be corrected.&lt;/p&gt;
&lt;p&gt;Bryan sees correction as an opportunity rather than something to fear.&lt;/p&gt;
&lt;p&gt;The worst outcome, in his view, is that someone points out where your assumptions are wrong.&lt;/p&gt;
&lt;p&gt;That is far better than allowing insecurity to prevent you from trying.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-truck-driver-to-language-creator&quot;&gt;From Truck Driver to Language Creator&lt;/h3&gt;
&lt;p&gt;Bryan MacLee's journey is not a conventional story about becoming a software engineer and climbing a corporate career ladder.&lt;/p&gt;
&lt;p&gt;It is about someone who loves programming enough to question the tools he uses and attempt to build something different.&lt;/p&gt;
&lt;p&gt;His journey began with JavaScript, frustration with web development's complexity, curiosity about language design and one seemingly insignificant problem: naming a temporary variable.&lt;/p&gt;
&lt;p&gt;That small frustration grew into scrml, a compiled language with ambitions around state, type safety, application structure and compiler-driven correctness.&lt;/p&gt;
&lt;p&gt;The implementation is still evolving.&lt;/p&gt;
&lt;p&gt;The architecture is being reconsidered.&lt;/p&gt;
&lt;p&gt;And the project needs developers willing to test, question and contribute.&lt;/p&gt;
&lt;p&gt;But Bryan's motivation remains clear.&lt;/p&gt;
&lt;p&gt;He isn't building scrml simply to prove that he can build a programming language.&lt;/p&gt;
&lt;p&gt;He's building it because he believes programming can be made better — and because the act of creating software is, to him, one of the most remarkable things humans have ever learned to do.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-bryan-maclee&quot;&gt;About Bryan MacLee&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Bryan+MacLee&quot;&gt;Bryan MacLee&lt;/a&gt;&lt;/strong&gt; is a truck driver specialising in the oil and gas industry and an independent programming-language developer.&lt;/p&gt;
&lt;p&gt;He is the creator of &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrml.dev/&quot;&gt;scrml&lt;/a&gt;, an open-source compiled language for web development that generates HTML, CSS and JavaScript.&lt;/p&gt;
&lt;p&gt;His preferred technologies include JavaScript, HTML and CSS, and his interests include language design, compiler development, state management and reducing unnecessary complexity in web development.&lt;/p&gt;
&lt;p&gt;Connect with &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Bryan+MacLee&quot;&gt;Bryan MacLee on CoderLegion&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Bryan's story is a reminder that a good idea doesn't need to come from a conventional career path.&lt;/p&gt;
&lt;p&gt;Sometimes it starts with a simple frustration — and the willingness to ask:&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;interview-amp-story-by-mehadi-hasan-3&quot;&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/29769/programming-is-magic-bryan-maclees-journey-building-scrml</guid>
<pubDate>Sun, 04 Oct 2026 22:32:36 +0000</pubDate>
</item>
<item>
<title>From a VIC-20 to Code and Sea — Brent Vardy’s Developer Journey</title>
<link>https://coderlegion.com/28888/from-a-vic-20-to-code-and-sea-brent-vardys-developer-journey</link>
<description>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real lessons.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Brent Vardy has been writing software for more than four decades. His journey started with a Commodore VIC-20 and 5KB of RAM, continued through decades of professional software development, and has now led him toward a very different goal: building his own products as a solo indie founder.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Mehadi+Hasan&quot;&gt;Mehadi Hasan&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-started-with-a-commodore-vic-20&quot;&gt;It Started With a Commodore VIC-20&lt;/h3&gt;
&lt;p&gt;Brent Vardy's programming journey began around 45 years ago.&lt;/p&gt;
&lt;p&gt;In late 1981, when he was nine years old, he received a Commodore VIC-20 home computer.&lt;/p&gt;
&lt;p&gt;There wasn't much software available, and what was available was too expensive for a nine-year-old.&lt;/p&gt;
&lt;p&gt;But Brent already had an interest in something that would eventually shape his approach to software: adventure books.&lt;/p&gt;
&lt;p&gt;These weren't ordinary books. Readers navigated them by answering questions at the bottom of each page, with their answers determining which page they should read next.&lt;/p&gt;
&lt;p&gt;So Brent decided to recreate that experience on his VIC-20.&lt;/p&gt;
&lt;p&gt;The computer came with Commodore BASIC 2.0, and he used it to turn some of his adventure books into interactive games.&lt;/p&gt;
&lt;p&gt;All of this ran in just &lt;strong&gt;5KB of RAM&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;There was no GitHub.&lt;/p&gt;
&lt;p&gt;No cloud storage.&lt;/p&gt;
&lt;p&gt;No source control.&lt;/p&gt;
&lt;p&gt;Brent stored his code on a tape recorder through a serial cable.&lt;/p&gt;
&lt;p&gt;And sometimes, he lost the code and had to type everything again from scratch.&lt;/p&gt;
&lt;p&gt;That early experience taught him something that would stay with him for decades: he loved creating small, useful applications.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-school-projects-to-building-useful-software&quot;&gt;From School Projects to Building Useful Software&lt;/h3&gt;
&lt;p&gt;After the VIC-20 came a Commodore 64 and then an Acorn Electron.&lt;/p&gt;
&lt;p&gt;Brent was also part of one of the first classes at his school to be offered Computer Studies.&lt;/p&gt;
&lt;p&gt;Around the same time, CD players were becoming popular in the UK.&lt;/p&gt;
&lt;p&gt;His father was an electrical engineer and music lover, so Brent decided to build a school project around CD players.&lt;/p&gt;
&lt;p&gt;He created an application that stored information about the different manufacturers and models available at the time, including specifications and prices.&lt;/p&gt;
&lt;p&gt;He didn't call it a database.&lt;/p&gt;
&lt;p&gt;Technically, it was an application with all the information hardcoded into the program and loaded into memory.&lt;/p&gt;
&lt;p&gt;If a new CD player appeared, Brent had to modify the source code, save it back to tape and reload the application.&lt;/p&gt;
&lt;p&gt;But the important part wasn't the architecture.&lt;/p&gt;
&lt;p&gt;It was the experience of building something useful.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“Building this hooked me and started my love of creating small useful applications.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That idea would eventually become a recurring theme throughout Brent's career.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;decades-of-building-and-experimenting&quot;&gt;Decades of Building and Experimenting&lt;/h3&gt;
&lt;p&gt;Brent's path wasn't a straight line toward entrepreneurship.&lt;/p&gt;
&lt;p&gt;Over the years, he worked on many side projects with friends and colleagues.&lt;/p&gt;
&lt;p&gt;Not all of them worked.&lt;/p&gt;
&lt;p&gt;In fact, Brent openly describes having built several products that ultimately failed.&lt;/p&gt;
&lt;p&gt;But the failures didn't remove his desire to build something of his own.&lt;/p&gt;
&lt;p&gt;They became part of the learning process.&lt;/p&gt;
&lt;p&gt;He continued experimenting, learning new technologies and creating software for himself, his family, friends and colleagues.&lt;/p&gt;
&lt;p&gt;Some projects were practical.&lt;/p&gt;
&lt;p&gt;Others were simply for fun.&lt;/p&gt;
&lt;p&gt;The important thing was that he enjoyed the process of building.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-corporate-developer-to-indie-founder&quot;&gt;From Corporate Developer to Indie Founder&lt;/h3&gt;
&lt;p&gt;The idea of seriously building his own products began to take shape in 2026.&lt;/p&gt;
&lt;p&gt;Brent had been thinking about semi-retirement and wanted to create something that could support that lifestyle without requiring him to access his pension early.&lt;/p&gt;
&lt;p&gt;He had already been working on a meditation application for himself.&lt;/p&gt;
&lt;p&gt;Instead of keeping it as another personal project, he decided to see whether it could become his first product.&lt;/p&gt;
&lt;p&gt;This time, however, he approached things differently.&lt;/p&gt;
&lt;p&gt;He registered a company first.&lt;/p&gt;
&lt;p&gt;That company became &lt;strong&gt;Code and Sea&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The name reflects a personal goal shared by Brent and his wife: eventually moving to the coast and creating a lifestyle with more freedom and flexibility.&lt;/p&gt;
&lt;p&gt;Code and Sea is his attempt to build toward that future through software.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-building-became-more-personal&quot;&gt;When Building Became More Personal&lt;/h3&gt;
&lt;p&gt;For Brent, becoming an indie developer isn't simply about escaping a corporate job.&lt;/p&gt;
&lt;p&gt;It's about gaining control over how he spends his time and energy.&lt;/p&gt;
&lt;p&gt;After many years in a corporate environment, he wanted greater flexibility to decide what he worked on, when he worked and which projects deserved his attention.&lt;/p&gt;
&lt;p&gt;That became particularly important because managing his available energy is a significant part of his day-to-day life.&lt;/p&gt;
&lt;p&gt;Building software can be demanding, but Brent also describes coding as an escape.&lt;/p&gt;
&lt;p&gt;When his physical energy is low but his mind is clear, writing code gives him a way to solve problems, create things and feel productive at his own pace.&lt;/p&gt;
&lt;p&gt;That has also influenced how he thinks about features.&lt;/p&gt;
&lt;p&gt;He has become much more selective about what he builds.&lt;/p&gt;
&lt;p&gt;And that constraint has turned out to be useful.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-push-into-indie-development&quot;&gt;The Push Into Indie Development&lt;/h3&gt;
&lt;p&gt;Brent had spent 28 years with his previous company when he was told in September 2026 that his role would end at the end of the month.&lt;/p&gt;
&lt;p&gt;It was a shock.&lt;/p&gt;
&lt;p&gt;There was uncertainty about what would happen next.&lt;/p&gt;
&lt;p&gt;But Brent doesn't describe the experience with bitterness.&lt;/p&gt;
&lt;p&gt;Instead, after accepting the decision, he began seeing it as the push he needed.&lt;/p&gt;
&lt;p&gt;He had spent 28 years learning, developing skills and building relationships.&lt;/p&gt;
&lt;p&gt;Now he had an opportunity to finally pursue something he had wanted to do for years.&lt;/p&gt;
&lt;p&gt;From October 1, Brent would have much more control over the decisions and direction he took.&lt;/p&gt;
&lt;p&gt;Successful or not.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-code-and-sea-exists&quot;&gt;Why Code and Sea Exists&lt;/h3&gt;
&lt;p&gt;Code and Sea isn't being built around the idea of creating the next huge technology company.&lt;/p&gt;
&lt;p&gt;Brent's motivation is much more personal.&lt;/p&gt;
&lt;p&gt;He wants to build products he enjoys, generate enough revenue to support his lifestyle and eventually move toward a slower life by the sea.&lt;/p&gt;
&lt;p&gt;He is also building products based on problems he personally experiences.&lt;/p&gt;
&lt;p&gt;That philosophy is visible in his growing backlog of product ideas.&lt;/p&gt;
&lt;p&gt;Many of them come from applications he already uses but doesn't completely like.&lt;/p&gt;
&lt;p&gt;Sometimes they're too complicated.&lt;/p&gt;
&lt;p&gt;Sometimes they include features he doesn't need.&lt;/p&gt;
&lt;p&gt;Sometimes they require a subscription for functionality Brent doesn't want.&lt;/p&gt;
&lt;p&gt;His response is simple:&lt;/p&gt;
&lt;p&gt;Build his own version.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;mantra-meditation-timer-building-what-he-actually-needed&quot;&gt;Mantra Meditation Timer: Building What He Actually Needed&lt;/h3&gt;
&lt;p&gt;One of those ideas became &lt;strong&gt;Mantra Meditation Timer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Brent had been using meditation applications for many years but couldn't find one that worked exactly the way he wanted.&lt;/p&gt;
&lt;p&gt;He found many meditation apps distracting.&lt;/p&gt;
&lt;p&gt;Notifications.&lt;/p&gt;
&lt;p&gt;Social features.&lt;/p&gt;
&lt;p&gt;Content feeds.&lt;/p&gt;
&lt;p&gt;Recommendations.&lt;/p&gt;
&lt;p&gt;Too many things happening when he simply wanted to meditate.&lt;/p&gt;
&lt;p&gt;So he built his own.&lt;/p&gt;
&lt;p&gt;The goal was intentionally simple:&lt;/p&gt;
&lt;p&gt;Open the app.&lt;/p&gt;
&lt;p&gt;Start the meditation.&lt;/p&gt;
&lt;p&gt;No distractions.&lt;/p&gt;
&lt;p&gt;No social feed.&lt;/p&gt;
&lt;p&gt;No unnecessary information.&lt;/p&gt;
&lt;p&gt;Just the tools needed for his personal practice.&lt;/p&gt;
&lt;p&gt;Interestingly, Mantra Timer wasn't actually Brent's first attempt.&lt;/p&gt;
&lt;p&gt;It was the third meditation application he had built.&lt;/p&gt;
&lt;p&gt;The first two were more like clones of existing mainstream apps.&lt;/p&gt;
&lt;p&gt;Eventually, he realized that copying what other applications were doing wasn't the answer.&lt;/p&gt;
&lt;p&gt;He only needed the features that mattered to him.&lt;/p&gt;
&lt;p&gt;So he stripped the idea back.&lt;/p&gt;
&lt;p&gt;And something unexpected happened.&lt;/p&gt;
&lt;p&gt;Other people felt the same way.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-real-users-changed-the-product&quot;&gt;When Real Users Changed the Product&lt;/h3&gt;
&lt;p&gt;Brent initially believed he might be the only person who would use Mantra Timer.&lt;/p&gt;
&lt;p&gt;He was fine with that.&lt;/p&gt;
&lt;p&gt;Then people started asking to become beta testers.&lt;/p&gt;
&lt;p&gt;He created a form on his website.&lt;/p&gt;
&lt;p&gt;People signed up.&lt;/p&gt;
&lt;p&gt;And the feedback turned out to be extremely valuable.&lt;/p&gt;
&lt;p&gt;The experience changed his view of product development.&lt;/p&gt;
&lt;p&gt;Real users exposed problems and opportunities that Brent couldn't have discovered simply by building alone.&lt;/p&gt;
&lt;p&gt;His advice to founders is straightforward:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Get real users involved early.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Feedback can be uncomfortable.&lt;/p&gt;
&lt;p&gt;People will criticize things you've spent hours building.&lt;/p&gt;
&lt;p&gt;But that criticism can also produce a much better product.&lt;/p&gt;
&lt;p&gt;For Brent, the beta programme became one of the most important parts of getting Mantra Timer ready for release.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-to-ship-before-everything-is-perfect&quot;&gt;Learning to Ship Before Everything Is Perfect&lt;/h3&gt;
&lt;p&gt;One of Brent's biggest lessons from building Mantra Timer was that building the product isn't necessarily the hardest part.&lt;/p&gt;
&lt;p&gt;Shipping is.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“Building the product is easy, having the confidence and knowing when to ship is hard.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Having around 15 active beta testers gave him confidence that the product was solving a real problem.&lt;/p&gt;
&lt;p&gt;It also gave him people who were using the application regularly and could identify issues before public release.&lt;/p&gt;
&lt;p&gt;That experience changed his attitude toward perfection.&lt;/p&gt;
&lt;p&gt;Brent became more comfortable sharing a product earlier, even if it wasn't completely polished.&lt;/p&gt;
&lt;p&gt;If the product is usable and testers understand that they're using an early version, polish can come later.&lt;/p&gt;
&lt;p&gt;The important thing is to discover whether the product actually solves the problem.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-lesson-from-failed-projects&quot;&gt;The Lesson From Failed Projects&lt;/h3&gt;
&lt;p&gt;Brent has built several projects over the years that never became successful products.&lt;/p&gt;
&lt;p&gt;Two examples he mentions are LocationCounts and UKMapfinder.&lt;/p&gt;
&lt;p&gt;In both cases, he started with a problem he wanted to solve.&lt;/p&gt;
&lt;p&gt;Then something happened that developers know very well.&lt;/p&gt;
&lt;p&gt;He kept adding features.&lt;/p&gt;
&lt;p&gt;The projects became bigger.&lt;/p&gt;
&lt;p&gt;The software became more complicated.&lt;/p&gt;
&lt;p&gt;But the products weren't being tested with real users.&lt;/p&gt;
&lt;p&gt;Eventually, they launched and simply died.&lt;/p&gt;
&lt;p&gt;That experience taught Brent something important about product development.&lt;/p&gt;
&lt;p&gt;More features don't necessarily make a product better.&lt;/p&gt;
&lt;p&gt;In fact, limiting features can be an advantage.&lt;/p&gt;
&lt;p&gt;A smaller product is faster to launch, easier to maintain and easier for users to understand.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;choosing-technology-without-chasing-trends&quot;&gt;Choosing Technology Without Chasing Trends&lt;/h3&gt;
&lt;p&gt;Brent has worked with a remarkably broad range of technologies over the years.&lt;/p&gt;
&lt;p&gt;His experience includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Swift&lt;/li&gt;
&lt;li&gt;SwiftUI&lt;/li&gt;
&lt;li&gt;SwiftData&lt;/li&gt;
&lt;li&gt;PHP&lt;/li&gt;
&lt;li&gt;Laravel&lt;/li&gt;
&lt;li&gt;Livewire&lt;/li&gt;
&lt;li&gt;TailwindCSS&lt;/li&gt;
&lt;li&gt;AlpineJS&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;C&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Objective-C&lt;/li&gt;
&lt;li&gt;Delphi&lt;/li&gt;
&lt;li&gt;Node&lt;/li&gt;
&lt;li&gt;Golang&lt;/li&gt;
&lt;li&gt;And many others&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These days, he generally uses &lt;strong&gt;PHP and Laravel&lt;/strong&gt; for web applications, &lt;strong&gt;Python&lt;/strong&gt; for automation and command-line tools, and &lt;strong&gt;Swift&lt;/strong&gt; for Apple platform development.&lt;/p&gt;
&lt;p&gt;But Brent doesn't choose technology simply because it's the newest thing.&lt;/p&gt;
&lt;p&gt;He prefers technologies he already knows and trusts.&lt;/p&gt;
&lt;p&gt;If his preferred stack can solve the problem, he will usually stick with it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“My opinion is the final product is more important than the actual stack used.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It's a practical philosophy developed through decades of software development.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-swift-and-swiftui-&quot;&gt;Why Swift and SwiftUI?&lt;/h3&gt;
&lt;p&gt;Brent particularly enjoys Apple's development ecosystem.&lt;/p&gt;
&lt;p&gt;One reason is access to Apple's native APIs.&lt;/p&gt;
&lt;p&gt;Instead of depending heavily on third-party plugins, he can work directly with Apple's platform capabilities.&lt;/p&gt;
&lt;p&gt;He also appreciates services such as iCloud and Maps, which can be integrated into applications without the same kind of usage-based costs that some third-party platforms introduce.&lt;/p&gt;
&lt;p&gt;He likes the documentation and believes native Swift applications can provide a particularly good user experience.&lt;/p&gt;
&lt;p&gt;For his current product direction, Swift and SwiftUI make a natural fit.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-reality-of-being-a-solo-founder&quot;&gt;The Reality of Being a Solo Founder&lt;/h3&gt;
&lt;p&gt;Being a solo founder means doing much more than writing code.&lt;/p&gt;
&lt;p&gt;Development is only one part of the job.&lt;/p&gt;
&lt;p&gt;There is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Product development&lt;/li&gt;
&lt;li&gt;Design&lt;/li&gt;
&lt;li&gt;Marketing&lt;/li&gt;
&lt;li&gt;Distribution&lt;/li&gt;
&lt;li&gt;Customer discovery&lt;/li&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;li&gt;Support&lt;/li&gt;
&lt;li&gt;Business decisions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Brent is comfortable with most of these areas.&lt;/p&gt;
&lt;p&gt;The two areas he says he needs to improve most are &lt;strong&gt;design and marketing&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Now that he has more time available, those are areas he plans to focus on.&lt;/p&gt;
&lt;p&gt;He also prefers learning and doing things himself rather than immediately outsourcing them.&lt;/p&gt;
&lt;p&gt;But he's beginning to recognize that there may be situations where outsourcing is simply the pragmatic choice.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-developer-to-product-builder&quot;&gt;From Developer to Product Builder&lt;/h3&gt;
&lt;p&gt;Building products for himself and for corporate users was different from building something that strangers are expected to pay for.&lt;/p&gt;
&lt;p&gt;When building internal software, there is often an existing specification.&lt;/p&gt;
&lt;p&gt;When building a personal project, the requirements can come directly from your own needs.&lt;/p&gt;
&lt;p&gt;But when you're asking the public to spend money, every decision becomes more important.&lt;/p&gt;
&lt;p&gt;Brent says Mantra Timer taught him to get products in front of users quickly and genuinely listen to what they say.&lt;/p&gt;
&lt;p&gt;That represents a significant change in his approach to software.&lt;/p&gt;
&lt;p&gt;Instead of spending months trying to make something perfect before showing anyone, he now sees real-world feedback as part of the development process itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-does-success-mean-to-brent-&quot;&gt;What Does Success Mean to Brent?&lt;/h3&gt;
&lt;p&gt;Brent has a realistic definition of success.&lt;/p&gt;
&lt;p&gt;He isn't necessarily trying to build a huge company or reach the kind of revenue numbers frequently shared in indie-founder communities.&lt;/p&gt;
&lt;p&gt;For him, Code and Sea is about creating a sustainable life around something he enjoys.&lt;/p&gt;
&lt;p&gt;If the business eventually generates around &lt;strong&gt;£20,000 per year&lt;/strong&gt;, he would consider that a success.&lt;/p&gt;
&lt;p&gt;But the money isn't the only measurement.&lt;/p&gt;
&lt;p&gt;Success also means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Having control over his time&lt;/li&gt;
&lt;li&gt;Continuing to build software&lt;/li&gt;
&lt;li&gt;Keeping his mind active&lt;/li&gt;
&lt;li&gt;Helping and supporting other people&lt;/li&gt;
&lt;li&gt;Creating products he enjoys&lt;/li&gt;
&lt;li&gt;Building toward a life by the sea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Brent, the journey matters as much as the destination.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-in-public-doesn-t-automatically-mean-customers&quot;&gt;Building in Public Doesn't Automatically Mean Customers&lt;/h3&gt;
&lt;p&gt;Brent has also learned something important about building in public.&lt;/p&gt;
&lt;p&gt;Sharing your work doesn't automatically produce customers.&lt;/p&gt;
&lt;p&gt;At least, it hasn't done so for him yet.&lt;/p&gt;
&lt;p&gt;But that doesn't mean building in public has been a failure.&lt;/p&gt;
&lt;p&gt;Quite the opposite.&lt;/p&gt;
&lt;p&gt;It has helped him meet other founders and developers who have become valuable sources of advice, testing, launch support and encouragement.&lt;/p&gt;
&lt;p&gt;Running a solo business can be lonely.&lt;/p&gt;
&lt;p&gt;Having other people who understand what you're going through can make a significant difference.&lt;/p&gt;
&lt;p&gt;Brent particularly values the relationships he's developed with other founders through this process.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-coderlegion-matters-to-brent&quot;&gt;Why CoderLegion Matters to Brent&lt;/h3&gt;
&lt;p&gt;Brent joined CoderLegion because he enjoys seeing what other developers and founders are building.&lt;/p&gt;
&lt;p&gt;He also made a conscious decision to support other independent developers whenever possible.&lt;/p&gt;
&lt;p&gt;If he needs an application or service, he tries to consider products created by people in similar situations.&lt;/p&gt;
&lt;p&gt;His hope is that this kind of support can eventually be paid forward.&lt;/p&gt;
&lt;p&gt;He describes CoderLegion as welcoming and appreciates its more down-to-earth atmosphere.&lt;/p&gt;
&lt;p&gt;Compared with some other indie communities, he feels CoderLegion is more realistic for developers who are still building their businesses and haven't reached huge recurring revenues.&lt;/p&gt;
&lt;p&gt;That's important to him.&lt;/p&gt;
&lt;p&gt;He doesn't want unrealistic expectations.&lt;/p&gt;
&lt;p&gt;He wants a community where developers can share what they're actually doing.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“I want to stay firmly on the ground and realistic.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-s-next-for-code-and-sea-&quot;&gt;What's Next for Code and Sea?&lt;/h3&gt;
&lt;p&gt;Brent currently has several products in development.&lt;/p&gt;
&lt;p&gt;His immediate focus includes adding additional language support to Mantra Timer and preparing a TestFlight beta for its watchOS version.&lt;/p&gt;
&lt;p&gt;He's also continuing work on &lt;strong&gt;Tidal Draft&lt;/strong&gt;, another product based on a problem he personally encountered.&lt;/p&gt;
&lt;p&gt;Tidal Draft is intended to provide an alternative to an existing product that Brent uses but feels charges a subscription for functionality he doesn't need.&lt;/p&gt;
&lt;p&gt;His version will use a pay-as-you-go model.&lt;/p&gt;
&lt;p&gt;He plans to begin inviting people into a private beta and eventually launch Tidal Draft on CoderLegion for users to test.&lt;/p&gt;
&lt;p&gt;Beyond that, Brent has a backlog of product ideas he wants to explore.&lt;/p&gt;
&lt;p&gt;His goal for the first year is relatively simple:&lt;/p&gt;
&lt;p&gt;Release one or two products that generate enough revenue to cover the costs of running Code and Sea.&lt;/p&gt;
&lt;p&gt;Then build from there.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;one-unexpected-setback&quot;&gt;One Unexpected Setback&lt;/h3&gt;
&lt;p&gt;Brent's journey also demonstrates that indie development rarely follows a perfect timeline.&lt;/p&gt;
&lt;p&gt;Mantra Timer was originally called &lt;strong&gt;Trancendence&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Just hours before the first version received App Store approval, Brent was contacted by a legal firm representing the Maharishi Foundation.&lt;/p&gt;
&lt;p&gt;They raised concerns about the app's branding and trademarks.&lt;/p&gt;
&lt;p&gt;Brent couldn't afford a legal fight, so he rebranded the application.&lt;/p&gt;
&lt;p&gt;The unexpected change took considerably longer than planned.&lt;/p&gt;
&lt;p&gt;It's another example of something that doesn't appear in a coding tutorial:&lt;/p&gt;
&lt;p&gt;Building a product means dealing with everything around the code as well.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-brent-would-do-differently&quot;&gt;What Brent Would Do Differently&lt;/h3&gt;
&lt;p&gt;If Brent could go back and change one thing about his indie journey, he wouldn't choose a different programming language or framework.&lt;/p&gt;
&lt;p&gt;He would simply start earlier.&lt;/p&gt;
&lt;p&gt;And he would release earlier.&lt;/p&gt;
&lt;p&gt;His biggest lesson is that waiting until a product is polished can delay the most valuable thing a founder can get:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;real user feedback.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“Get it out there as soon as possible to get real user feedback.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;brent-s-advice-to-developers-thinking-about-going-indie&quot;&gt;Brent's Advice to Developers Thinking About Going Indie&lt;/h3&gt;
&lt;p&gt;Brent's advice is practical rather than glamorous.&lt;/p&gt;
&lt;p&gt;First, be realistic.&lt;/p&gt;
&lt;p&gt;Building your own products is hard.&lt;/p&gt;
&lt;p&gt;You will fail.&lt;/p&gt;
&lt;p&gt;Probably more than once.&lt;/p&gt;
&lt;p&gt;He recommends having a financial cushion — around 12 months if possible — so financial pressure doesn't constantly distract you from building.&lt;/p&gt;
&lt;p&gt;He also recommends avoiding the temptation to chase every new technology.&lt;/p&gt;
&lt;p&gt;Use proven technologies with strong communities, documentation and available information.&lt;/p&gt;
&lt;p&gt;Then get your product into the hands of real users as early as possible.&lt;/p&gt;
&lt;p&gt;Find trusted people who will actually test it.&lt;/p&gt;
&lt;p&gt;Listen to their feedback.&lt;/p&gt;
&lt;p&gt;Use that feedback to determine whether the product is worth continuing.&lt;/p&gt;
&lt;p&gt;And don't expect instant traction.&lt;/p&gt;
&lt;p&gt;Give the product time.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“If nothing happens immediately keep going, give it a chance before quitting and moving to the next thing.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-5kb-of-ram-to-building-his-own-future&quot;&gt;From 5KB of RAM to Building His Own Future&lt;/h3&gt;
&lt;p&gt;Brent's developer journey spans an extraordinary amount of technological change.&lt;/p&gt;
&lt;p&gt;He started with a Commodore VIC-20 and 5KB of memory.&lt;/p&gt;
&lt;p&gt;He stored code on cassette tape.&lt;/p&gt;
&lt;p&gt;He built simple applications because he wanted to make something useful.&lt;/p&gt;
&lt;p&gt;Decades later, he's still doing essentially the same thing.&lt;/p&gt;
&lt;p&gt;The tools have changed.&lt;/p&gt;
&lt;p&gt;The platforms have changed.&lt;/p&gt;
&lt;p&gt;The scale has changed.&lt;/p&gt;
&lt;p&gt;But the motivation hasn't.&lt;/p&gt;
&lt;p&gt;He still enjoys taking an idea, turning it into software and seeing whether someone finds it useful.&lt;/p&gt;
&lt;p&gt;The difference now is that he's building toward something much more personal.&lt;/p&gt;
&lt;p&gt;Code and Sea isn't simply another software company.&lt;/p&gt;
&lt;p&gt;For Brent, it's an attempt to design a different way of working and living — one where he can continue creating software, support himself, help others and eventually build the life he and his wife have imagined by the sea.&lt;/p&gt;
&lt;p&gt;And perhaps that's the most interesting part of his journey.&lt;/p&gt;
&lt;p&gt;After more than four decades of programming, Brent isn't finished building.&lt;/p&gt;
&lt;p&gt;He's simply building for himself now.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-brent-vardy&quot;&gt;About Brent Vardy&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Brent Vardy&lt;/strong&gt; is a UK-based software developer and the founder of &lt;a rel=&quot;nofollow&quot; href=&quot;https://codeandsea.com/&quot;&gt;Code and Sea&lt;/a&gt;, a solo indie venture focused on building practical software products.&lt;/p&gt;
&lt;p&gt;His technology experience spans decades and includes Swift, SwiftUI, SwiftData, PHP, Laravel, Livewire, TailwindCSS, AlpineJS, Python and many other technologies.&lt;/p&gt;
&lt;p&gt;His current projects include &lt;strong&gt;Mantra Meditation Timer&lt;/strong&gt; and &lt;strong&gt;Tidal Draft&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You can connect with Brent on &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/brentvardy&quot;&gt;CoderLegion&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;developer-stories-at-coderlegion-3&quot;&gt;Developer Stories at CoderLegion&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Stories&lt;/strong&gt; is a CoderLegion series featuring real developers and their journeys — the projects they build, the challenges they encounter, the lessons they learn and the decisions that shape their careers.&lt;/p&gt;
&lt;p&gt;There isn't one correct path into software development.&lt;/p&gt;
&lt;p&gt;Some developers start at university.&lt;/p&gt;
&lt;p&gt;Some teach themselves.&lt;/p&gt;
&lt;p&gt;Some build companies.&lt;/p&gt;
&lt;p&gt;Some build small tools for themselves.&lt;/p&gt;
&lt;p&gt;And some, like Brent, have been building software since the days when 5KB of RAM was enough to get started.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;interview-amp-story-by-mehadi-hasan-4&quot;&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Want to share your own developer journey?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have a story, project, career transition or learning experience you'd like to share with the CoderLegion community, we'd love to hear from you.&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/28888/from-a-vic-20-to-code-and-sea-brent-vardys-developer-journey</guid>
<pubDate>Mon, 28 Sep 2026 08:27:09 +0000</pubDate>
</item>
<item>
<title>From Biology to Computer Science — Fahad Khalid’s Developer Journey</title>
<link>https://coderlegion.com/28885/from-biology-to-computer-science-fahad-khalids-developer-journey</link>
<description>&lt;h2 id=&quot;from-biology-to-computer-science-fahad-khalid-s-developer-journey&quot;&gt;From Biology to Computer Science — Fahad Khalid’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real lessons.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In this Developer Story, Fahad Khalid shares how a student who started with Biology found his way into Computer Science, gradually discovered his interests in AI, cloud computing and cybersecurity, and learned that building and practicing matter more than simply consuming courses and tutorials.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Interview &amp;amp; Story by &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Mehadi+Hasan&quot;&gt;Mehadi Hasan&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;CoderLegion Developer Stories&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-biology-to-computer-science&quot;&gt;From Biology to Computer Science&lt;/h3&gt;
&lt;p&gt;Fahad Khalid’s journey into technology wasn't completely planned from the beginning.&lt;/p&gt;
&lt;p&gt;He had been interested in computers, mobile phones and gaming since childhood, but during matric and intermediate he studied Biology. Eventually, he realized that Biology simply wasn't where his interests were.&lt;/p&gt;
&lt;p&gt;That led him toward Computer Science.&lt;/p&gt;
&lt;p&gt;Before formally moving into CS, Fahad had already experimented with technology through platforms such as WordPress, Wix and Android Studio. At the time, however, he didn't have a strong understanding of how those technologies actually worked.&lt;/p&gt;
&lt;p&gt;He mostly learned through YouTube and experimentation.&lt;/p&gt;
&lt;p&gt;That early curiosity eventually developed into a more serious interest in software, AI, cloud computing and cybersecurity.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;starting-computer-science-without-a-technical-background&quot;&gt;Starting Computer Science Without a Technical Background&lt;/h3&gt;
&lt;p&gt;Moving from Biology into Computer Science meant Fahad had to build his technical foundations from the ground up.&lt;/p&gt;
&lt;p&gt;Programming, problem solving, data structures, databases and other concepts were new to him.&lt;/p&gt;
&lt;p&gt;Rather than expecting himself to understand everything immediately, he gradually developed a more practical approach to learning.&lt;/p&gt;
&lt;p&gt;He practiced.&lt;/p&gt;
&lt;p&gt;He made mistakes.&lt;/p&gt;
&lt;p&gt;He debugged.&lt;/p&gt;
&lt;p&gt;He returned to difficult concepts repeatedly.&lt;/p&gt;
&lt;p&gt;Professors also encouraged him at different points in his journey.&lt;/p&gt;
&lt;p&gt;Over time, one lesson became particularly important:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Consistency matters much more than trying to learn everything quickly.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Fahad, learning Computer Science became less about understanding everything immediately and more about continuing to make progress.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;finding-direction-through-exploration&quot;&gt;Finding Direction Through Exploration&lt;/h3&gt;
&lt;p&gt;When Fahad started Computer Science, he didn't have a perfectly defined roadmap.&lt;/p&gt;
&lt;p&gt;He explored different technologies and gradually discovered the areas that kept his curiosity alive.&lt;/p&gt;
&lt;p&gt;Eventually, AI, cloud computing and cybersecurity became some of the areas he was most interested in.&lt;/p&gt;
&lt;p&gt;He doesn't believe beginners necessarily need to choose a specialization immediately.&lt;/p&gt;
&lt;p&gt;Instead, he recommends exploring first, developing strong fundamentals and paying attention to the areas that continue to generate curiosity.&lt;/p&gt;
&lt;p&gt;For Fahad, direction came through experimentation rather than following a fixed roadmap from day one.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-learning-became-more-than-watching-tutorials&quot;&gt;When Learning Became More Than Watching Tutorials&lt;/h3&gt;
&lt;p&gt;One of the biggest changes in Fahad's learning approach came when he realized the difference between consuming information and actually applying it.&lt;/p&gt;
&lt;p&gt;It's easy to collect tutorials, courses, roadmaps and bookmarks and feel productive simply because you're constantly learning something new.&lt;/p&gt;
&lt;p&gt;But watching someone build something and being able to build it yourself are very different experiences.&lt;/p&gt;
&lt;p&gt;Fahad started putting more emphasis on doing.&lt;/p&gt;
&lt;p&gt;When he learned something, he tried to use it in a project, experiment with it or explain it to someone else.&lt;/p&gt;
&lt;p&gt;That shift helped him redefine what learning meant.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Learning isn't about how much content you have consumed. It's about what you can actually understand, apply and build.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-practical-skills-through-projects&quot;&gt;Building Practical Skills Through Projects&lt;/h3&gt;
&lt;p&gt;Personal projects and hands-on experimentation have played an important role in Fahad's development.&lt;/p&gt;
&lt;p&gt;Projects introduce problems that tutorials often don't.&lt;/p&gt;
&lt;p&gt;You have to debug unexpected behaviour, search for solutions, make technical decisions and sometimes rethink your approach completely.&lt;/p&gt;
&lt;p&gt;Those experiences create a deeper understanding.&lt;/p&gt;
&lt;p&gt;Git and GitHub also became important parts of Fahad's learning process.&lt;/p&gt;
&lt;p&gt;For him, GitHub isn't simply a place to upload code. It has become a record of what he has experimented with, what he has built and how his skills have developed over time.&lt;/p&gt;
&lt;p&gt;He also believes projects don't have to be huge or production-ready.&lt;/p&gt;
&lt;p&gt;Small projects can teach you a lot when you actually understand what you're doing instead of simply copying a tutorial.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-fahad-likes-microsoft-learn&quot;&gt;Why Fahad Likes Microsoft Learn&lt;/h3&gt;
&lt;p&gt;Among the resources Fahad has used, Microsoft Learn stands out because of its structure.&lt;/p&gt;
&lt;p&gt;There is an enormous amount of technical knowledge available online, but one of the biggest challenges for beginners can be knowing where to start and what to learn next.&lt;/p&gt;
&lt;p&gt;Microsoft Learn provides a more organized path.&lt;/p&gt;
&lt;p&gt;Fahad also appreciates that much of the learning content is available for free, giving beginners access to structured material without necessarily having to pay for courses elsewhere.&lt;/p&gt;
&lt;p&gt;For someone trying to navigate a large technology ecosystem, having a reliable starting point can make the learning process much easier.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;university-and-self-learning-should-work-together&quot;&gt;University and Self-Learning Should Work Together&lt;/h3&gt;
&lt;p&gt;Fahad doesn't see university and self-learning as competing approaches.&lt;/p&gt;
&lt;p&gt;Instead, he believes they complement each other.&lt;/p&gt;
&lt;p&gt;University provides fundamentals, theoretical understanding and exposure to important areas of Computer Science.&lt;/p&gt;
&lt;p&gt;But students also need practical experience outside the syllabus.&lt;/p&gt;
&lt;p&gt;For Fahad, that means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Building projects&lt;/li&gt;
&lt;li&gt;Using Git and GitHub&lt;/li&gt;
&lt;li&gt;Experimenting with technologies&lt;/li&gt;
&lt;li&gt;Participating in communities&lt;/li&gt;
&lt;li&gt;Teaching others&lt;/li&gt;
&lt;li&gt;Solving practical problems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He also doesn't believe students need to spend every free hour learning another technology.&lt;/p&gt;
&lt;p&gt;A few focused hours every week can make a significant difference when that time is spent consistently building and practicing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;certifications-should-support-learning&quot;&gt;Certifications Should Support Learning&lt;/h3&gt;
&lt;p&gt;Fahad sees certifications as useful, but not as the ultimate goal.&lt;/p&gt;
&lt;p&gt;A certification can provide structure, help validate understanding and demonstrate familiarity with a particular technology or platform.&lt;/p&gt;
&lt;p&gt;It can also help someone build credibility when they don't yet have much professional experience in an area.&lt;/p&gt;
&lt;p&gt;But collecting certificates without developing the underlying skills isn't enough.&lt;/p&gt;
&lt;p&gt;Fahad's approach is to treat certifications as one part of a broader learning process.&lt;/p&gt;
&lt;p&gt;Ideally, what you learn for a certification should also appear in your projects, experiments and practical work.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;appreciating-the-journey&quot;&gt;Appreciating the Journey&lt;/h3&gt;
&lt;p&gt;Fahad doesn't point to one dramatic lesson that he wishes he had learned earlier.&lt;/p&gt;
&lt;p&gt;Instead, he's comfortable with the way his journey has developed.&lt;/p&gt;
&lt;p&gt;There were things he could have done faster or more efficiently, but the small achievements along the way have given him genuine satisfaction.&lt;/p&gt;
&lt;p&gt;Moving from Biology into Computer Science, learning the fundamentals, building projects, participating in communities, teaching others and gradually discovering the areas he cares about most have all contributed to where he is today.&lt;/p&gt;
&lt;p&gt;Rather than wishing he had taken a completely different path, Fahad has learned to appreciate the progress that comes from taking one step at a time.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-fahad-wants-to-help-beginners&quot;&gt;Why Fahad Wants to Help Beginners&lt;/h3&gt;
&lt;p&gt;Fahad's interest in helping beginners comes partly from his own experience.&lt;/p&gt;
&lt;p&gt;He knows what it feels like to start without knowing exactly where to begin.&lt;/p&gt;
&lt;p&gt;For a new Computer Science student, the technology landscape can quickly become overwhelming.&lt;/p&gt;
&lt;p&gt;There is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web development&lt;/li&gt;
&lt;li&gt;AI&lt;/li&gt;
&lt;li&gt;Cloud&lt;/li&gt;
&lt;li&gt;Cybersecurity&lt;/li&gt;
&lt;li&gt;DevOps&lt;/li&gt;
&lt;li&gt;Programming languages&lt;/li&gt;
&lt;li&gt;Frameworks&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Hundreds of courses and tutorials&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It can easily feel as though everyone else is already ahead.&lt;/p&gt;
&lt;p&gt;Teaching has also changed the way Fahad thinks about learning.&lt;/p&gt;
&lt;p&gt;When you explain something to a beginner, you quickly discover whether you actually understand the fundamentals yourself.&lt;/p&gt;
&lt;p&gt;Through teaching, community participation and writing, Fahad has found that helping someone understand something that once seemed confusing can be genuinely rewarding.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-does-it-take-to-become-job-ready-&quot;&gt;What Does It Take to Become Job-Ready?&lt;/h3&gt;
&lt;p&gt;For Fahad, becoming job-ready isn't about completing the largest number of courses.&lt;/p&gt;
&lt;p&gt;It's about developing skills that can actually be demonstrated.&lt;/p&gt;
&lt;p&gt;He highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Strong fundamentals&lt;/li&gt;
&lt;li&gt;Problem solving&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Practical projects&lt;/li&gt;
&lt;li&gt;Git and GitHub&lt;/li&gt;
&lt;li&gt;Independent learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He also encourages students to build projects that aren't simply copies of tutorials.&lt;/p&gt;
&lt;p&gt;Even a small original project creates opportunities to make decisions, encounter bugs and explain why something was built in a particular way.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Courses can give you knowledge, but practical work gives you evidence that you can use that knowledge.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;you-don-t-need-to-learn-everything&quot;&gt;You Don't Need to Learn Everything&lt;/h3&gt;
&lt;p&gt;Technology changes quickly, and Fahad doesn't believe developers need to learn every new technology that appears.&lt;/p&gt;
&lt;p&gt;Instead, he recommends building strong fundamentals and evaluating new technologies based on their relevance.&lt;/p&gt;
&lt;p&gt;Some questions he considers include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does this solve a problem I'm actually interested in?&lt;/li&gt;
&lt;li&gt;Is it becoming useful in the area I'm working toward?&lt;/li&gt;
&lt;li&gt;Will learning it build on something I already understand?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not learning something immediately doesn't mean you can never learn it.&lt;/p&gt;
&lt;p&gt;Sometimes the right decision is simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“This isn't what I need right now.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;fahad-s-current-focus&quot;&gt;Fahad's Current Focus&lt;/h3&gt;
&lt;p&gt;Fahad is currently exploring several areas, particularly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Artificial intelligence&lt;/li&gt;
&lt;li&gt;Cloud computing&lt;/li&gt;
&lt;li&gt;Cybersecurity&lt;/li&gt;
&lt;li&gt;Microsoft technologies&lt;/li&gt;
&lt;li&gt;AWS&lt;/li&gt;
&lt;li&gt;Practical software development&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He is also focusing significantly on certifications as part of his structured learning while continuing his involvement in teaching, student communities and developer education.&lt;/p&gt;
&lt;p&gt;His broader goal is to continue developing the practical foundation needed to work across these areas rather than treating them as completely separate fields.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;fahad-s-experience-with-coderlegion&quot;&gt;Fahad's Experience With CoderLegion&lt;/h3&gt;
&lt;p&gt;Fahad has been part of CoderLegion for around a month to a month and a half and describes his experience as positive.&lt;/p&gt;
&lt;p&gt;One thing he appreciates is the active and supportive community.&lt;/p&gt;
&lt;p&gt;He has already published articles around career guidance and projects and sees CoderLegion as a platform where he can continue sharing content.&lt;/p&gt;
&lt;p&gt;Because he is still relatively new to the community, he is also looking forward to seeing how his involvement develops as the community grows.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-would-fahad-tell-his-younger-self-&quot;&gt;What Would Fahad Tell His Younger Self?&lt;/h3&gt;
&lt;p&gt;Interestingly, Fahad says he wouldn't change much.&lt;/p&gt;
&lt;p&gt;His journey wasn't perfectly planned.&lt;/p&gt;
&lt;p&gt;He explored different technologies, made mistakes, changed directions and gradually discovered what he was actually interested in.&lt;/p&gt;
&lt;p&gt;Those experiments helped him understand not only what he liked, but also what he didn't want to pursue.&lt;/p&gt;
&lt;p&gt;If he could tell his younger self anything, it would be to trust the process more and not feel pressured to have everything figured out early.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;You can have a direction without having the entire path planned.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;advice-for-beginners&quot;&gt;Advice for Beginners&lt;/h3&gt;
&lt;p&gt;Fahad's advice is straightforward:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don't try to learn everything at once.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When you start Computer Science, it can feel as though you are expected to know programming, web development, AI, cloud, cybersecurity, databases, Git, DevOps and dozens of frameworks.&lt;/p&gt;
&lt;p&gt;You don't.&lt;/p&gt;
&lt;p&gt;Start with the fundamentals.&lt;/p&gt;
&lt;p&gt;Pick one direction that interests you.&lt;/p&gt;
&lt;p&gt;Build something small.&lt;/p&gt;
&lt;p&gt;Make mistakes.&lt;/p&gt;
&lt;p&gt;Fix them.&lt;/p&gt;
&lt;p&gt;Then gradually expand.&lt;/p&gt;
&lt;p&gt;Don't measure your progress by how many courses you've completed or how many technologies you can name.&lt;/p&gt;
&lt;p&gt;Give yourself enough time to actually understand what you're learning.&lt;/p&gt;
&lt;p&gt;And most importantly:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Try to improve, not to prove.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You don't need to prove that you're already a great developer.&lt;/p&gt;
&lt;p&gt;You just need to keep becoming a better one.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-fahad-khalid&quot;&gt;About Fahad Khalid&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Fahad Khalid&lt;/strong&gt; is a Computer Science student interested in AI, cloud computing, cybersecurity and practical software development.&lt;/p&gt;
&lt;p&gt;Coming from a Biology background, his journey into Computer Science has been shaped by self-learning, experimentation, personal projects, community participation and a strong focus on helping other beginners.&lt;/p&gt;
&lt;p&gt;You can connect with Fahad on &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Fahad+Khalid&quot;&gt;CoderLegion&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;developer-stories-at-coderlegion-4&quot;&gt;Developer Stories at CoderLegion&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Stories&lt;/strong&gt; is a CoderLegion series featuring real developers and their journeys — the decisions, challenges, experiments, lessons and experiences that shaped how they build and learn.&lt;/p&gt;
&lt;p&gt;Every developer's path looks different.&lt;/p&gt;
&lt;p&gt;Some start with Computer Science.&lt;/p&gt;
&lt;p&gt;Some start by teaching themselves.&lt;/p&gt;
&lt;p&gt;Some change careers.&lt;/p&gt;
&lt;p&gt;Some discover programming through a completely different field.&lt;/p&gt;
&lt;p&gt;Fahad's journey is a reminder that your starting point doesn't have to determine where you finish.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;interview-amp-story-by-mehadi-hasan-5&quot;&gt;Interview &amp;amp; Story by Mehadi Hasan&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;CoderLegion Community &amp;amp; Editorial Team&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Want to share your own developer journey?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have a story, project, career transition or learning experience you'd like to share with the CoderLegion community, we'd love to hear from you.&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/28885/from-biology-to-computer-science-fahad-khalids-developer-journey</guid>
<pubDate>Mon, 28 Sep 2026 07:43:17 +0000</pubDate>
</item>
<item>
<title>From Electronics to Local AI — Sami M.’s Developer Journey</title>
<link>https://coderlegion.com/28464/from-electronics-to-local-ai-sami-m-s-developer-journey</link>
<description>&lt;h2 id=&quot;from-electronics-to-local-ai-sami-m-s-developer-journey&quot;&gt;From Electronics to Local AI — Sami M.’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Developer Stories — CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From childhood curiosity about computer hardware to robotics, artificial intelligence, multi-agent systems, and today's local LLMs, Sami M.'s journey has always been driven by one thing: understanding how intelligent systems work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sami M. is an &lt;strong&gt;Electronics Engineer and PhD in Artificial Intelligence (2014)&lt;/strong&gt;. Today, his work and experiments focus heavily on &lt;strong&gt;AI, local AI, LLMs, and Ollama&lt;/strong&gt;, with a particular interest in understanding what these technologies can actually do in practical, real-world situations.&lt;/p&gt;
&lt;p&gt;You can find Sami on &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/simouun&quot;&gt;CoderLegion&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;His recent CoderLegion work includes an experiment comparing &lt;strong&gt;Qwen3 4B, 8B and 14B for writing correction using 60 local Ollama responses on Windows&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;But the story behind that experiment started much earlier.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-started-with-an-intel-286&quot;&gt;It Started With an Intel 286&lt;/h3&gt;
&lt;p&gt;Sami's interest in electronics began when he was very young.&lt;/p&gt;
&lt;p&gt;He remembers being fascinated by the Intel 286 and by the idea that a processor and electronic components could somehow make his favourite game, &lt;em&gt;Gorillas&lt;/em&gt; under MS-DOS, come to life.&lt;/p&gt;
&lt;p&gt;He didn't just want to use the computer.&lt;/p&gt;
&lt;p&gt;He wanted to understand what was happening inside it.&lt;/p&gt;
&lt;p&gt;That curiosity naturally pushed him toward electronics and engineering.&lt;/p&gt;
&lt;p&gt;His move toward artificial intelligence came later through robotics.&lt;/p&gt;
&lt;p&gt;One of his early projects involved autonomous trajectory following with a Pioneer 3-DX mobile robot. From there, his interests expanded into more ambitious work involving collaborative multi-agent systems and task-allocation mechanisms based on auction algorithms.&lt;/p&gt;
&lt;p&gt;The combination of electronics and AI still feels like a natural continuation of that original curiosity.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-robotics-to-artificial-intelligence&quot;&gt;From Robotics to Artificial Intelligence&lt;/h3&gt;
&lt;p&gt;What attracted Sami to AI was ultimately a question about &lt;strong&gt;intelligence itself&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;He became interested in biological intelligence and biological neural networks, and then in how some of those ideas could inspire artificial systems.&lt;/p&gt;
&lt;p&gt;His early work included robotics, computer vision, and mobile-robot path planning.&lt;/p&gt;
&lt;p&gt;Classical graph-search techniques such as Dijkstra's algorithm and heuristic search methods such as A* were part of that journey.&lt;/p&gt;
&lt;p&gt;Over time, his interest moved toward systems that could do more than execute a fixed algorithm.&lt;/p&gt;
&lt;p&gt;He became increasingly interested in systems that could:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Perceive a situation&lt;/li&gt;
&lt;li&gt;Reason about it&lt;/li&gt;
&lt;li&gt;Make decisions&lt;/li&gt;
&lt;li&gt;Interact with other intelligent systems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That path eventually led to his PhD in Artificial Intelligence, completed in 2014.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-ai-has-changed&quot;&gt;How AI Has Changed&lt;/h3&gt;
&lt;p&gt;The AI landscape Sami entered during his academic journey is very different from the one developers work with today.&lt;/p&gt;
&lt;p&gt;One of the biggest changes he notices is the move from highly task-specific systems toward models capable of representing much richer relationships between language, context, and meaning.&lt;/p&gt;
&lt;p&gt;He is careful about the word &quot;understanding.&quot;&lt;/p&gt;
&lt;p&gt;He doesn't claim that an LLM understands meaning exactly as a human does.&lt;/p&gt;
&lt;p&gt;But the semantic behaviour these models can demonstrate is still remarkable to him.&lt;/p&gt;
&lt;p&gt;Earlier AI systems often required intelligence to be explicitly designed through rules, features, decision logic, or algorithms tailored to a particular problem.&lt;/p&gt;
&lt;p&gt;Today, much richer behaviour can emerge from representations learned in high-dimensional spaces.&lt;/p&gt;
&lt;p&gt;And one development particularly interests him:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;local AI.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-local-ai-&quot;&gt;Why Local AI?&lt;/h3&gt;
&lt;p&gt;For Sami, one of the strongest attractions of local AI is control over information.&lt;/p&gt;
&lt;p&gt;When AI runs locally, sensitive or private information can remain on his own machine.&lt;/p&gt;
&lt;p&gt;That matters when working with technical documents, private information, or other material that he may not want to send to an external service.&lt;/p&gt;
&lt;p&gt;It also gives him more freedom to design the architecture around his own requirements.&lt;/p&gt;
&lt;p&gt;RAG is one example.&lt;/p&gt;
&lt;p&gt;Sami has experimented with large collections of training videos. Instead of manually watching hundreds of hours of material, he can:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Transcribe the content&lt;/li&gt;
&lt;li&gt;Divide it into useful segments&lt;/li&gt;
&lt;li&gt;Generate embeddings&lt;/li&gt;
&lt;li&gt;Retrieve relevant passages&lt;/li&gt;
&lt;li&gt;Interact with that knowledge through a local model&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This turns a huge collection of information into something he can query directly.&lt;/p&gt;
&lt;p&gt;For Sami, local AI isn't simply about running a model without an internet connection.&lt;/p&gt;
&lt;p&gt;It's about &lt;strong&gt;privacy, control, architecture, and practical usefulness&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;experimenting-with-qwen-and-ollama&quot;&gt;Experimenting With Qwen and Ollama&lt;/h3&gt;
&lt;p&gt;Sami's recent CoderLegion article, &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/26477/qwen3-4b-vs-8b-vs-14b-for-writing-correction-60-local-ollama-responses-on-windows&quot;&gt;Qwen3 4B vs 8B vs 14B for Writing Correction: 60 Local Ollama Responses on Windows&lt;/a&gt;&lt;/strong&gt;, came from a very practical need.&lt;/p&gt;
&lt;p&gt;He writes technical reports and emails, sometimes in very different communication styles.&lt;/p&gt;
&lt;p&gt;Constantly switching between correction, improvement, explanation, and tone adjustment was taking time.&lt;/p&gt;
&lt;p&gt;So he wanted something that could:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Correct genuine mistakes&lt;/li&gt;
&lt;li&gt;Suggest improvements when useful&lt;/li&gt;
&lt;li&gt;Work with text from different Windows applications&lt;/li&gt;
&lt;li&gt;Allow him to keep his original wording when preferred&lt;/li&gt;
&lt;li&gt;Explain corrections in a language he understands well&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instead of simply assuming that the largest model would perform best, Sami built a reusable benchmark framework to test different local models under the same conditions.&lt;/p&gt;
&lt;p&gt;The results reinforced an important lesson:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Model size alone isn't enough.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In his tests, a larger model did not necessarily improve the main correction result, while the difference in execution time could be significant.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;benchmarks-vs-real-world-testing&quot;&gt;Benchmarks vs. Real-World Testing&lt;/h3&gt;
&lt;p&gt;Sami sees published benchmarks as useful.&lt;/p&gt;
&lt;p&gt;They can help create a shortlist.&lt;/p&gt;
&lt;p&gt;But when it comes to deciding whether a model is actually useful, he prefers testing it against his own real-world requirements.&lt;/p&gt;
&lt;p&gt;His writing-correction experiment also connects to something personal.&lt;/p&gt;
&lt;p&gt;English isn't his first language, and he doesn't have much time to study English separately from his engineering work.&lt;/p&gt;
&lt;p&gt;So he thought:&lt;/p&gt;
&lt;p&gt;Why not learn while already working?&lt;/p&gt;
&lt;p&gt;He already needed to write reports and emails in English.&lt;/p&gt;
&lt;p&gt;By using AI to correct mistakes, suggest improvements, and explain corrections, he could learn while completing work he already needed to do.&lt;/p&gt;
&lt;p&gt;He doesn't claim this is a formally validated language-learning method.&lt;/p&gt;
&lt;p&gt;But personally, he has found it useful.&lt;/p&gt;
&lt;p&gt;For Sami, the important point is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A benchmark can tell you something about a model. Your own problem tells you whether that model is useful.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;human-first&quot;&gt;Human First&lt;/h3&gt;
&lt;p&gt;Sami's approach to AI can be summed up simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Human first.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He uses AI extensively, but he doesn't want AI making important decisions for him.&lt;/p&gt;
&lt;p&gt;Instead, he uses it to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Challenge an idea&lt;/li&gt;
&lt;li&gt;Show him another perspective&lt;/li&gt;
&lt;li&gt;Point out something he may have missed&lt;/li&gt;
&lt;li&gt;Save time on repetitive work&lt;/li&gt;
&lt;li&gt;Explore possibilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sometimes he will have several exchanges with an AI system before deciding whether an idea is worth keeping.&lt;/p&gt;
&lt;p&gt;But the final judgment remains his.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;For me, the best use of AI is not to replace human expertise, but to make that expertise more effective.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That philosophy is particularly relevant as AI becomes increasingly integrated into everyday development work.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-challenge-of-multi-agent-robotics&quot;&gt;The Challenge of Multi-Agent Robotics&lt;/h3&gt;
&lt;p&gt;One of the most challenging technical areas Sami has worked on is &lt;strong&gt;heterogeneous multi-agent robotics&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Imagine a humanoid robot and a tracked mobile robot working together on the same task.&lt;/p&gt;
&lt;p&gt;They may have completely different:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ways of moving&lt;/li&gt;
&lt;li&gt;Sensors&lt;/li&gt;
&lt;li&gt;Architectures&lt;/li&gt;
&lt;li&gt;Physical capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The challenge isn't simply getting them to communicate.&lt;/p&gt;
&lt;p&gt;The harder questions are:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Who should do what?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When should they do it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How can the system take advantage of the fact that the agents are different?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sami worked with dynamic task-allocation approaches, including auction-based mechanisms where tasks can be allocated according to the capabilities and current state of different agents.&lt;/p&gt;
&lt;p&gt;It is a problem of making different intelligent systems cooperate even though they don't necessarily experience or interact with the world in the same way.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;choosing-ai-without-following-the-hype&quot;&gt;Choosing AI Without Following the Hype&lt;/h3&gt;
&lt;p&gt;The AI ecosystem changes incredibly quickly.&lt;/p&gt;
&lt;p&gt;New models and tools appear constantly.&lt;/p&gt;
&lt;p&gt;Sami tries not to choose a model simply because it is fashionable or because everyone is talking about it.&lt;/p&gt;
&lt;p&gt;He starts with the problem.&lt;/p&gt;
&lt;p&gt;He asks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What exactly am I trying to achieve?&lt;/li&gt;
&lt;li&gt;What level of quality do I need?&lt;/li&gt;
&lt;li&gt;What latency is acceptable?&lt;/li&gt;
&lt;li&gt;How much memory do I have?&lt;/li&gt;
&lt;li&gt;Do I need privacy?&lt;/li&gt;
&lt;li&gt;Does it need to work offline?&lt;/li&gt;
&lt;li&gt;Do I need RAG?&lt;/li&gt;
&lt;li&gt;Do I need structured output?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once those constraints are clear, he tests.&lt;/p&gt;
&lt;p&gt;A smaller model with good context and a well-defined task can sometimes be more useful than a massive model used with noisy input or without a clear understanding of the problem.&lt;/p&gt;
&lt;p&gt;But Sami doesn't treat that as a universal rule.&lt;/p&gt;
&lt;p&gt;He prefers to measure.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;For me, specifications come before trends.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-comes-next-for-local-llms-&quot;&gt;What Comes Next for Local LLMs?&lt;/h3&gt;
&lt;p&gt;Sami doesn't think the future of local LLMs is simply about making models bigger.&lt;/p&gt;
&lt;p&gt;He believes efficiency will be just as important:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Better architectures&lt;/li&gt;
&lt;li&gt;Improved quantization&lt;/li&gt;
&lt;li&gt;Better memory management&lt;/li&gt;
&lt;li&gt;Greater efficiency with fewer parameters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One example from his own experiments illustrates this.&lt;/p&gt;
&lt;p&gt;For his particular test set, Qwen3 4B matched Qwen2.5 7B on the primary complete-case writing-correction metric he was measuring.&lt;/p&gt;
&lt;p&gt;That doesn't mean the two models have the same overall reasoning capabilities.&lt;/p&gt;
&lt;p&gt;It means that for that particular workload, the larger parameter count didn't improve the main result he was measuring.&lt;/p&gt;
&lt;p&gt;That is precisely why he prefers experimentation over assumptions.&lt;/p&gt;
&lt;p&gt;He expects increasingly capable local models to continue running on ordinary consumer hardware, and that is one of the developments he finds most exciting.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;electronics-still-shapes-how-he-thinks-about-ai&quot;&gt;Electronics Still Shapes How He Thinks About AI&lt;/h3&gt;
&lt;p&gt;Despite spending much of his time working with software and AI, Sami hasn't forgotten the physical layer underneath it all.&lt;/p&gt;
&lt;p&gt;His electronics background influences the way he evaluates AI systems.&lt;/p&gt;
&lt;p&gt;He naturally thinks about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU architecture&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Data movement&lt;/li&gt;
&lt;li&gt;Computational cost&lt;/li&gt;
&lt;li&gt;Latency&lt;/li&gt;
&lt;li&gt;Energy consumption&lt;/li&gt;
&lt;li&gt;Responsiveness&lt;/li&gt;
&lt;li&gt;Efficiency&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A model isn't just an abstract collection of parameters.&lt;/p&gt;
&lt;p&gt;It has to fit into memory.&lt;/p&gt;
&lt;p&gt;Data has to move through the system.&lt;/p&gt;
&lt;p&gt;The hardware has limits.&lt;/p&gt;
&lt;p&gt;Energy and latency matter.&lt;/p&gt;
&lt;p&gt;That physical view of computing is one reason local AI interests him so much.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;his-advice-to-developers-exploring-local-ai&quot;&gt;His Advice to Developers Exploring Local AI&lt;/h3&gt;
&lt;p&gt;Sami's advice is straightforward:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Start with the problem, not with the model.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His suggested approach is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define one clear use case.&lt;/li&gt;
&lt;li&gt;Decide what a good result actually looks like.&lt;/li&gt;
&lt;li&gt;Choose a reasonably small model.&lt;/li&gt;
&lt;li&gt;Run it locally using something accessible such as Ollama.&lt;/li&gt;
&lt;li&gt;Create representative test cases.&lt;/li&gt;
&lt;li&gt;Measure the results.&lt;/li&gt;
&lt;li&gt;Only then consider moving to a larger model.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And if the application involves RAG or external knowledge, spend time cleaning and structuring the data.&lt;/p&gt;
&lt;p&gt;Good context can make a significant difference.&lt;/p&gt;
&lt;p&gt;For Sami, a well-defined problem, a suitable model, and good-quality input can often matter more than simply choosing the largest model available.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;finding-a-technical-community&quot;&gt;Finding a Technical Community&lt;/h3&gt;
&lt;p&gt;Sami joined CoderLegion in September 2026 and has already become active in the AI, Dev Tools, and Python communities.&lt;/p&gt;
&lt;p&gt;What he appreciates most is the technical relevance of the discussions.&lt;/p&gt;
&lt;p&gt;He has received questions about the methodology behind his experiments and discussions about the technical choices he made.&lt;/p&gt;
&lt;p&gt;As an engineer, he says he is much more comfortable discussing the substance of a project than promoting himself.&lt;/p&gt;
&lt;p&gt;That makes a technically focused community a natural fit.&lt;/p&gt;
&lt;p&gt;As CoderLegion grows, he hopes it maintains that technical spirit:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;People sharing what they tested, what worked, what didn't work, and why.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Sami, that kind of discussion is more useful than visibility for its own sake.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;looking-ahead&quot;&gt;Looking Ahead&lt;/h3&gt;
&lt;p&gt;One of Sami's current research interests is &lt;strong&gt;radio-spectrum management&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;He is exploring how computational methods, optimization, and AI can support problems such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spectrum sharing&lt;/li&gt;
&lt;li&gt;Interference analysis&lt;/li&gt;
&lt;li&gt;More efficient use of limited spectral resources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But even here, his philosophy remains the same.&lt;/p&gt;
&lt;p&gt;He doesn't want to add AI simply because AI is available.&lt;/p&gt;
&lt;p&gt;He prefers to first understand the engineering problem and then identify where AI can provide measurable value.&lt;/p&gt;
&lt;p&gt;That philosophy connects his past and present work.&lt;/p&gt;
&lt;p&gt;From the Intel 286 that first sparked his curiosity, to robotics, artificial intelligence, multi-agent systems, and today's local LLMs, the technologies have changed dramatically.&lt;/p&gt;
&lt;p&gt;The curiosity hasn't.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-sami-m-&quot;&gt;About Sami M.&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Sami M.&lt;/strong&gt; is an Electronics Engineer and holds a PhD in Artificial Intelligence (2014). His interests and work span electronics, robotics, artificial intelligence, multi-agent systems, local AI, LLMs, and practical experimentation with AI tools such as Ollama.&lt;/p&gt;
&lt;p&gt;Follow Sami on &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/simouun&quot;&gt;CoderLegion&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-10&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real conversations.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developer Stories is a CoderLegion series featuring developers, engineers, researchers, and builders sharing the experiences, challenges, ideas, and lessons behind their work.&lt;/p&gt;
&lt;p&gt;If you'd like to share your own developer journey, &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/&quot;&gt;join CoderLegion&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/28464/from-electronics-to-local-ai-sami-m-s-developer-journey</guid>
<pubDate>Thu, 24 Sep 2026 11:11:33 +0000</pubDate>
</item>
<item>
<title>From Customer to Creator: Mohammad's Developer Journey</title>
<link>https://coderlegion.com/28463/from-customer-to-creator-mohammads-developer-journey</link>
<description>&lt;h2 id=&quot;i-was-lisar-s-first-customer-mohammad-hesameddin-montazerilisar-s-journey-from-a-personal-need-to-building-a-product&quot;&gt;I Was Lisar's First Customer: Mohammad Hesameddin Montazerilisar's Journey From a Personal Need to Building a Product&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At 14, &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/lisarconnect&quot;&gt;Mohammad Hesameddin Montazerilisar&lt;/a&gt;&lt;/strong&gt; was frustrated by something that seemed simple: installing games and software on his Samsung phone.&lt;/p&gt;
&lt;p&gt;His friends with Sony Ericsson phones could install games with a simple click. On his phone, the process was much more difficult, and phone retailers wanted to charge him to do it.&lt;/p&gt;
&lt;p&gt;Instead of simply accepting the problem, Mohammad became curious.&lt;/p&gt;
&lt;p&gt;Why could the same task be so different on two devices?&lt;/p&gt;
&lt;p&gt;That question led him into software platforms and operating systems — and eventually into a career spanning networking, security, software and fintech.&lt;/p&gt;
&lt;p&gt;Seventeen years later, that curiosity became something much bigger.&lt;/p&gt;
&lt;p&gt;Today, Mohammad is working full-time on &lt;strong&gt;Lisar Connect&lt;/strong&gt;, a product that grew from his own experiences and needs.&lt;/p&gt;
&lt;p&gt;And perhaps the most interesting part of the story is this:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“In fact, I was Lisar's first customer.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is Mohammad's developer journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-a-problem-at-14-to-a-career-in-technology&quot;&gt;From a Problem at 14 to a Career in Technology&lt;/h3&gt;
&lt;p&gt;Mohammad's interest in technology began with a very ordinary problem.&lt;/p&gt;
&lt;p&gt;At 14, he wanted to install games and software on his Samsung phone. When he asked phone retailers for help, they wanted to charge him for the installation.&lt;/p&gt;
&lt;p&gt;At the same time, his friends using Sony Ericsson phones could install games much more easily.&lt;/p&gt;
&lt;p&gt;That difference caught his attention.&lt;/p&gt;
&lt;p&gt;Rather than simply looking for someone to fix the problem, Mohammad started researching software platforms and operating systems.&lt;/p&gt;
&lt;p&gt;He wanted to understand &lt;strong&gt;why&lt;/strong&gt; the same task could work so differently across devices.&lt;/p&gt;
&lt;p&gt;That curiosity became the beginning of his journey into technology.&lt;/p&gt;
&lt;p&gt;He later studied computing at university and completed a master's program in information security.&lt;/p&gt;
&lt;p&gt;During his studies, he discovered that his interests extended across both networking and software.&lt;/p&gt;
&lt;p&gt;It was also during this period that the idea that would eventually become Lisar began to take shape.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-idea-behind-lisar-started-as-a-student&quot;&gt;The Idea Behind Lisar Started as a Student&lt;/h3&gt;
&lt;p&gt;Mohammad saw a gap between two areas he was interested in: networking and hardware on one side, and programming and software on the other.&lt;/p&gt;
&lt;p&gt;He wanted to build a service that could bring those areas together.&lt;/p&gt;
&lt;p&gt;But the idea did not immediately become a startup.&lt;/p&gt;
&lt;p&gt;After university, Mohammad spent around two years working in networking and security before moving into fintech.&lt;/p&gt;
&lt;p&gt;Over the next 15 years, he worked in roles including programmer, systems analyst, team lead and deputy technical director.&lt;/p&gt;
&lt;p&gt;Throughout that time, the idea for Lisar stayed with him.&lt;/p&gt;
&lt;p&gt;He describes the process of working through the idea as being like putting together a puzzle — gradually understanding the different pieces and how they could fit together.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-i-was-lisar-s-first-customer-&quot;&gt;“I Was Lisar's First Customer”&lt;/h3&gt;
&lt;p&gt;The idea became much more personal through Mohammad's own work.&lt;/p&gt;
&lt;p&gt;His professional responsibilities required him to work with a range of connected devices and networking equipment, including Android devices, Apple and Microsoft products, and equipment from MikroTik, Cisco and D-Link.&lt;/p&gt;
&lt;p&gt;He wanted to manage those connections from one place.&lt;/p&gt;
&lt;p&gt;When he travelled for work, another problem appeared.&lt;/p&gt;
&lt;p&gt;He needed to monitor internal company services while also handling everyday tasks such as banking and shopping.&lt;/p&gt;
&lt;p&gt;Many of the problems he was trying to solve for Lisar were therefore problems he had personally experienced.&lt;/p&gt;
&lt;p&gt;That's why Mohammad describes himself as &lt;strong&gt;Lisar's first customer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The product wasn't born from an abstract market idea alone.&lt;/p&gt;
&lt;p&gt;It grew from problems he personally wanted to solve.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;turning-the-idea-into-a-full-time-project&quot;&gt;Turning the Idea Into a Full-Time Project&lt;/h3&gt;
&lt;p&gt;After 17 years of working across technology, Mohammad eventually decided to pursue the idea seriously.&lt;/p&gt;
&lt;p&gt;He left his full-time job and began focusing entirely on Lisar.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“I know there is still a long way to go, but I have started, and I enjoy being able to focus on this idea.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Today, his focus is on bringing Lisar to life and making its networking capabilities easier for users to manage.&lt;/p&gt;
&lt;p&gt;The service includes a web panel where users can see information about their profiles, connection status, usage and available features, while managing their settings.&lt;/p&gt;
&lt;p&gt;Another part of the design is support for multiple profiles under one account.&lt;/p&gt;
&lt;p&gt;A user can have separate profiles for different needs — such as personal use, travel or a family member — with each profile operating according to its own settings and plan.&lt;/p&gt;
&lt;p&gt;For Mohammad, bringing web-based management, clear information and multiple-profile management together is an important part of what makes Lisar different.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-challenge-of-privacy-simplicity-and-connectivity&quot;&gt;The Challenge of Privacy, Simplicity and Connectivity&lt;/h3&gt;
&lt;p&gt;Building Lisar has also meant solving a difficult combination of technical and user-experience problems.&lt;/p&gt;
&lt;p&gt;One challenge was finding a way for users to connect without requiring a dedicated Lisar application.&lt;/p&gt;
&lt;p&gt;Mohammad wanted users to be able to use standard connection methods and tools instead.&lt;/p&gt;
&lt;p&gt;His approach combines GeoDNS with standard VPN protocols.&lt;/p&gt;
&lt;p&gt;For compatible devices and networks, Lisar supports L2TP/IPsec, while OpenVPN is available through supported connection paths.&lt;/p&gt;
&lt;p&gt;Depending on the device, users can connect using built-in operating-system settings or a standard VPN client.&lt;/p&gt;
&lt;p&gt;For Mohammad, the technical implementation is only part of the challenge.&lt;/p&gt;
&lt;p&gt;He also believes that &lt;strong&gt;using standard protocols and clearly explaining how a service works are important parts of building trust.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Privacy is another part of that design.&lt;/p&gt;
&lt;p&gt;He says Lisar's approach is based on minimizing data collection and limiting it to what the service specifically needs.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-custom-exit-from-a-real-world-problem&quot;&gt;Building Custom Exit From a Real-World Problem&lt;/h3&gt;
&lt;p&gt;One of the parts of Lisar Mohammad is particularly proud of is &lt;strong&gt;Custom Exit&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Again, the idea came from his own experience.&lt;/p&gt;
&lt;p&gt;His work involved frequent travel, and he often encountered situations where internet quality and routes to servers varied depending on where he was.&lt;/p&gt;
&lt;p&gt;Sometimes, connecting directly to a destination simply wasn't the best option.&lt;/p&gt;
&lt;p&gt;That led him to explore a different approach.&lt;/p&gt;
&lt;p&gt;With Custom Exit, the connection's entry point can be separated from its exit point.&lt;/p&gt;
&lt;p&gt;A user can connect to Lisar through a suitable entry server and then choose a different available and permitted exit.&lt;/p&gt;
&lt;p&gt;The goal is to provide more flexibility over the route while keeping the settings manageable through the web panel.&lt;/p&gt;
&lt;p&gt;For Mohammad, the feature is meaningful because it addresses a problem he has personally encountered many times.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-journey-matters-more-than-the-destination&quot;&gt;The Journey Matters More Than the Destination&lt;/h3&gt;
&lt;p&gt;After 17 years in technology, Mohammad says the biggest lesson he has learned can be expressed simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“The journey you take matters more than the destination.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For him, the people around you are an important part of that journey.&lt;/p&gt;
&lt;p&gt;Having the right people around you can improve the chances of succeeding, but it can also make the process itself more worthwhile and enjoyable.&lt;/p&gt;
&lt;p&gt;Reaching a goal without the right people alongside you may not feel as meaningful as expected.&lt;/p&gt;
&lt;p&gt;That perspective has influenced how Mohammad approaches his work and the long journey of building Lisar.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-hardest-challenge-earning-users-trust&quot;&gt;The Hardest Challenge: Earning Users' Trust&lt;/h3&gt;
&lt;p&gt;For Mohammad, one of the biggest professional challenges has not simply been building the technology.&lt;/p&gt;
&lt;p&gt;It has been &lt;strong&gt;earning users' trust&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When offering a service that people pay for, users naturally want to understand what they are buying.&lt;/p&gt;
&lt;p&gt;Mohammad says Lisar has tried to be transparent about its services so users can understand exactly what they are paying for.&lt;/p&gt;
&lt;p&gt;But transparency takes work.&lt;/p&gt;
&lt;p&gt;Sometimes explaining the service and answering questions can require more time and energy than delivering the service itself.&lt;/p&gt;
&lt;p&gt;His approach has been to build trust gradually through clear explanations, patience and quality service.&lt;/p&gt;
&lt;p&gt;The web panel is part of that approach.&lt;/p&gt;
&lt;p&gt;Users should be able to see their profiles, understand which features and limits apply, and see how much of the service they have used.&lt;/p&gt;
&lt;p&gt;For Mohammad, making that information clear and accessible is part of the product itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;letting-users-influence-the-product&quot;&gt;Letting Users Influence the Product&lt;/h3&gt;
&lt;p&gt;Mohammad doesn't follow a formal system for keeping up with technology.&lt;/p&gt;
&lt;p&gt;Instead, he spends time searching for information and following material on social media.&lt;/p&gt;
&lt;p&gt;But when it comes to deciding what to build, he places particular importance on &lt;strong&gt;user feedback&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;He believes new needs emerge as technology develops, and users are often the best source for identifying those needs.&lt;/p&gt;
&lt;p&gt;One example changed Lisar's direction.&lt;/p&gt;
&lt;p&gt;Originally, Mohammad did not plan to build a dedicated Lisar application.&lt;/p&gt;
&lt;p&gt;The service was already accessible through standard connection methods and clients.&lt;/p&gt;
&lt;p&gt;Then a user suggested that Lisar should offer its own app as well.&lt;/p&gt;
&lt;p&gt;That feedback changed the plan.&lt;/p&gt;
&lt;p&gt;App development was added as another option for users who preferred to use Lisar's own applications.&lt;/p&gt;
&lt;p&gt;For Mohammad, it demonstrated how a single user's feedback can influence the direction of a product.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-ai-changed-what-was-possible&quot;&gt;How AI Changed What Was Possible&lt;/h3&gt;
&lt;p&gt;Perhaps one of the most striking parts of Mohammad's story is his view of AI.&lt;/p&gt;
&lt;p&gt;He says:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“I think I can say that I would not have been able to build Lisar without AI tools, and I do not see that as a weakness.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His own estimate is that without AI tools, building a product like Lisar would have required a team of around &lt;strong&gt;15 to 20 people&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That would have been financially out of reach for him.&lt;/p&gt;
&lt;p&gt;AI changed that equation.&lt;/p&gt;
&lt;p&gt;It gave Mohammad the ability to start building an ambitious product with the resources he actually had.&lt;/p&gt;
&lt;p&gt;For him, AI has therefore not simply been another development tool.&lt;/p&gt;
&lt;p&gt;It has changed what is financially and practically possible for an individual builder.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-lesson-he-would-teach-his-younger-self&quot;&gt;The Lesson He Would Teach His Younger Self&lt;/h3&gt;
&lt;p&gt;If Mohammad could go back to the beginning of his journey, there is one thing he would approach differently.&lt;/p&gt;
&lt;p&gt;He would pay more attention to the &lt;strong&gt;business side&lt;/strong&gt; earlier.&lt;/p&gt;
&lt;p&gt;Instead of focusing primarily on technical questions and technology, he would spend more time understanding users and business needs alongside developing his technical skills.&lt;/p&gt;
&lt;p&gt;Today, his view is straightforward:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“A product's value is found in its users, not in its number of lines of code or the technologies used to build it.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That lesson comes from years of working in technology before eventually becoming a product builder himself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;his-advice-to-developers-who-want-to-build&quot;&gt;His Advice to Developers Who Want to Build&lt;/h3&gt;
&lt;p&gt;Mohammad recommends that people who want to build their own products first spend several years working in a relevant field and gaining real-world experience.&lt;/p&gt;
&lt;p&gt;Books can teach many things, but they cannot teach every business lesson.&lt;/p&gt;
&lt;p&gt;Some lessons have to be learned by dealing with real problems in a real working environment.&lt;/p&gt;
&lt;p&gt;For Mohammad, his years in networking, security and fintech became an important part of preparing him to build Lisar.&lt;/p&gt;
&lt;p&gt;Those experiences helped him understand the challenges behind his original idea and gradually find ways to address them.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;his-experience-with-coderlegion&quot;&gt;His Experience With CoderLegion&lt;/h3&gt;
&lt;p&gt;Mohammad has not been on CoderLegion for very long, but his experience so far has been positive.&lt;/p&gt;
&lt;p&gt;He describes the community as friendly and says one thing that stands out to him is that it does not feel like a competition.&lt;/p&gt;
&lt;p&gt;Instead, he sees more of a sense that members help each other learn and improve.&lt;/p&gt;
&lt;p&gt;That supportive atmosphere is something he values, particularly because collaboration and the people around him have played an important role throughout his professional journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-s-next-for-lisar-&quot;&gt;What's Next for Lisar?&lt;/h3&gt;
&lt;p&gt;As of &lt;strong&gt;15 September 2026&lt;/strong&gt;, Mohammad's near-term plan is to work toward releasing Android, iOS and Windows versions of Lisar within the following month.&lt;/p&gt;
&lt;p&gt;Importantly, this is &lt;strong&gt;his planned timeline as of that date&lt;/strong&gt;, rather than a guaranteed release date or a statement that those applications are already publicly available.&lt;/p&gt;
&lt;p&gt;The applications are intended to provide another way to use the service, while standard connection methods and clients remain part of Lisar's approach.&lt;/p&gt;
&lt;p&gt;Looking further ahead, Mohammad wants to introduce Lisar to more people around the world and contribute to what he describes as open, nondiscriminatory access to the internet, with respect for privacy.&lt;/p&gt;
&lt;p&gt;He hopes people can use the internet with fewer concerns about their privacy and believes that kind of access is everyone's right.&lt;/p&gt;
&lt;p&gt;The possibility that Lisar could contribute to that vision is one of the things that excites him most.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;enjoying-the-journey&quot;&gt;Enjoying the Journey&lt;/h3&gt;
&lt;p&gt;Perhaps the most personal part of Mohammad's story is what keeps him going when the work becomes difficult.&lt;/p&gt;
&lt;p&gt;His answer is simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“I love what I do.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He doesn't see the journey as something he can simply lose, because he is doing work he loves and enjoying the process itself.&lt;/p&gt;
&lt;p&gt;He compares it to buying a piece of clothing you really love.&lt;/p&gt;
&lt;p&gt;When you wear something you enjoy, you don't spend all your time worrying about whether it might eventually tear.&lt;/p&gt;
&lt;p&gt;You enjoy wearing it now.&lt;/p&gt;
&lt;p&gt;For Mohammad, building Lisar feels much the same.&lt;/p&gt;
&lt;p&gt;He is hopeful about where the product can eventually go, but he hasn't postponed his enjoyment until some future milestone.&lt;/p&gt;
&lt;p&gt;He enjoys the journey itself.&lt;/p&gt;
&lt;p&gt;And that is what keeps him moving forward.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-mohammad-hesameddin-montazerilisar&quot;&gt;About Mohammad Hesameddin Montazerilisar&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/lisarconnect&quot;&gt;&lt;strong&gt;Mohammad Hesameddin Montazerilisar&lt;/strong&gt;&lt;/a&gt; is the person behind Lisar Connect.&lt;/p&gt;
&lt;p&gt;His professional background spans networking, security and fintech, and he now focuses full-time on developing Lisar.&lt;/p&gt;
&lt;p&gt;His work combines his long-standing interest in networking and software with a product built around problems he has personally experienced.&lt;/p&gt;
&lt;p&gt;He also writes technical guidance for Lisar Connect, covering areas including VPN setup, routing, DNS, profiles and troubleshooting. :contentReference[oaicite:2]{index=2}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Product:&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://lisar.io/&quot;&gt;Lisar Connect&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-11&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;This story is part of &lt;strong&gt;CoderLegion Developer Stories&lt;/strong&gt;, a series highlighting the people behind the technology — their journeys, projects, experiences, challenges and ideas.&lt;/p&gt;
&lt;p&gt;Rather than focusing only on technologies and achievements, Developer Stories aims to explore the experiences that shaped the people building them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real developers. Real journeys. Real experiences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Would you like to share your own developer journey? Get involved with CoderLegion Developer Stories.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/28463/from-customer-to-creator-mohammads-developer-journey</guid>
<pubDate>Thu, 24 Sep 2026 10:44:34 +0000</pubDate>
</item>
<item>
<title>Developer Spotlight: Sara Czasak on Learning, Building and Growing as a Developer</title>
<link>https://coderlegion.com/27611/developer-spotlight-sara-czasak-on-learning-building-and-growing-as-a-developer</link>
<description>&lt;p&gt;Real developers. Real journeys. Real conversations. In this Developer Spotlight, Tom Smith sits down with Sara Czasak to talk about her journey into development, building practical projects, open source, and learning along the way.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A conversation about Sara's journey into development, building practical projects, open source, and learning by doing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;CoderLegion is starting a new format for &lt;strong&gt;Developer Stories&lt;/strong&gt; — &lt;strong&gt;Video Discussion Stories&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Instead of presenting a developer's journey as a written Q&amp;amp;A, this format gives the community a chance to hear directly from developers through a relaxed video conversation.&lt;/p&gt;
&lt;p&gt;For our first Developer Spotlight, &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Tom+Smith&quot;&gt;Tom Smith&lt;/a&gt;&lt;/strong&gt; sits down with &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/sara-czasak&quot;&gt;Sara Czasak&lt;/a&gt;&lt;/strong&gt; for a conversation about her journey as a developer, the projects she has been building, and her experiences learning and growing in technology.&lt;/p&gt;
&lt;h3 id=&quot;watch-the-developer-spotlight&quot;&gt;Watch the Developer Spotlight&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;VIDEO_URL_HERE&quot;&gt;Watch the full conversation with Sara Czasak&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The conversation runs for approximately 14 minutes and gives the community a chance to get to know Sara beyond her written posts and projects.&lt;/p&gt;
&lt;h3 id=&quot;meet-sara-czasak&quot;&gt;Meet Sara Czasak&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/sara-czasak&quot;&gt;Sara Czasak&lt;/a&gt; is a self-taught developer who has been building practical software while continuing to grow her skills.&lt;/p&gt;
&lt;p&gt;Her work includes Python development and open-source projects, including &lt;strong&gt;py_simple&lt;/strong&gt;, a beginner-friendly Python package designed to make common programming tasks easier to understand and use.&lt;/p&gt;
&lt;p&gt;The project grew from a simple idea: reduce the amount of syntax beginners need to remember so they can focus more on solving problems and learning programming concepts.&lt;/p&gt;
&lt;p&gt;Sara has also been experimenting with practical applications and sharing her progress as she develops her skills.&lt;/p&gt;
&lt;h3 id=&quot;a-conversation-about-the-developer-journey&quot;&gt;A Conversation About the Developer Journey&lt;/h3&gt;
&lt;p&gt;In this Developer Spotlight, Tom and Sara have a relaxed conversation about Sara's experience as a developer and the path she has taken so far.&lt;/p&gt;
&lt;p&gt;Rather than treating the conversation like a formal technical interview, the format is designed to let the discussion develop naturally around the person behind the projects.&lt;/p&gt;
&lt;p&gt;The conversation touches on areas including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sara's journey into software development&lt;/li&gt;
&lt;li&gt;Learning to build software as a self-taught developer&lt;/li&gt;
&lt;li&gt;Her experiences creating practical projects&lt;/li&gt;
&lt;li&gt;Python and open-source development&lt;/li&gt;
&lt;li&gt;Building and improving projects over time&lt;/li&gt;
&lt;li&gt;Learning through experimentation&lt;/li&gt;
&lt;li&gt;The challenges that come with developing and shipping projects&lt;/li&gt;
&lt;li&gt;The importance of continuing to learn and improve&lt;/li&gt;
&lt;li&gt;Sara's perspective on growing as a developer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The discussion also gives viewers a chance to hear Sara explain her experiences in her own words rather than reading an edited written version of her story.&lt;/p&gt;
&lt;h3 id=&quot;meet-the-host-tom-smith&quot;&gt;Meet the Host: Tom Smith&lt;/h3&gt;
&lt;p&gt;The conversation is hosted by &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Tom+Smith&quot;&gt;Tom Smith&lt;/a&gt;&lt;/strong&gt;, a technology writer and AI/LLM specialist who has spent years interviewing technology professionals and writing about the tools and technologies shaping software development.&lt;/p&gt;
&lt;p&gt;Tom has conducted thousands of interviews with technology professionals and brings that experience to the Developer Spotlight format.&lt;/p&gt;
&lt;p&gt;His approach is conversational rather than formal — giving the guest room to explain their experiences, projects and ideas naturally.&lt;/p&gt;
&lt;h3 id=&quot;why-we-re-starting-video-discussion-stories&quot;&gt;Why We're Starting Video Discussion Stories&lt;/h3&gt;
&lt;p&gt;Written Developer Stories are a great way to learn about someone's journey.&lt;/p&gt;
&lt;p&gt;But video creates a different kind of connection.&lt;/p&gt;
&lt;p&gt;You can hear how someone explains an idea, see their personality, and get a better sense of the person behind the profile, projects and articles.&lt;/p&gt;
&lt;p&gt;That's what we're hoping to build with &lt;strong&gt;Video Discussion Stories&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The format is intentionally relaxed.&lt;/p&gt;
&lt;p&gt;There is no requirement for the conversation to feel like a podcast or a formal interview. The goal is simply to give developers an opportunity to talk about their journey, their work and the things they are learning.&lt;/p&gt;
&lt;h3 id=&quot;developer-spotlight-at-coderlegion&quot;&gt;Developer Spotlight at CoderLegion&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Spotlight&lt;/strong&gt; is part of CoderLegion's growing &lt;strong&gt;Developer Stories&lt;/strong&gt; initiative.&lt;/p&gt;
&lt;p&gt;We're interested in conversations with developers, engineers, technical founders, creators and technology professionals about topics such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developer journeys&lt;/li&gt;
&lt;li&gt;Interesting projects&lt;/li&gt;
&lt;li&gt;Open source&lt;/li&gt;
&lt;li&gt;AI and emerging technologies&lt;/li&gt;
&lt;li&gt;Building products&lt;/li&gt;
&lt;li&gt;Entrepreneurship&lt;/li&gt;
&lt;li&gt;Career experiences&lt;/li&gt;
&lt;li&gt;Lessons learned&lt;/li&gt;
&lt;li&gt;Challenges developers face&lt;/li&gt;
&lt;li&gt;The future of technology&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some conversations may focus heavily on technical work.&lt;/p&gt;
&lt;p&gt;Others may explore a product, startup, career journey, open-source project or an interesting idea someone is working on.&lt;/p&gt;
&lt;p&gt;The common thread is the person behind the technology.&lt;/p&gt;
&lt;h3 id=&quot;want-to-take-part-&quot;&gt;Want to Take Part?&lt;/h3&gt;
&lt;p&gt;Would you like to appear in a future &lt;strong&gt;CoderLegion Developer Spotlight&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;Or perhaps you would like to host a conversation with another developer?&lt;/p&gt;
&lt;p&gt;We're looking for developers and community members who would like to participate in future conversations.&lt;/p&gt;
&lt;p&gt;If you would like to &lt;strong&gt;be interviewed or host an interview&lt;/strong&gt;, get in touch with the CoderLegion team.&lt;/p&gt;
&lt;p&gt;There is no fixed topic or rigid format. Conversations can focus on your developer journey, projects, products, launches, leadership, entrepreneurship, technical experience or anything interesting you're currently building or exploring.&lt;/p&gt;
&lt;h3 id=&quot;about-sara&quot;&gt;About Sara&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/sara-czasak&quot;&gt;Sara Czasak&lt;/a&gt; is a self-taught developer working primarily with Python and open-source projects.&lt;/p&gt;
&lt;p&gt;She is the creator of &lt;strong&gt;py_simple&lt;/strong&gt;, a beginner-friendly Python package designed to make common programming tasks more readable and accessible.&lt;/p&gt;
&lt;p&gt;Sara's approach to development is centered around building practical projects, learning through experimentation, and improving with each release.&lt;/p&gt;
&lt;h3 id=&quot;about-tom&quot;&gt;About Tom&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Tom+Smith&quot;&gt;Tom Smith&lt;/a&gt; is a technology writer and AI/LLM specialist who focuses on making technology useful and understandable for developers, engineers and technical professionals.&lt;/p&gt;
&lt;p&gt;He has conducted thousands of technology interviews and writes about AI, developer tooling, cybersecurity and emerging technologies.&lt;/p&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-12&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer Stories&lt;/strong&gt; is a CoderLegion initiative highlighting the people behind the technology — their journeys, projects, experiences, challenges and ideas.&lt;/p&gt;
&lt;p&gt;With &lt;strong&gt;Video Discussion Stories&lt;/strong&gt;, we're expanding that format from written interviews into conversations that let developers share their stories directly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hosted by Tom Smith&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Guest: Sara Czasak&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Format: Developer Spotlight / Video Discussion&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Published by CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Want to be featured in a future Developer Spotlight? Contact the CoderLegion team.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Dev Stories</category>
<guid isPermaLink="true">https://coderlegion.com/27611/developer-spotlight-sara-czasak-on-learning-building-and-growing-as-a-developer</guid>
<pubDate>Fri, 18 Sep 2026 10:55:52 +0000</pubDate>
</item>
<item>
<title>From Law and Product Operations to AI-Native Companies: Sean</title>
<link>https://coderlegion.com/27607/from-law-and-product-operations-to-ai-native-companies-sean</link>
<description>&lt;h2 id=&quot;from-law-and-product-operations-to-ai-native-companies-sean-shen-s-developer-journey&quot;&gt;From Law and Product Operations to AI-Native Companies: Sean Shen’s Developer Journey&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;“The important question is: Is this actually worth building?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What happens when someone with a background in law and product operations suddenly discovers that AI has made software development accessible enough for him to start building products himself?&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/aiomniu&quot;&gt;Sean Shen&lt;/a&gt;&lt;/strong&gt;, founder of &lt;strong&gt;AIOMNIU&lt;/strong&gt;, the answer has been a rapid transition from product operations and entrepreneurship into AI-assisted development, startup building, marketplaces and AI services.&lt;/p&gt;
&lt;p&gt;Sean is based in China and studied law, but never worked professionally in the legal field. Most of his career was spent in product operations and management systems, giving him exposure to product development and system architecture.&lt;/p&gt;
&lt;p&gt;He also worked across a remarkably wide range of industries, including apparel, real estate, education, healthcare, pets, food, hospitality, travel, state-owned enterprises and entertainment services.&lt;/p&gt;
&lt;p&gt;But none of those experiences gave him the breakthrough he was looking for.&lt;/p&gt;
&lt;p&gt;Then AI arrived.&lt;/p&gt;
&lt;p&gt;And suddenly, someone with his background could begin building software.&lt;/p&gt;
&lt;p&gt;That changed the question.&lt;/p&gt;
&lt;p&gt;Instead of asking whether he had enough technical people to build an idea, Sean could start asking something much more fundamental:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is the idea actually worth building?&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;from-law-to-product-operations&quot;&gt;From Law to Product Operations&lt;/h3&gt;
&lt;p&gt;Sean's journey into technology wasn't a conventional developer story.&lt;/p&gt;
&lt;p&gt;He studied law but ultimately moved into product operations, where he spent years working with management and back-office systems.&lt;/p&gt;
&lt;p&gt;That experience gave him something valuable even though he wasn't writing most of the code himself: an understanding of products, business processes and system architecture.&lt;/p&gt;
&lt;p&gt;His career also exposed him to many different industries.&lt;/p&gt;
&lt;p&gt;He worked around apparel, real estate sales, education, healthcare, pets, food, wigs, adult products, hospitality, travel, state-owned enterprises and entertainment services.&lt;/p&gt;
&lt;p&gt;The diversity of those experiences eventually became useful.&lt;/p&gt;
&lt;p&gt;He had seen many different types of businesses and operational problems.&lt;/p&gt;
&lt;p&gt;But for a long time, building software himself wasn't really an option.&lt;/p&gt;
&lt;p&gt;Then AI changed the equation.&lt;/p&gt;
&lt;h3 id=&quot;the-moment-ai-made-development-feel-accessible&quot;&gt;The Moment AI Made Development Feel Accessible&lt;/h3&gt;
&lt;p&gt;One of the earliest moments that influenced Sean happened in 2023, when he was working at an online medical consultation app in China.&lt;/p&gt;
&lt;p&gt;His responsibility covered the entire consultation business.&lt;/p&gt;
&lt;p&gt;At the time, the company was already experimenting with AI to improve the pre-consultation process through a project called &lt;strong&gt;Medical Assistant Integration&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;GPT had just appeared.&lt;/p&gt;
&lt;p&gt;The developers around him were excited about it, although Sean admits he didn't really understand GPT at first.&lt;/p&gt;
&lt;p&gt;What caught his attention was seeing an AI-powered autocomplete feature actually working inside the product.&lt;/p&gt;
&lt;p&gt;He remembers telling a colleague:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“This is probably the thing that can actually make the consultation process more efficient in the future. You just need to make this work really well.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That experience stayed with him.&lt;/p&gt;
&lt;p&gt;After leaving the company, Sean continued building businesses, mainly in e-commerce.&lt;/p&gt;
&lt;p&gt;But entrepreneurship gradually convinced him that he wanted to move toward services rather than physical products.&lt;/p&gt;
&lt;p&gt;Physical products require inventory, capital and heavier assets.&lt;/p&gt;
&lt;p&gt;Services can be adapted and iterated much faster.&lt;/p&gt;
&lt;p&gt;And then AI created another possibility: perhaps software development itself could become a service that someone like him could participate in.&lt;/p&gt;
&lt;h3 id=&quot;the-real-reason-he-started-building-with-ai&quot;&gt;The Real Reason He Started Building With AI&lt;/h3&gt;
&lt;p&gt;Sean doesn't try to turn his origin story into something more inspirational than it was.&lt;/p&gt;
&lt;p&gt;His motivation was surprisingly straightforward.&lt;/p&gt;
&lt;p&gt;He wanted to make money.&lt;/p&gt;
&lt;p&gt;When he realized that AI could enable someone working in product operations to take on website development projects, he started thinking about the larger opportunity.&lt;/p&gt;
&lt;p&gt;If AI could enable more people to build software, there could eventually be a huge wave of AI-powered developers.&lt;/p&gt;
&lt;p&gt;And if that productivity could be connected to businesses, perhaps it could become a service business.&lt;/p&gt;
&lt;p&gt;Sean has also long believed that B2B customers are more willing to pay for AI than consumers.&lt;/p&gt;
&lt;p&gt;That became one of the ideas behind his direction with AIOMNIU.&lt;/p&gt;
&lt;h3 id=&quot;the-dark-forest-and-the-little-mouse&quot;&gt;The Dark Forest and the Little Mouse&lt;/h3&gt;
&lt;p&gt;Sean describes the market as a &lt;strong&gt;dark forest&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In that environment, he doesn't believe the biggest player necessarily has the only path to survival.&lt;/p&gt;
&lt;p&gt;Instead, he uses a different metaphor:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“The best entrepreneur may not be the T. rex.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;“Maybe it’s the little mouse that keeps adapting and evolving.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That idea captures an important part of Sean's approach.&lt;/p&gt;
&lt;p&gt;Rather than trying to compete directly with the largest AI companies, he is interested in finding smaller, specialized opportunities where a small team can adapt quickly.&lt;/p&gt;
&lt;p&gt;This thinking becomes particularly important when looking at the AI application layer.&lt;/p&gt;
&lt;h3 id=&quot;building-in-public-is-a-growth-strategy&quot;&gt;Building in Public Is a Growth Strategy&lt;/h3&gt;
&lt;p&gt;Sean has also been publicly documenting his entrepreneurial journey, including his &lt;strong&gt;Only10&lt;/strong&gt; series.&lt;/p&gt;
&lt;p&gt;For him, building in public isn't primarily about telling a romantic startup story.&lt;/p&gt;
&lt;p&gt;It's about distribution.&lt;/p&gt;
&lt;p&gt;AIOMNIU is an early-stage project without a major established brand or a natural source of traffic.&lt;/p&gt;
&lt;p&gt;That means the team needs to create ways for people to discover what they are building.&lt;/p&gt;
&lt;p&gt;Sean sees content as an unusually efficient asset for a small team.&lt;/p&gt;
&lt;p&gt;One piece of content can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Communicate an idea&lt;/li&gt;
&lt;li&gt;Be distributed across multiple social platforms&lt;/li&gt;
&lt;li&gt;Accumulate search value&lt;/li&gt;
&lt;li&gt;Contribute to backlink growth&lt;/li&gt;
&lt;li&gt;Attract potential users&lt;/li&gt;
&lt;li&gt;Create another channel for learning about the market&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a small team with limited resources, one piece of work can therefore create multiple kinds of value.&lt;/p&gt;
&lt;p&gt;That's why Sean describes building in public very simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“It’s fundamentally a growth strategy.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;focus-doesn-t-mean-never-changing-direction&quot;&gt;Focus Doesn't Mean Never Changing Direction&lt;/h3&gt;
&lt;p&gt;Sean has written about turning down several seemingly good opportunities while trying to stay focused.&lt;/p&gt;
&lt;p&gt;But he makes an important distinction.&lt;/p&gt;
&lt;p&gt;Focus, in his view, doesn't mean locking yourself into one direction and refusing to change.&lt;/p&gt;
&lt;p&gt;If a genuinely good opportunity appears, it shouldn't automatically be ignored.&lt;/p&gt;
&lt;p&gt;The real question is timing and long-term value.&lt;/p&gt;
&lt;p&gt;Sean defines focus this way:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“In a constantly changing environment, make the choice that has the highest long-term compounding value, and commit your resources to it.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A focused person can still encounter tempting opportunities.&lt;/p&gt;
&lt;p&gt;The difference is that after evaluating them, they decide whether the opportunity deserves resources that would otherwise go toward the core business.&lt;/p&gt;
&lt;p&gt;So focus isn't about refusing to change.&lt;/p&gt;
&lt;p&gt;It's about preventing constant change from diluting the resources needed to build something meaningful.&lt;/p&gt;
&lt;h3 id=&quot;what-building-ai-products-has-taught-him&quot;&gt;What Building AI Products Has Taught Him&lt;/h3&gt;
&lt;p&gt;Sean has already experimented with several AI products, including an &lt;strong&gt;AI resume builder&lt;/strong&gt; and an &lt;strong&gt;AI resume screening tool&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Those experiments have led him to a strong view about the limitations of API-based AI products.&lt;/p&gt;
&lt;p&gt;He believes AI products may have shorter lifespans than many traditional software products.&lt;/p&gt;
&lt;p&gt;The reason is simple.&lt;/p&gt;
&lt;p&gt;If the core value of a product is essentially wrapping the capabilities of a foundation model in a user interface, improvements in those underlying models can eventually reduce the product's differentiation.&lt;/p&gt;
&lt;p&gt;Sean compares this situation to:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Drinking poisoned wine in the desert.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There may be good reasons to use an API when validating an idea or keeping early costs low.&lt;/p&gt;
&lt;p&gt;But he believes that once an AI product has a meaningful user base and enough accumulated data, the long-term direction should increasingly move toward specialized models, local deployment, proprietary infrastructure or post-training.&lt;/p&gt;
&lt;p&gt;The goal isn't to become another GPT.&lt;/p&gt;
&lt;p&gt;It is to become a specialist.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“We just need to become the specialist in a niche.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;the-opportunity-after-foundation-models&quot;&gt;The Opportunity After Foundation Models&lt;/h3&gt;
&lt;p&gt;Sean sees the foundation-model layer as extremely difficult for independent developers to compete in.&lt;/p&gt;
&lt;p&gt;Companies such as GPT, Claude, GLM and DeepSeek are already operating at enormous scale, while their capabilities and pricing continue to evolve.&lt;/p&gt;
&lt;p&gt;For a small team, building an entire business around one particular foundation model can therefore introduce instability.&lt;/p&gt;
&lt;p&gt;Instead, Sean is particularly interested in what happens as the foundation-model ecosystem becomes more mature.&lt;/p&gt;
&lt;p&gt;He expects opportunities to emerge around &lt;strong&gt;smaller, specialized models trained around specific industries, businesses and use cases.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The advantage won't necessarily come from building the biggest model.&lt;/p&gt;
&lt;p&gt;It may come from understanding a specific domain better than anyone else.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“We just need to become the specialist who truly understands a particular domain, its data, and its real-world use cases.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sean is particularly watching areas such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI applications across different industries&lt;/li&gt;
&lt;li&gt;AI-powered business growth&lt;/li&gt;
&lt;li&gt;Data compliance&lt;/li&gt;
&lt;li&gt;AI security&lt;/li&gt;
&lt;li&gt;Specialized AI services&lt;/li&gt;
&lt;li&gt;Industry-specific applications&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the-application-layer-hasn-t-fully-exploded-yet&quot;&gt;The Application Layer Hasn't Fully Exploded Yet&lt;/h3&gt;
&lt;p&gt;Sean believes the massive expansion of AI applications may still be ahead.&lt;/p&gt;
&lt;p&gt;The infrastructure layer has received enormous attention, but he sees another opportunity emerging as the cost and accessibility of AI infrastructure continue to change.&lt;/p&gt;
&lt;p&gt;For independent developers and small teams, this could create room to build specialized applications without needing to compete with the companies developing the underlying foundation models.&lt;/p&gt;
&lt;p&gt;The opportunity is not necessarily to build another general-purpose AI.&lt;/p&gt;
&lt;p&gt;It is to identify a specific problem where AI can create meaningful economic value.&lt;/p&gt;
&lt;h3 id=&quot;from-ai-to-businesses-and-eventually-ai-to-ai&quot;&gt;From AI to Businesses — and Eventually AI to AI&lt;/h3&gt;
&lt;p&gt;Sean has an interesting perspective on how AI and humans may interact as AI becomes increasingly embedded in production systems.&lt;/p&gt;
&lt;p&gt;He doesn't believe humans will simply be replaced as a whole.&lt;/p&gt;
&lt;p&gt;Instead, he expects many individual jobs and roles to be redefined.&lt;/p&gt;
&lt;p&gt;He describes a possible progression in three stages.&lt;/p&gt;
&lt;h4 id=&quot;ai-to-b&quot;&gt;AI to B&lt;/h4&gt;
&lt;p&gt;The first stage is &lt;strong&gt;AI to B&lt;/strong&gt; — AI entering businesses and society's production systems and beginning to generate real economic and social value.&lt;/p&gt;
&lt;h4 id=&quot;ai-to-ai&quot;&gt;AI to AI&lt;/h4&gt;
&lt;p&gt;The second stage is &lt;strong&gt;AI to AI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Once enough businesses become AI-enabled, AI systems may increasingly call on other AI systems to provide services and further increase productivity.&lt;/p&gt;
&lt;h4 id=&quot;human-to-ai&quot;&gt;Human to AI&lt;/h4&gt;
&lt;p&gt;The third stage is what Sean calls &lt;strong&gt;Human to AI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As productivity gains from digital AI systems eventually encounter diminishing returns, humans may continue to provide forms of value that AI cannot fully replace.&lt;/p&gt;
&lt;p&gt;In that scenario, AI wouldn't simply assist humans.&lt;/p&gt;
&lt;p&gt;Sean imagines AI increasingly &lt;strong&gt;calling on humans&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Some early examples already exist where AI systems depend on humans for research, real-world information and physical-world experiences.&lt;/p&gt;
&lt;p&gt;But Sean imagines something broader in the long term:&lt;/p&gt;
&lt;p&gt;A continuing working relationship where humans and AI each contribute what they are uniquely capable of contributing.&lt;/p&gt;
&lt;h3 id=&quot;the-biggest-challenge-growth&quot;&gt;The Biggest Challenge: Growth&lt;/h3&gt;
&lt;p&gt;For Sean, the biggest challenge so far has been growth.&lt;/p&gt;
&lt;p&gt;AIOMNIU aims to become a global platform connecting AI talent, businesses and services.&lt;/p&gt;
&lt;p&gt;But reaching global markets is difficult for an early-stage company without an established distribution channel.&lt;/p&gt;
&lt;p&gt;Over time, Sean has also come to believe that growth isn't always simply a marketing problem.&lt;/p&gt;
&lt;p&gt;Sometimes it comes down to whether the product itself is compelling enough.&lt;/p&gt;
&lt;p&gt;That realization has influenced how AIOMNIU experiments.&lt;/p&gt;
&lt;p&gt;The team has built products such as AI resume screening partly to attract users and learn what people actually need.&lt;/p&gt;
&lt;p&gt;But the strategy is evolving.&lt;/p&gt;
&lt;p&gt;Rather than constantly creating another tool simply to attract traffic, Sean wants to get closer to real businesses.&lt;/p&gt;
&lt;p&gt;That means understanding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How the business makes money&lt;/li&gt;
&lt;li&gt;How its operations work&lt;/li&gt;
&lt;li&gt;Which processes matter&lt;/li&gt;
&lt;li&gt;Where its data lives&lt;/li&gt;
&lt;li&gt;How its systems connect&lt;/li&gt;
&lt;li&gt;How its people collaborate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only after understanding those things can the team identify where AI can create genuine value.&lt;/p&gt;
&lt;h3 id=&quot;the-moment-ai-changed-his-ambition&quot;&gt;The Moment AI Changed His Ambition&lt;/h3&gt;
&lt;p&gt;Sean describes his evolution with AI in three stages.&lt;/p&gt;
&lt;p&gt;Before AI, he wouldn't have imagined starting a product with only a handful of people.&lt;/p&gt;
&lt;p&gt;A serious software project might require frontend developers, backend developers, product people, operations and other specialists.&lt;/p&gt;
&lt;p&gt;Even building a website could eventually mean assembling a large team.&lt;/p&gt;
&lt;p&gt;When GPT first appeared, that assumption didn't immediately disappear.&lt;/p&gt;
&lt;p&gt;AI initially felt more like having a knowledgeable expert sitting beside him.&lt;/p&gt;
&lt;p&gt;Ask a question and get help.&lt;/p&gt;
&lt;p&gt;But the emergence of agentic coding tools changed the experience.&lt;/p&gt;
&lt;p&gt;Tools such as Claude made it possible for one person to build an MVP much more directly.&lt;/p&gt;
&lt;p&gt;For Sean, the bigger impact wasn't simply that AI could write more code.&lt;/p&gt;
&lt;p&gt;It was that AI &lt;strong&gt;expanded what a small team could realistically attempt.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Previously, when he had an idea, his first question might have been:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Do I have the ability to organize enough people to build this?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now the question is different:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“Is this actually worth building?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is a profound shift in how he thinks about entrepreneurship.&lt;/p&gt;
&lt;h3 id=&quot;what-aiomniu-is-building&quot;&gt;What AIOMNIU Is Building&lt;/h3&gt;
&lt;p&gt;Today, AIOMNIU is focused on two core areas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI talent outsourcing&lt;/strong&gt; and &lt;strong&gt;AI services&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The talent side can be thought of as an AI-focused version of a marketplace such as Upwork, connecting businesses with people who can provide AI-related talent and services.&lt;/p&gt;
&lt;p&gt;The services side is increasingly moving toward &lt;strong&gt;enterprise AI transformation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;But Sean doesn't see enterprise transformation as simply uploading company documents and generating an AI report.&lt;/p&gt;
&lt;p&gt;Real transformation requires understanding how the business actually works.&lt;/p&gt;
&lt;p&gt;That means looking at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business models&lt;/li&gt;
&lt;li&gt;Operations&lt;/li&gt;
&lt;li&gt;Processes&lt;/li&gt;
&lt;li&gt;Data&lt;/li&gt;
&lt;li&gt;Existing systems&lt;/li&gt;
&lt;li&gt;Internal workflows&lt;/li&gt;
&lt;li&gt;People and collaboration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only then can AI opportunities be identified in a meaningful way.&lt;/p&gt;
&lt;p&gt;AIOMNIU is therefore using content and conversations with businesses to understand what companies actually need from AI.&lt;/p&gt;
&lt;p&gt;From there, the team can decide which problems should eventually become products and which are better served through talent and FDE-style services.&lt;/p&gt;
&lt;p&gt;Sean describes the resulting cycle as a &lt;strong&gt;technology flywheel&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As foundation models improve, the products and services built on top of them can improve as well.&lt;/p&gt;
&lt;p&gt;But the part he is most excited about is what happens when the application layer begins to expand at scale.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“I believe that moment will come, and I’m excited to be here for it.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;his-experience-with-coderlegion-1&quot;&gt;His Experience With CoderLegion&lt;/h3&gt;
&lt;p&gt;Sean has also become active in CoderLegion's AI, Open Source and WebDev communities.&lt;/p&gt;
&lt;p&gt;He says he has a very positive impression of the platform, particularly its efforts to encourage creators and maintain an active community.&lt;/p&gt;
&lt;p&gt;For him, there is an important relationship between creators and the platforms they participate in.&lt;/p&gt;
&lt;p&gt;When creators feel that a community provides real value, they contribute more.&lt;/p&gt;
&lt;p&gt;That creates more user-generated content, which in turn can strengthen the community.&lt;/p&gt;
&lt;p&gt;Sean connects that idea to the spirit of open source:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“A product shouldn’t be treated purely as private property. It can become a shared asset built by everyone who participates in it.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He hopes CoderLegion continues to maintain that openness as it grows.&lt;/p&gt;
&lt;h3 id=&quot;start-now-just-build-&quot;&gt;Start Now. Just Build.&lt;/h3&gt;
&lt;p&gt;For someone sitting on an AI product idea and wondering whether they have enough technical knowledge, resources or people to begin, Sean's advice is remarkably direct.&lt;/p&gt;
&lt;p&gt;Don't wait for everything to be ready.&lt;/p&gt;
&lt;p&gt;Don't wait until you have assembled a large team.&lt;/p&gt;
&lt;p&gt;Don't wait until you know exactly how everything will work.&lt;/p&gt;
&lt;p&gt;His advice is:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;“Start now. Start immediately. Just build.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That advice makes sense in the context of his own journey.&lt;/p&gt;
&lt;p&gt;A person who studied law, spent years in product operations and had almost no development experience until April 2026 is now building AI products, experimenting with agentic development and working toward an AI talent and services platform.&lt;/p&gt;
&lt;p&gt;The technology changed what was possible for him.&lt;/p&gt;
&lt;p&gt;But perhaps the bigger change was what it allowed him to ask.&lt;/p&gt;
&lt;p&gt;The question used to be:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Can I build this?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now it is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Is this worth building?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And that may be one of the most important questions for anyone building software in the AI era.&lt;/p&gt;
&lt;h3 id=&quot;about-sean-shen&quot;&gt;About Sean Shen&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/aiomniu&quot;&gt;Sean Shen&lt;/a&gt; is the founder of &lt;strong&gt;AIOMNIU&lt;/strong&gt;, an AI talent and services platform.&lt;/p&gt;
&lt;p&gt;His interests include AI startups, marketplaces, remote work, growth systems and the future of AI-native companies.&lt;/p&gt;
&lt;p&gt;His current work focuses on connecting AI talent and businesses, exploring enterprise AI transformation, experimenting with AI-powered products and understanding where specialized AI applications can create real business value.&lt;/p&gt;
&lt;p&gt;Sean also shares his entrepreneurial journey publicly through projects and content such as &lt;strong&gt;Only10&lt;/strong&gt;, using content as both a learning mechanism and a growth strategy.&lt;/p&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-13&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;This story is part of &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/series/devstories&quot;&gt;CoderLegion Developer Stories&lt;/a&gt;&lt;/strong&gt;, where developers, founders, engineers and technology professionals share their experiences, challenges, projects and lessons from their journeys.&lt;/p&gt;
&lt;p&gt;The goal is to give the CoderLegion community a closer look at the people and ideas behind the technology.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion.&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27607/from-law-and-product-operations-to-ai-native-companies-sean</guid>
<pubDate>Fri, 18 Sep 2026 10:33:50 +0000</pubDate>
</item>
<item>
<title>From SEO to AI Search: Jarno S’s Journey Into Making the Web More Understandable to AI</title>
<link>https://coderlegion.com/27604/from-seo-to-ai-search-jarno-ss-journey-into-making-the-web-more-understandable-to-ai</link>
<description>&lt;h2 id=&quot;from-seo-to-ai-search-jarno-s-s-journey-into-making-the-web-more-understandable-to-ai&quot;&gt;From SEO to AI Search: Jarno S’s Journey Into Making the Web More Understandable to AI&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;“Build for people. Structure for understanding. Measure what changes.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Search is changing.&lt;/p&gt;
&lt;p&gt;For years, businesses and website owners have focused on questions like: &lt;em&gt;Where do we rank on Google? How much traffic are we getting? Which keywords are bringing visitors?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;But as people increasingly turn to AI systems such as ChatGPT, Gemini, Perplexity and Copilot for answers, another question is becoming increasingly important:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What does AI say about your business — and is it accurate?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/AEOvara&quot;&gt;Jarno S&lt;/a&gt;, founder of &lt;a rel=&quot;nofollow&quot; href=&quot;https://aeovara.fi/&quot;&gt;AEOvara&lt;/a&gt; in Finland, this question sits at the intersection of technical SEO, AI search, structured data, content architecture and measurement.&lt;/p&gt;
&lt;p&gt;Jarno's path into this work has been practical rather than purely theoretical. He has built websites, worked with visual content and photography through Kuvaajankulma, and experienced how difficult it can be for a good business to become discoverable online.&lt;/p&gt;
&lt;p&gt;SEO became a natural part of solving that problem.&lt;/p&gt;
&lt;p&gt;Then AI search changed the question.&lt;/p&gt;
&lt;p&gt;Instead of asking only whether a website can rank, Jarno became interested in whether AI systems could understand a business correctly, represent it accurately and recommend it for the right reasons.&lt;/p&gt;
&lt;p&gt;That thinking led to AEOvara and his work around &lt;strong&gt;Answer Engine Optimization (AEO), Generative Engine Optimization (GEO), and Large Language Model Optimization (LLMO).&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;from-traditional-search-to-ai-search&quot;&gt;From Traditional Search to AI Search&lt;/h3&gt;
&lt;p&gt;Jarno describes several related concepts that are increasingly appearing in conversations about search.&lt;/p&gt;
&lt;p&gt;Traditional SEO is mainly concerned with earning visibility in search-result pages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AEO — Answer Engine Optimization&lt;/strong&gt; — focuses on structuring content so that it can answer a question directly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GEO — Generative Engine Optimization&lt;/strong&gt; — focuses on how a brand is represented and recommended in generative search experiences.&lt;/p&gt;
&lt;p&gt;And &lt;strong&gt;LLMO — Large Language Model Optimization&lt;/strong&gt; — is about making a website, its entities and its information understandable to large language models.&lt;/p&gt;
&lt;p&gt;These approaches overlap, but for Jarno the broader shift is more important than the terminology.&lt;/p&gt;
&lt;p&gt;The goal moves from simply trying to &lt;strong&gt;“rank for a keyword”&lt;/strong&gt; toward becoming &lt;strong&gt;a reliable answer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That distinction becomes particularly important when the interface between a person and the web is no longer simply a list of links.&lt;/p&gt;
&lt;h3 id=&quot;the-question-that-changed-everything&quot;&gt;The Question That Changed Everything&lt;/h3&gt;
&lt;p&gt;Jarno became interested in AI search when he noticed that people were increasingly asking ChatGPT, Gemini and Perplexity questions that they previously asked Google.&lt;/p&gt;
&lt;p&gt;That introduced a new problem.&lt;/p&gt;
&lt;p&gt;It was no longer enough to ask:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Where do we rank?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There was another question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“What does the AI say about us, and is it accurate?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That question became central to his work.&lt;/p&gt;
&lt;p&gt;Jarno describes his work as having &lt;strong&gt;two audiences: the people reading a website and the AI systems trying to understand it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That idea has influenced how he approaches website architecture and content.&lt;/p&gt;
&lt;p&gt;A page should work for a person who is in a hurry, while also giving a system enough clarity to identify the business, its services, evidence and expertise.&lt;/p&gt;
&lt;p&gt;That means clear page purpose, direct answers, logical headings, consistent facts and strong internal connections.&lt;/p&gt;
&lt;h3 id=&quot;ai-visibility-should-be-measured&quot;&gt;AI Visibility Should Be Measured&lt;/h3&gt;
&lt;p&gt;One of Jarno's strongest themes is measurement.&lt;/p&gt;
&lt;p&gt;AI search can sometimes appear mysterious. Ask an AI system a question, receive an answer, take a screenshot and it can be tempting to conclude that a business is either visible or invisible.&lt;/p&gt;
&lt;p&gt;Jarno argues that this isn't enough.&lt;/p&gt;
&lt;p&gt;AI outputs can vary depending on the platform, wording, location and time.&lt;/p&gt;
&lt;p&gt;A more useful approach is to create a repeatable measurement process.&lt;/p&gt;
&lt;p&gt;His recommendation is straightforward:&lt;/p&gt;
&lt;p&gt;Start with &lt;strong&gt;8–15 real customer questions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Keep the wording stable.&lt;/p&gt;
&lt;p&gt;Test those questions across the relevant AI platforms.&lt;/p&gt;
&lt;p&gt;Then record the results.&lt;/p&gt;
&lt;p&gt;The goal isn't to create a perfect score.&lt;/p&gt;
&lt;p&gt;The goal is to establish a &lt;strong&gt;trustworthy baseline&lt;/strong&gt; that makes changes visible.&lt;/p&gt;
&lt;h3 id=&quot;think-of-ai-visibility-like-regression-testing&quot;&gt;Think of AI Visibility Like Regression Testing&lt;/h3&gt;
&lt;p&gt;Jarno compares an AI visibility benchmark to a software regression test suite.&lt;/p&gt;
&lt;p&gt;The analogy is particularly useful for developers.&lt;/p&gt;
&lt;p&gt;If the test changes every time you run it, it becomes difficult to determine whether the software changed or the test changed.&lt;/p&gt;
&lt;p&gt;The same applies to AI search.&lt;/p&gt;
&lt;p&gt;If the prompt changes every time, you cannot reliably determine whether a change in the result came from an improvement in the brand's visibility or simply from asking a different question.&lt;/p&gt;
&lt;p&gt;Jarno recommends keeping a stable core set of prompts while adding new questions over time when necessary.&lt;/p&gt;
&lt;p&gt;It turns AI visibility from a collection of interesting screenshots into something that can be observed and compared.&lt;/p&gt;
&lt;h3 id=&quot;a-mention-isn-t-the-same-as-a-citation&quot;&gt;A Mention Isn't the Same as a Citation&lt;/h3&gt;
&lt;p&gt;Another distinction Jarno considers important is the difference between &lt;strong&gt;mentions and citations&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;An AI system might mention a business in an answer.&lt;/p&gt;
&lt;p&gt;But that mention could be vague, incorrect or simply part of a long list.&lt;/p&gt;
&lt;p&gt;A citation provides a stronger signal because it connects a specific claim to a source.&lt;/p&gt;
&lt;p&gt;Both matter, but they answer different questions.&lt;/p&gt;
&lt;p&gt;Visibility is useful.&lt;/p&gt;
&lt;p&gt;But trusted and accurate attribution is more valuable.&lt;/p&gt;
&lt;p&gt;For Jarno, metrics should therefore be separated rather than combined into one simplistic number.&lt;/p&gt;
&lt;p&gt;He focuses on areas such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visibility&lt;/li&gt;
&lt;li&gt;Mentions&lt;/li&gt;
&lt;li&gt;Citations&lt;/li&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Meaningful or qualified actions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The distinction helps businesses understand not only whether AI systems are talking about them, but &lt;strong&gt;how they are representing them&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;structured-data-helps-ai-understand-the-pieces&quot;&gt;Structured Data Helps AI Understand the Pieces&lt;/h3&gt;
&lt;p&gt;Jarno's work also places significant emphasis on &lt;strong&gt;Schema.org structured data&lt;/strong&gt; and entity clarity.&lt;/p&gt;
&lt;p&gt;He doesn't describe Schema.org as a magic solution.&lt;/p&gt;
&lt;p&gt;Instead, he sees it as a useful shared vocabulary that can help systems identify things such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Products&lt;/li&gt;
&lt;li&gt;Services&lt;/li&gt;
&lt;li&gt;People&lt;/li&gt;
&lt;li&gt;Organisations&lt;/li&gt;
&lt;li&gt;Locations&lt;/li&gt;
&lt;li&gt;FAQs&lt;/li&gt;
&lt;li&gt;Relationships between entities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But structured data becomes much more useful when it matches the visible content on a website and the information remains consistent across the site.&lt;/p&gt;
&lt;p&gt;Adding schema isn't a substitute for having clear information.&lt;/p&gt;
&lt;p&gt;The underlying content still matters.&lt;/p&gt;
&lt;h3 id=&quot;what-about-llms-txt-&quot;&gt;What About &lt;code&gt;llms.txt&lt;/code&gt;?&lt;/h3&gt;
&lt;p&gt;There has been considerable discussion around &lt;code&gt;llms.txt&lt;/code&gt; as websites adapt to AI systems.&lt;/p&gt;
&lt;p&gt;Jarno takes a measured approach.&lt;/p&gt;
&lt;p&gt;He sees &lt;code&gt;llms.txt&lt;/code&gt; as &lt;strong&gt;an experiment and a helpful orientation layer&lt;/strong&gt;, rather than a visibility button.&lt;/p&gt;
&lt;p&gt;It may make important pages and topics easier to discover, but it cannot replace useful content, technical quality, reputation or independent evidence.&lt;/p&gt;
&lt;p&gt;Jarno's approach is simple:&lt;/p&gt;
&lt;p&gt;Implement sensible experiments, then measure whether they actually change anything.&lt;/p&gt;
&lt;p&gt;That philosophy is consistent throughout his work.&lt;/p&gt;
&lt;p&gt;Don't adopt something simply because it is currently being discussed.&lt;/p&gt;
&lt;p&gt;Test it.&lt;/p&gt;
&lt;p&gt;Measure it.&lt;/p&gt;
&lt;p&gt;Then decide what the evidence tells you.&lt;/p&gt;
&lt;h3 id=&quot;make-pages-easy-to-quote&quot;&gt;Make Pages Easy to Quote&lt;/h3&gt;
&lt;p&gt;One of Jarno's ideas is that websites should be &lt;strong&gt;“easy to quote, not merely easy to crawl.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That requires thinking about how information is presented.&lt;/p&gt;
&lt;p&gt;His practical recommendations include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Put the main answer where people can find it quickly.&lt;/li&gt;
&lt;li&gt;Use descriptive headings.&lt;/li&gt;
&lt;li&gt;Explain important terms clearly.&lt;/li&gt;
&lt;li&gt;Support claims with evidence.&lt;/li&gt;
&lt;li&gt;Show authorship.&lt;/li&gt;
&lt;li&gt;Include update dates where appropriate.&lt;/li&gt;
&lt;li&gt;Avoid hiding important facts inside marketing language.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is to make information easier for an AI system to understand and represent accurately.&lt;/p&gt;
&lt;p&gt;But these practices also make websites easier for humans to understand.&lt;/p&gt;
&lt;p&gt;That overlap is important.&lt;/p&gt;
&lt;h3 id=&quot;the-ai-search-advice-he-thinks-is-overhyped&quot;&gt;The AI Search Advice He Thinks Is Overhyped&lt;/h3&gt;
&lt;p&gt;The AI search industry is moving quickly, and with that comes a constant stream of new tactics.&lt;/p&gt;
&lt;p&gt;Jarno is skeptical of the idea that one file, one prompt trick or one piece of schema can suddenly make a business &lt;strong&gt;“rank in ChatGPT.”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For him, AI visibility isn't a switch.&lt;/p&gt;
&lt;p&gt;It is built from several things working together:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Helpful content + technical accessibility + entity clarity + credible references + ongoing measurement.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is also why he prefers experimentation over blindly following trends.&lt;/p&gt;
&lt;p&gt;If something has a plausible mechanism, can affect how people discover businesses and can be tested responsibly, he sees value in running a small experiment.&lt;/p&gt;
&lt;p&gt;If it creates excitement but cannot be measured or explained, he treats it as noise until stronger evidence appears.&lt;/p&gt;
&lt;h3 id=&quot;what-ai-search-reveals-about-businesses&quot;&gt;What AI Search Reveals About Businesses&lt;/h3&gt;
&lt;p&gt;One of Jarno's biggest surprises has been how uneven AI search results can be.&lt;/p&gt;
&lt;p&gt;A business may be described accurately on one platform and poorly — or not at all — on another.&lt;/p&gt;
&lt;p&gt;Even more interestingly, AI systems can sometimes produce confident-sounding answers when the underlying business information is incomplete or mixed up.&lt;/p&gt;
&lt;p&gt;That creates a different kind of challenge for businesses.&lt;/p&gt;
&lt;p&gt;It's not simply about gaining visibility.&lt;/p&gt;
&lt;p&gt;It's about making sure the information that becomes visible is &lt;strong&gt;correct, consistent and supported by evidence&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;building-aeovara&quot;&gt;Building AEOvara&lt;/h3&gt;
&lt;p&gt;Jarno founded AEOvara to help businesses navigate search in the AI era.&lt;/p&gt;
&lt;p&gt;The challenge is partly technical and partly educational.&lt;/p&gt;
&lt;p&gt;Many business owners already understand concepts such as Google rankings and website traffic.&lt;/p&gt;
&lt;p&gt;But asking:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“How do AI systems describe my business?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;is still a relatively new question.&lt;/p&gt;
&lt;p&gt;Jarno believes the answer is to keep the conversation practical.&lt;/p&gt;
&lt;p&gt;Instead of selling mystery, show businesses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What AI systems currently say&lt;/li&gt;
&lt;li&gt;Where information is missing&lt;/li&gt;
&lt;li&gt;Where information is inaccurate&lt;/li&gt;
&lt;li&gt;What can be improved&lt;/li&gt;
&lt;li&gt;What changed after the work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That makes a new category easier to understand.&lt;/p&gt;
&lt;p&gt;It also keeps the focus on measurable outcomes rather than hype.&lt;/p&gt;
&lt;h3 id=&quot;from-ai-visibility-to-repeatable-benchmarks&quot;&gt;From AI Visibility to Repeatable Benchmarks&lt;/h3&gt;
&lt;p&gt;A major part of Jarno's current exploration is making AI visibility more reproducible.&lt;/p&gt;
&lt;p&gt;He has developed an ongoing AI visibility benchmark and published practical guides around measuring how AI systems discover and cite content.&lt;/p&gt;
&lt;p&gt;The idea is straightforward: if businesses want to improve their AI visibility, they need a way to observe what is happening before and after making changes.&lt;/p&gt;
&lt;p&gt;That means stable prompts, repeated observations and clearly separated metrics.&lt;/p&gt;
&lt;p&gt;Instead of asking whether a website is “good at AI search,” businesses can begin asking more specific questions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What changed?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where did it change?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was the information accurate?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was the business cited?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Did the change lead to a meaningful outcome?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Those questions turn an abstract concept into something that can be investigated.&lt;/p&gt;
&lt;h3 id=&quot;lessons-from-photography&quot;&gt;Lessons From Photography&lt;/h3&gt;
&lt;p&gt;Jarno's work isn't limited to SEO and AI search.&lt;/p&gt;
&lt;p&gt;He also has a background in professional photography and visual content through Kuvaajankulma.&lt;/p&gt;
&lt;p&gt;That experience has influenced how he thinks about discoverability and trust.&lt;/p&gt;
&lt;p&gt;Photography taught him that presentation matters.&lt;/p&gt;
&lt;p&gt;A website needs a clear point of view, coherent presentation and real evidence.&lt;/p&gt;
&lt;p&gt;It also taught him to respect the user's attention.&lt;/p&gt;
&lt;p&gt;The best page isn't necessarily the one containing the most information.&lt;/p&gt;
&lt;p&gt;It's the one that makes the &lt;strong&gt;right information easy to understand&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That principle carries naturally into his thinking about AI search.&lt;/p&gt;
&lt;h3 id=&quot;where-search-goes-next&quot;&gt;Where Search Goes Next&lt;/h3&gt;
&lt;p&gt;Jarno doesn't see traditional search disappearing completely.&lt;/p&gt;
&lt;p&gt;He expects it to remain important, particularly for research, navigation and comparison.&lt;/p&gt;
&lt;p&gt;At the same time, he believes AI assistants will increasingly become the starting point for many questions, especially broad or conversational ones.&lt;/p&gt;
&lt;p&gt;Rather than imagining a complete replacement, he sees a more blended search journey emerging.&lt;/p&gt;
&lt;p&gt;People may move between traditional search engines, AI assistants, websites and other interfaces depending on what they are trying to accomplish.&lt;/p&gt;
&lt;p&gt;For businesses, that means the underlying information needs to work across more than one type of discovery experience.&lt;/p&gt;
&lt;h3 id=&quot;advice-for-developers-and-small-businesses&quot;&gt;Advice for Developers and Small Businesses&lt;/h3&gt;
&lt;p&gt;For developers, technical founders and small businesses thinking about AI search, Jarno recommends starting with fundamentals rather than chasing every new trend.&lt;/p&gt;
&lt;p&gt;His practical starting points are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Keep business facts accurate and consistent.&lt;/li&gt;
&lt;li&gt;Make important pages technically accessible.&lt;/li&gt;
&lt;li&gt;Answer real customer questions clearly.&lt;/li&gt;
&lt;li&gt;Use relevant structured data.&lt;/li&gt;
&lt;li&gt;Make it clear who is responsible for the content.&lt;/li&gt;
&lt;li&gt;Build a stable set of prompts and measure them over time.&lt;/li&gt;
&lt;li&gt;Focus on changes that can actually be verified.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The common thread is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Improve what you can measure.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;a-lesson-from-building-a-new-category&quot;&gt;A Lesson From Building a New Category&lt;/h3&gt;
&lt;p&gt;One lesson Jarno learned while building AEOvara is that too much jargon can make a new field harder to understand.&lt;/p&gt;
&lt;p&gt;Technical terminology may be useful internally, but customers ultimately need answers to practical questions.&lt;/p&gt;
&lt;p&gt;Are we being understood correctly?&lt;/p&gt;
&lt;p&gt;Are we being recommended for the right reasons?&lt;/p&gt;
&lt;p&gt;What changed after the work?&lt;/p&gt;
&lt;p&gt;Those questions provide a much clearer way to explain the value of AI search visibility.&lt;/p&gt;
&lt;h3 id=&quot;ai-search-is-an-information-quality-challenge&quot;&gt;AI Search Is an Information-Quality Challenge&lt;/h3&gt;
&lt;p&gt;Jarno believes one of the biggest misunderstandings around AI search is treating it simply as a temporary traffic-generation trick.&lt;/p&gt;
&lt;p&gt;He sees something broader.&lt;/p&gt;
&lt;p&gt;AI search is also an &lt;strong&gt;information-quality challenge&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If a business cannot explain itself clearly, consistently and with evidence, AI systems will have a harder time understanding it correctly.&lt;/p&gt;
&lt;p&gt;That makes AI visibility partly a technical problem, but also a content, information architecture and trust problem.&lt;/p&gt;
&lt;h3 id=&quot;what-s-next-for-aeovara-&quot;&gt;What's Next for AEOvara?&lt;/h3&gt;
&lt;p&gt;Jarno is most excited about making AI visibility more reproducible.&lt;/p&gt;
&lt;p&gt;That includes practical benchmark methods, clearer reporting and tools that help smaller businesses understand how answer engines see them.&lt;/p&gt;
&lt;p&gt;AEOvara has already explored this through practical guides, an &lt;code&gt;llms.txt&lt;/code&gt; generator and ongoing AI visibility benchmarking.&lt;/p&gt;
&lt;p&gt;The broader goal is to make AI search visibility &lt;strong&gt;less mysterious and more measurable&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Rather than asking businesses to trust a new acronym or a new optimization trick, the approach is to establish a baseline, run experiments, observe changes and learn from the evidence.&lt;/p&gt;
&lt;p&gt;That mindset — &lt;strong&gt;measure what changes rather than simply following the latest trend&lt;/strong&gt; — runs through Jarno's approach to AI search.&lt;/p&gt;
&lt;h3 id=&quot;about-jarno-s&quot;&gt;About Jarno S&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/AEOvara&quot;&gt;Jarno S&lt;/a&gt; is the founder of &lt;a rel=&quot;nofollow&quot; href=&quot;https://aeovara.fi/&quot;&gt;AEOvara&lt;/a&gt;, based in Lappeenranta, Finland.&lt;/p&gt;
&lt;p&gt;His work focuses on &lt;strong&gt;Answer Engine Optimization (AEO), Generative Engine Optimization (GEO), AI Search Optimization, Technical SEO, Schema.org structured data and LLM Optimization (LLMO).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;He works across search ecosystems including Google Search, ChatGPT, Gemini, Perplexity and Copilot, exploring how AI answer engines discover, interpret and cite web content.&lt;/p&gt;
&lt;p&gt;His current work includes entity clarity, structured data, repeatable AI visibility benchmarks and practical ways to connect traditional SEO with AEO, GEO and LLMO.&lt;/p&gt;
&lt;p&gt;His guiding principle is simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Build for people. Structure for understanding. Measure what changes.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;coderlegion-developer-stories-14&quot;&gt;CoderLegion Developer Stories&lt;/h3&gt;
&lt;p&gt;This story is part of &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/groups/devstories&quot;&gt;CoderLegion Developer Stories&lt;/a&gt;&lt;/strong&gt;, where developers, engineers, technical founders and technology professionals share their experiences, challenges, projects and lessons from their journeys.&lt;/p&gt;
&lt;p&gt;The goal is to give the CoderLegion community a closer look at the people and ideas behind the technology.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion.&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27604/from-seo-to-ai-search-jarno-ss-journey-into-making-the-web-more-understandable-to-ai</guid>
<pubDate>Fri, 18 Sep 2026 10:22:19 +0000</pubDate>
</item>
<item>
<title>From Data Engineering to AI Systems: Hardik Goel’s Developer Journey in the Age of AI</title>
<link>https://coderlegion.com/27594/from-data-engineering-to-ai-systems-hardik-goels-developer-journey-in-the-age-of-ai</link>
<description>&lt;h2 id=&quot;from-data-engineering-to-ai-systems-hardik-goel-s-developer-journey-in-the-age-of-ai&quot;&gt;From Data Engineering to AI Systems: Hardik Goel’s Developer Journey in the Age of AI&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;“A prompt is a single turn of hope. A loop is a system.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Software development has changed dramatically over the past two decades.&lt;/p&gt;
&lt;p&gt;The tools have changed. Infrastructure has changed. Development workflows have changed. And now AI is changing not only how developers write software, but also how they think about building and operating software systems.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Hardik+Goel&quot;&gt;Hardik Goel&lt;/a&gt;&lt;/strong&gt;, however, one thing has remained constant: understanding what happens underneath the technology.&lt;/p&gt;
&lt;p&gt;His journey began with a fascination for code, machines, and especially the way data is structured and moves through a system. He started his career as a backend and QA engineer before moving into Big Data, data engineering, and machine learning.&lt;/p&gt;
&lt;p&gt;Today, his focus increasingly sits at the intersection of software engineering and AI — particularly the systems, guardrails, evaluation techniques, and workflows needed to make AI useful in the real world.&lt;/p&gt;
&lt;p&gt;This is Hardik Goel’s Developer Journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;where-it-started-understanding-what-happens-underneath&quot;&gt;Where It Started: Understanding What Happens Underneath&lt;/h3&gt;
&lt;p&gt;Hardik says he has always enjoyed writing code and understanding the dynamics behind machines.&lt;/p&gt;
&lt;p&gt;Even today, the underlying data structure remains one of the things that fascinates him most.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Once you know how data is laid out and how it moves, everything sitting above it starts to make sense.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He began his career as a backend and QA engineer. Then Big Data and Hadoop started emerging as major areas of interest.&lt;/p&gt;
&lt;p&gt;The idea of working with enormous volumes of data immediately caught his attention.&lt;/p&gt;
&lt;p&gt;One particular observation helped connect the pieces for him.&lt;/p&gt;
&lt;p&gt;Hardik was fascinated by how Netflix and other streaming platforms could work with huge amounts of data while still providing users with an uninterrupted experience.&lt;/p&gt;
&lt;p&gt;The machines themselves had not fundamentally changed.&lt;/p&gt;
&lt;p&gt;The difference was in how the system around them had been designed.&lt;/p&gt;
&lt;p&gt;That realization pushed him deeper into Big Data, eventually leading him into data engineering and machine learning — areas he has continued exploring ever since.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;two-decades-of-technology-what-changed-and-what-didn-t&quot;&gt;Two Decades of Technology: What Changed and What Didn't&lt;/h3&gt;
&lt;p&gt;After spending around two decades in technology, Hardik has watched many technologies rise, fall, and evolve.&lt;/p&gt;
&lt;p&gt;But he believes many of the things that matter most in software engineering have remained remarkably consistent.&lt;/p&gt;
&lt;p&gt;Requirements are still unclear on day one.&lt;/p&gt;
&lt;p&gt;The difficult part of a project is often the final ten percent.&lt;/p&gt;
&lt;p&gt;Production systems still break because of seemingly ordinary problems — an unexpected schema change, a retry storm, a timezone issue, or a disk running full.&lt;/p&gt;
&lt;p&gt;And debugging still involves reading logs and forming a hypothesis.&lt;/p&gt;
&lt;p&gt;For Hardik, a good engineer is still the person willing to ask the uncomfortable question during a design review rather than simply being the person who types the fastest.&lt;/p&gt;
&lt;p&gt;At the same time, he identifies several technologies and practices that genuinely transformed the daily life of developers.&lt;/p&gt;
&lt;p&gt;Version control, code review culture, CI/CD, cloud infrastructure with elastic storage and compute, containers, observability, and iterative development all made a lasting difference.&lt;/p&gt;
&lt;p&gt;More recently, AI assistance inside the development environment has become another significant change.&lt;/p&gt;
&lt;p&gt;Hardik also sees a recurring pattern in technology adoption.&lt;/p&gt;
&lt;p&gt;Technologies that remove toil, shorten feedback loops, and make failure visible tend to survive.&lt;/p&gt;
&lt;p&gt;Technologies that promise to remove thinking are much less likely to do so.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-other-side-of-technology-hype&quot;&gt;The Other Side of Technology Hype&lt;/h3&gt;
&lt;p&gt;Hardik has also seen plenty of technologies become overextended beyond the problems they were actually suited to solve.&lt;/p&gt;
&lt;p&gt;He points to Big Data being adopted as a buzzword before companies knew which questions they were trying to answer.&lt;/p&gt;
&lt;p&gt;Data lakes could become data swamps when nobody owned governance.&lt;/p&gt;
&lt;p&gt;NoSQL could be presented as a replacement for relational databases rather than as a complement.&lt;/p&gt;
&lt;p&gt;He has seen blockchain proposed for almost everything, microservices treated as the default architecture even for very small teams, and serverless presented as an answer to almost every problem.&lt;/p&gt;
&lt;p&gt;Now, he sees similar enthusiasm around autonomous agents shipping software end to end without human oversight.&lt;/p&gt;
&lt;p&gt;For Hardik, the pattern is straightforward:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Technology that removes toil, shortens the feedback loop and makes failure visible tends to survive. Technology that promises to remove thinking does not.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-writing-code-to-thinking-about-systems&quot;&gt;From Writing Code to Thinking About Systems&lt;/h3&gt;
&lt;p&gt;One of the biggest changes in Hardik's own approach to software has been moving beyond the individual piece of code.&lt;/p&gt;
&lt;p&gt;He believes writing individual pieces of code is no longer the primary moat.&lt;/p&gt;
&lt;p&gt;Instead, developers need to think about everything surrounding the code.&lt;/p&gt;
&lt;p&gt;That includes proper guardrails, Responsible AI, and evaluation techniques such as using an LLM as a judge.&lt;/p&gt;
&lt;p&gt;The developer increasingly needs to understand the complete path through the system and define how AI should operate within it.&lt;/p&gt;
&lt;p&gt;Hardik describes the evolution in his thinking through a simple shift.&lt;/p&gt;
&lt;p&gt;Instead of asking:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“How do I write this function?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;he now thinks about:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“What does this function do to the system at three in the morning when it behaves differently than it did in testing?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That changes the unit of design.&lt;/p&gt;
&lt;p&gt;The contract between components matters.&lt;/p&gt;
&lt;p&gt;So do failure modes, fallbacks, and the signals that tell engineers something has gone wrong before the user discovers it.&lt;/p&gt;
&lt;p&gt;Despite the rapid progress of AI, Hardik believes we are still some distance away from fully autonomous AI.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-ai-changed-the-way-he-worked&quot;&gt;When AI Changed the Way He Worked&lt;/h3&gt;
&lt;p&gt;Hardik has always tried to explore new technology and keep up with advancements in the field.&lt;/p&gt;
&lt;p&gt;When AI coding tools became increasingly capable, one immediate benefit stood out: they could reduce the pain of searching across Stack Overflow and countless browser tabs for a solution.&lt;/p&gt;
&lt;p&gt;The tools could provide results that were comparable to — and sometimes better than — what he might find through traditional searching.&lt;/p&gt;
&lt;p&gt;But the bigger realization came later.&lt;/p&gt;
&lt;p&gt;It wasn't simply that AI could generate code.&lt;/p&gt;
&lt;p&gt;It was that AI began changing the &lt;strong&gt;order of his work&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Hardik noticed that he was reviewing more than he was writing.&lt;/p&gt;
&lt;p&gt;More of his time was going into framing the problem and checking the output rather than producing the first draft himself.&lt;/p&gt;
&lt;p&gt;That was the point when AI became more than another tool in the toolbox.&lt;/p&gt;
&lt;p&gt;It had started changing the developer workflow itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;beyond-prompt-engineering-the-loop-is-the-system&quot;&gt;Beyond Prompt Engineering: The Loop Is the System&lt;/h3&gt;
&lt;p&gt;One of Hardik's strongest ideas is that developers can become too focused on writing better prompts.&lt;/p&gt;
&lt;p&gt;The goal shouldn't simply be to find the perfect wording that convinces an AI model to produce the correct answer.&lt;/p&gt;
&lt;p&gt;Instead, developers should design systems where mistakes are cheap, visible, measurable, and recoverable.&lt;/p&gt;
&lt;p&gt;Hardik puts it this way:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“A prompt is a single turn of hope. A loop is a system.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A reliable AI workflow needs much more than a prompt.&lt;/p&gt;
&lt;p&gt;It needs a definition of what good output actually means for the task.&lt;/p&gt;
&lt;p&gt;It needs an evaluation set based on real failure cases from the domain.&lt;/p&gt;
&lt;p&gt;It needs automated checks that run against the output.&lt;/p&gt;
&lt;p&gt;It needs a retry path that is genuinely different from the first attempt rather than simply sending the same prompt again.&lt;/p&gt;
&lt;p&gt;It needs logging so developers can identify drift before users experience it.&lt;/p&gt;
&lt;p&gt;And it needs a clear point where the loop stops and a human signs off.&lt;/p&gt;
&lt;p&gt;Once these elements are in place, Hardik argues, the prompt itself becomes less important than many people assume.&lt;/p&gt;
&lt;p&gt;A mediocre prompt inside a well-designed loop can be more useful than a carefully crafted prompt with nothing around it.&lt;/p&gt;
&lt;p&gt;The loop also has another advantage: it can continue working even when the underlying model changes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-happens-to-the-developer-&quot;&gt;What Happens to the Developer?&lt;/h3&gt;
&lt;p&gt;If AI increasingly handles parts of the inner coding loop — writing, testing, debugging, and iterating — the role of the developer begins to expand.&lt;/p&gt;
&lt;p&gt;Hardik agrees that developers may increasingly take on responsibilities associated with architecture, product thinking, reviewing, and system design.&lt;/p&gt;
&lt;p&gt;He also points to roles such as the &lt;strong&gt;Forward Deployed Engineer (FDE)&lt;/strong&gt;, where an engineer works directly with clients, understands the business problem, contributes to productization, and architects and builds the technology around it.&lt;/p&gt;
&lt;p&gt;The important change, however, is broader than a new job title.&lt;/p&gt;
&lt;p&gt;Hardik believes the set of responsibilities carried by developers is becoming wider rather than narrower.&lt;/p&gt;
&lt;p&gt;The developer may need to decide what should not be built.&lt;/p&gt;
&lt;p&gt;They may need to own the quality bar for output they did not personally type.&lt;/p&gt;
&lt;p&gt;And they may be accountable for a system whose individual components they did not write line by line.&lt;/p&gt;
&lt;p&gt;For Hardik, that last responsibility may become particularly important when thinking about seniority in software engineering.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-human-in-the-loop&quot;&gt;The Human in the Loop&lt;/h3&gt;
&lt;p&gt;As AI systems become more capable, Hardik believes the human role becomes even more important in areas involving direction, context, priorities, and consequences.&lt;/p&gt;
&lt;p&gt;He is concerned about a future in which people place so much trust in AI systems that they lose their own identity and judgment in the process.&lt;/p&gt;
&lt;p&gt;That is where he sees Responsible AI becoming important.&lt;/p&gt;
&lt;p&gt;Human knowledge about the direction a project should take — based on experience and independent thinking — remains valuable.&lt;/p&gt;
&lt;p&gt;For Hardik, there are several questions he does not expect to simply hand over to AI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which problem deserves to be solved?&lt;/li&gt;
&lt;li&gt;What trade-offs are acceptable?&lt;/li&gt;
&lt;li&gt;What is acceptable to get wrong?&lt;/li&gt;
&lt;li&gt;What is not acceptable to get wrong?&lt;/li&gt;
&lt;li&gt;What did the customer actually mean rather than simply write in a ticket?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At the same time, Hardik doesn't believe all expert judgment will remain exclusively human.&lt;/p&gt;
&lt;p&gt;Some of what people call judgment is really pattern recognition developed through repeated experience.&lt;/p&gt;
&lt;p&gt;Machines can become very good at that kind of pattern recall.&lt;/p&gt;
&lt;p&gt;The distinction, for him, is judgment that carries consequences.&lt;/p&gt;
&lt;p&gt;When a decision goes wrong, someone still needs to stand behind it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-reliable-ai-systems&quot;&gt;Building Reliable AI Systems&lt;/h3&gt;
&lt;p&gt;For Hardik, one of the most important lessons of working with AI systems is that something looking impressive in a demo doesn't necessarily mean it is ready for production.&lt;/p&gt;
&lt;p&gt;A production AI system needs checks and balances.&lt;/p&gt;
&lt;p&gt;He places particular importance on observability, governance, security, and proper monitoring.&lt;/p&gt;
&lt;p&gt;The system should provide enough visibility for engineers to understand what it is doing instead of relying on users to discover problems first.&lt;/p&gt;
&lt;p&gt;For Hardik, reliability also means understanding the kinds of responses a model can produce and the degree of deviation it can take.&lt;/p&gt;
&lt;p&gt;That deviation needs to be contained and understood.&lt;/p&gt;
&lt;p&gt;Moving from an AI prototype to a real system also introduces a large amount of unglamorous engineering work.&lt;/p&gt;
&lt;p&gt;Data changes.&lt;/p&gt;
&lt;p&gt;Models don't automatically understand those changes.&lt;/p&gt;
&lt;p&gt;Evaluation sets may not represent real production traffic.&lt;/p&gt;
&lt;p&gt;And assumptions that seemed reasonable during a prototype can become significant problems once the system is exposed to real users.&lt;/p&gt;
&lt;p&gt;For Hardik, building reliable AI therefore requires many of the engineering disciplines that have always mattered in software — with additional attention to model behavior, evaluation, monitoring, governance, and security.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-developer-s-job-is-changing-not-disappearing&quot;&gt;The Developer's Job Is Changing, Not Disappearing&lt;/h3&gt;
&lt;p&gt;Hardik's journey offers an interesting perspective on the current AI transition.&lt;/p&gt;
&lt;p&gt;He doesn't see the future simply as humans writing less code while machines write more.&lt;/p&gt;
&lt;p&gt;Instead, he sees the developer's responsibility expanding.&lt;/p&gt;
&lt;p&gt;The developer increasingly becomes the person who understands the problem, designs the system, defines the quality bar, creates the feedback loops, evaluates AI output, and takes responsibility for what ultimately reaches users.&lt;/p&gt;
&lt;p&gt;The syntax may become easier.&lt;/p&gt;
&lt;p&gt;The first draft may become faster.&lt;/p&gt;
&lt;p&gt;But the surrounding engineering problem remains.&lt;/p&gt;
&lt;p&gt;And perhaps that is the part of software development that has changed the least over the past two decades.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;lessons-from-twenty-years-in-technology&quot;&gt;Lessons From Twenty Years in Technology&lt;/h3&gt;
&lt;p&gt;Looking across Hardik's career, there is a clear thread connecting his early interest in data structures with his current interest in AI systems.&lt;/p&gt;
&lt;p&gt;The technology keeps changing.&lt;/p&gt;
&lt;p&gt;The underlying questions remain remarkably similar.&lt;/p&gt;
&lt;p&gt;How does data move?&lt;/p&gt;
&lt;p&gt;What happens when a component fails?&lt;/p&gt;
&lt;p&gt;How do you know whether something is working?&lt;/p&gt;
&lt;p&gt;How do you detect problems before users do?&lt;/p&gt;
&lt;p&gt;What should the system do when reality differs from the assumptions made during development?&lt;/p&gt;
&lt;p&gt;AI adds a new layer to those questions, but it doesn't make them disappear.&lt;/p&gt;
&lt;p&gt;If anything, it makes understanding the system around the technology even more important.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;hardik-goel-s-perspective-on-the-ai-era&quot;&gt;Hardik Goel's Perspective on the AI Era&lt;/h3&gt;
&lt;p&gt;Hardik's Developer Journey sits at an interesting point between two generations of software development.&lt;/p&gt;
&lt;p&gt;He began in an era where developers wrote and debugged code largely by hand.&lt;/p&gt;
&lt;p&gt;He moved through the rise of Big Data, data engineering, machine learning, cloud infrastructure, CI/CD, containers, and observability.&lt;/p&gt;
&lt;p&gt;Now he is working through another major shift: AI-assisted and agentic software development.&lt;/p&gt;
&lt;p&gt;His central message is not that developers should stop using AI.&lt;/p&gt;
&lt;p&gt;He is already using it himself.&lt;/p&gt;
&lt;p&gt;The more important question is &lt;strong&gt;how developers use it&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For Hardik, the future isn't simply about generating more code.&lt;/p&gt;
&lt;p&gt;It is about building better systems around the intelligence we now have access to — systems that can evaluate, observe, recover, and involve humans when judgment and responsibility matter.&lt;/p&gt;
&lt;p&gt;And that brings the conversation back to where his own journey began: understanding what happens underneath the surface.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-hardik-goel&quot;&gt;About Hardik Goel&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Hardik+Goel&quot;&gt;Hardik Goel&lt;/a&gt;&lt;/strong&gt; is a technology professional with a background spanning backend engineering, QA, Big Data, data engineering, machine learning, and AI systems.&lt;/p&gt;
&lt;p&gt;His work and writing explore software engineering, AI-assisted development, agentic workflows, Responsible AI, and the changing role of developers as AI becomes part of the software development process.&lt;/p&gt;
&lt;p&gt;His perspective is shaped by years of working with systems where understanding the underlying data, architecture, failure modes, and production behavior matters as much as writing the code itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;coderlegion-developer-stories-15&quot;&gt;CoderLegion Developer Stories&lt;/h4&gt;
&lt;p&gt;This story is part of &lt;strong&gt;CoderLegion Developer Stories&lt;/strong&gt;, a series featuring developers, engineers, founders, and builders sharing their experiences, lessons, projects, and perspectives on technology.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion.&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27594/from-data-engineering-to-ai-systems-hardik-goels-developer-journey-in-the-age-of-ai</guid>
<pubDate>Fri, 18 Sep 2026 09:57:54 +0000</pubDate>
</item>
<item>
<title>From HTML to Legal Automation: Dhardingsea Developer’s Journey of Building Software That Solves Real</title>
<link>https://coderlegion.com/27044/from-html-legal-automation-dhardingsea-developers-journey-building-software-that-solves</link>
<description>&lt;p&gt;&lt;strong&gt;A CoderLegion Developer Story featuring &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/DHSeaDev&quot;&gt;Dhardingsea Developer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Some developers follow a straight path.&lt;/p&gt;
&lt;p&gt;Others follow problems.&lt;/p&gt;
&lt;p&gt;For Dhardingsea Developer, programming started with computers, HTML, and web development. From there, the journey moved through computer repair, malware removal, Chrome extensions, Windows tools, games, production automation, and AI tooling.&lt;/p&gt;
&lt;p&gt;Today, that work spans very different kinds of software — from browser games to automation for the legal-process-serving industry.&lt;/p&gt;
&lt;p&gt;At first, those projects might seem unrelated.&lt;/p&gt;
&lt;p&gt;But there is a common thread:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Finding ways to use computers to mend, improve, and simplify things encountered in real life.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That approach has also shaped a particular engineering philosophy: build locally when possible, respect user privacy, minimize unnecessary permissions, listen to users, and encode knowledge into software so it doesn't disappear when people do.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-started-with-computers&quot;&gt;It Started With Computers&lt;/h3&gt;
&lt;p&gt;As a child, computers were something Dhardingsea Developer naturally connected with.&lt;/p&gt;
&lt;p&gt;They were understandable.&lt;/p&gt;
&lt;p&gt;They were something that could be explored.&lt;/p&gt;
&lt;p&gt;The first real attraction was HTML and web development.&lt;/p&gt;
&lt;p&gt;That eventually expanded into computer repair and malware removal, giving them exposure to computers from a different perspective.&lt;/p&gt;
&lt;p&gt;Programming wasn't isolated from the rest of technology.&lt;/p&gt;
&lt;p&gt;It was connected to understanding how computers worked, what could go wrong, and how problems could be fixed.&lt;/p&gt;
&lt;p&gt;That practical experience became an important foundation for everything that came later.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;turning-real-life-problems-into-software&quot;&gt;Turning Real-Life Problems Into Software&lt;/h3&gt;
&lt;p&gt;One of the defining characteristics of the journey has been finding ways to use computers to improve things encountered in everyday life.&lt;/p&gt;
&lt;p&gt;With a background spanning marketing and web development, combined with experience working at a small computer company, Dhardingsea Developer gradually developed a broad understanding of technology.&lt;/p&gt;
&lt;p&gt;Instead of focusing on a single category of software, they kept finding different problems that could potentially be solved with computers.&lt;/p&gt;
&lt;p&gt;That led to a wide range of projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chrome extensions&lt;/li&gt;
&lt;li&gt;Windows desktop tools&lt;/li&gt;
&lt;li&gt;Browser games&lt;/li&gt;
&lt;li&gt;Production automation&lt;/li&gt;
&lt;li&gt;AI tooling&lt;/li&gt;
&lt;li&gt;Developer tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The technologies may be different.&lt;/p&gt;
&lt;p&gt;The underlying approach isn't.&lt;/p&gt;
&lt;p&gt;Find something that could work better.&lt;/p&gt;
&lt;p&gt;Understand the problem.&lt;/p&gt;
&lt;p&gt;Build something.&lt;/p&gt;
&lt;p&gt;Then learn from what happens.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-software-has-real-world-consequences&quot;&gt;When Software Has Real-World Consequences&lt;/h3&gt;
&lt;p&gt;One of the biggest differences between Dhardingsea Developer's personal projects and professional work is the environment in which the software operates.&lt;/p&gt;
&lt;p&gt;Their work in the legal-process-serving industry comes with consequences that a game or experimental project simply doesn't have.&lt;/p&gt;
&lt;p&gt;A small mistake can have significant financial consequences.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;An error, a small click of a button can send duplication of filing fees and a loss of thousands.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That changes the engineering process.&lt;/p&gt;
&lt;p&gt;In a creative project, you can experiment and recover from mistakes relatively easily.&lt;/p&gt;
&lt;p&gt;In legal-process software, the consequences of a mistake can affect real documents, filings, fees, and workflows.&lt;/p&gt;
&lt;p&gt;As a result, simulation and review become extremely important.&lt;/p&gt;
&lt;p&gt;Before launching something, it is necessary to think through what could happen.&lt;/p&gt;
&lt;p&gt;And even after launch, there is another challenge:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;maintenance.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Software doesn't simply need to work once.&lt;/p&gt;
&lt;p&gt;It needs to continue working as the surrounding environment changes.&lt;/p&gt;
&lt;p&gt;For Dhardingsea Developer, this is very different from building a game or creative project.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;The purpose is function; the other is function of purpose.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The distinction is important.&lt;/p&gt;
&lt;p&gt;One environment demands correctness and reliability.&lt;/p&gt;
&lt;p&gt;The other gives more room for experimentation and creative expression.&lt;/p&gt;
&lt;p&gt;Both teach valuable lessons.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;encoding-institutional-knowledge-into-software&quot;&gt;Encoding Institutional Knowledge Into Software&lt;/h3&gt;
&lt;p&gt;One of the most interesting ideas in Dhardingsea Developer's profile is the concept of &lt;strong&gt;encoding institutional knowledge into software&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;What does that actually mean?&lt;/p&gt;
&lt;p&gt;It starts with understanding how people solve problems.&lt;/p&gt;
&lt;p&gt;Someone who has spent years working in a particular environment develops knowledge that may never be written down.&lt;/p&gt;
&lt;p&gt;They know how to untangle a problem.&lt;/p&gt;
&lt;p&gt;They know what tends to go wrong.&lt;/p&gt;
&lt;p&gt;They know what to check before something breaks.&lt;/p&gt;
&lt;p&gt;They know why a particular decision was made.&lt;/p&gt;
&lt;p&gt;That knowledge can disappear when the person leaves.&lt;/p&gt;
&lt;p&gt;Software can preserve some of it.&lt;/p&gt;
&lt;p&gt;For Dhardingsea Developer, comments, telemetry, documentation, and implementation details can capture not only what the software does, but why it does it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I find it valuable to put the why for someone to have the opportunity to learn even if it's to change.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That last part is important.&lt;/p&gt;
&lt;p&gt;Documentation isn't necessarily about making decisions permanent.&lt;/p&gt;
&lt;p&gt;It is about making the reasoning visible so that someone else can understand it, question it, and improve it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-chromium-autofiler-that-started-something-bigger&quot;&gt;The Chromium Autofiler That Started Something Bigger&lt;/h3&gt;
&lt;p&gt;One of the projects that taught Dhardingsea Developer the most was &lt;strong&gt;Chromium Autofiler&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It was one of their early projects, but its impact went beyond the project itself.&lt;/p&gt;
&lt;p&gt;Working on it introduced them to areas such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Database storage&lt;/li&gt;
&lt;li&gt;Encryption&lt;/li&gt;
&lt;li&gt;Browser tooling&lt;/li&gt;
&lt;li&gt;Software architecture&lt;/li&gt;
&lt;li&gt;Building their own website&lt;/li&gt;
&lt;li&gt;Creating games&lt;/li&gt;
&lt;li&gt;Working with different tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The project became a starting point.&lt;/p&gt;
&lt;p&gt;Not necessarily because it was the most successful thing they built, but because it opened the door to everything that came afterward.&lt;/p&gt;
&lt;p&gt;Sometimes an early project matters because of what it teaches you rather than what it becomes.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-the-hard-way-with-a-chrome-extension&quot;&gt;Learning the Hard Way With a Chrome Extension&lt;/h3&gt;
&lt;p&gt;One of the more recent projects was a local-first Dota 2 companion built as a Chrome extension.&lt;/p&gt;
&lt;p&gt;Dota 2 provides an API for gathering information, while also having a large social gaming community.&lt;/p&gt;
&lt;p&gt;The project forced Dhardingsea Developer to think carefully about something that is easy to overlook:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The user doesn't necessarily understand the technical limitations behind the software.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A user may not know about API rate limits.&lt;/p&gt;
&lt;p&gt;They may simply expect the software to work.&lt;/p&gt;
&lt;p&gt;That creates an interesting responsibility for developers.&lt;/p&gt;
&lt;p&gt;Should software automatically impose restrictions on behalf of users?&lt;/p&gt;
&lt;p&gt;Should it assume that users don't understand the consequences?&lt;/p&gt;
&lt;p&gt;Or should it allow the system to behave according to the capabilities available?&lt;/p&gt;
&lt;p&gt;Dhardingsea Developer describes this tension candidly.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Imposing a limit on a user's behalf for safety is a weird call, who am I to be so arrogant?&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The experience ultimately reinforced another lesson:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Consider the user's needs before they become problems.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Building a tool isn't only about making the technology work.&lt;/p&gt;
&lt;p&gt;It is about understanding how people will actually use it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;shipping-something-before-it-s-perfect&quot;&gt;Shipping Something Before It's Perfect&lt;/h3&gt;
&lt;p&gt;Another lesson that has become important to Dhardingsea Developer is knowing when to ship.&lt;/p&gt;
&lt;p&gt;Developers can spend months working toward an idea.&lt;/p&gt;
&lt;p&gt;During that time, motivation can disappear.&lt;/p&gt;
&lt;p&gt;Budgets can change.&lt;/p&gt;
&lt;p&gt;Opinions can change.&lt;/p&gt;
&lt;p&gt;The original idea itself can change.&lt;/p&gt;
&lt;p&gt;And sometimes the only people who can tell you whether the software is useful are the people actually using it.&lt;/p&gt;
&lt;p&gt;That changed the way Dhardingsea Developer thinks about incomplete software.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;The user will say, the user will know.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instead of waiting for every feature to be perfect, shipping something allows users to provide feedback.&lt;/p&gt;
&lt;p&gt;That feedback can become part of the development process.&lt;/p&gt;
&lt;p&gt;An incomplete product can sometimes teach you more than a perfect product that nobody has seen.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;It's easier to ship something incomplete, you can find so much more feedback from users looking to help play a role.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Dhardingsea Developer, shipping isn't necessarily the end of development.&lt;/p&gt;
&lt;p&gt;It's the beginning of another feedback loop.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;privacy-is-a-requirement-not-a-feature&quot;&gt;Privacy Is a Requirement, Not a Feature&lt;/h3&gt;
&lt;p&gt;A strong theme across the projects is privacy.&lt;/p&gt;
&lt;p&gt;Dhardingsea Developer's approach emphasizes local-first software, minimal permissions, and avoiding unnecessary accounts or telemetry.&lt;/p&gt;
&lt;p&gt;The reasoning is simple.&lt;/p&gt;
&lt;p&gt;Users are becoming increasingly tired of giving away their data.&lt;/p&gt;
&lt;p&gt;They don't necessarily want their history, behavior, or personal information collected simply because they use a piece of software.&lt;/p&gt;
&lt;p&gt;And with AI becoming more deeply integrated into technology, that concern becomes even more important.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;It's important to me to hold user security as a priority.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The goal isn't to build a system around advertising or tracking clicks.&lt;/p&gt;
&lt;p&gt;It's to build software for people.&lt;/p&gt;
&lt;p&gt;That means treating the user as something more important than a source of telemetry.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-shortcut-they-refuse-to-take&quot;&gt;The Shortcut They Refuse to Take&lt;/h3&gt;
&lt;p&gt;Every developer has shortcuts they are willing to take.&lt;/p&gt;
&lt;p&gt;And every developer has some shortcuts they refuse to take.&lt;/p&gt;
&lt;p&gt;For Dhardingsea Developer, one of those is &lt;strong&gt;cross-analysis and continuous learning&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Their current workflow involves sending files between different character accounts to review information from different perspectives.&lt;/p&gt;
&lt;p&gt;The data can then go through a kind of &quot;levelup&quot; process designed to identify gaps in skills or processes and make improvements.&lt;/p&gt;
&lt;p&gt;It consumes time.&lt;/p&gt;
&lt;p&gt;It consumes processing power.&lt;/p&gt;
&lt;p&gt;It would be much easier to simply accept the current state.&lt;/p&gt;
&lt;p&gt;But Dhardingsea Developer considers the process non-negotiable.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;We must learn.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That philosophy fits closely with their broader approach to software.&lt;/p&gt;
&lt;p&gt;The system isn't supposed to simply produce an answer.&lt;/p&gt;
&lt;p&gt;It should help identify weaknesses and improve over time.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-lesson-they-wish-they-learned-earlier&quot;&gt;The Lesson They Wish They Learned Earlier&lt;/h3&gt;
&lt;p&gt;Sometimes the biggest lessons aren't architectural.&lt;/p&gt;
&lt;p&gt;Sometimes they're surprisingly small.&lt;/p&gt;
&lt;p&gt;For Dhardingsea Developer, one of those lessons is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Spelling really matters.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A random &lt;code&gt; &lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;An unexpected capital letter.&lt;/p&gt;
&lt;p&gt;A small typo.&lt;/p&gt;
&lt;p&gt;Something that looks insignificant can become the reason you spend time debugging something that should have worked.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Debugging is an endless task at times.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Looking back, they wish they had paid more attention to spelling much earlier.&lt;/p&gt;
&lt;p&gt;It's a humorous lesson, but also a very real one.&lt;/p&gt;
&lt;p&gt;Computers don't care what you meant.&lt;/p&gt;
&lt;p&gt;They care what you actually wrote.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-databases-for-the-next-stage&quot;&gt;Learning Databases for the Next Stage&lt;/h3&gt;
&lt;p&gt;Looking ahead, one of the areas Dhardingsea Developer wants to explore more deeply is databases and structured data.&lt;/p&gt;
&lt;p&gt;They describe having relatively little experience in this area and increasingly feeling that it is limiting what they can build.&lt;/p&gt;
&lt;p&gt;In particular, it becomes important when thinking about MMO-style games.&lt;/p&gt;
&lt;p&gt;Games with persistent worlds require more than interfaces and mechanics.&lt;/p&gt;
&lt;p&gt;They require systems capable of storing, retrieving, updating, and organizing large amounts of structured information.&lt;/p&gt;
&lt;p&gt;For Dhardingsea Developer, learning more about databases is therefore not simply about learning another technology.&lt;/p&gt;
&lt;p&gt;It's about removing a limitation on what they can build next.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-advice-have-fun&quot;&gt;The Advice: Have Fun&lt;/h3&gt;
&lt;p&gt;For developers who feel stuck or believe they aren't progressing quickly enough, Dhardingsea Developer doesn't recommend obsessing over speed.&lt;/p&gt;
&lt;p&gt;The advice is much simpler:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Have fun.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joy is an important part of learning.&lt;/p&gt;
&lt;p&gt;If you're struggling, that doesn't necessarily mean you're failing.&lt;/p&gt;
&lt;p&gt;It can mean you're already doing something valuable.&lt;/p&gt;
&lt;p&gt;You're learning something difficult.&lt;/p&gt;
&lt;p&gt;You're pushing against the limits of what you currently understand.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;If you are struggling, that means you are already succeeding.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The important thing is to keep the curiosity alive.&lt;/p&gt;
&lt;p&gt;Learn something new.&lt;/p&gt;
&lt;p&gt;Try a different approach.&lt;/p&gt;
&lt;p&gt;Even if the new approach is simply a different way of doing something as basic as &lt;code&gt;2 + 2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The point isn't always immediate productivity.&lt;/p&gt;
&lt;p&gt;Sometimes the point is discovering another way to think.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;you-can-succeed-at-anything-if-you-luck-out-hard-enough&quot;&gt;You Can Succeed at Anything — If You Luck Out Hard Enough&lt;/h3&gt;
&lt;p&gt;There is one line on Dhardingsea Developer's profile that stands out:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;You can succeed at anything, if you just luck out hard enough.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The phrase comes from &lt;em&gt;Futurama&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But for Dhardingsea Developer, it also carries a deeper meaning.&lt;/p&gt;
&lt;p&gt;Success isn't entirely controlled by effort.&lt;/p&gt;
&lt;p&gt;There is timing.&lt;/p&gt;
&lt;p&gt;There is circumstance.&lt;/p&gt;
&lt;p&gt;There is being in the right place at the right moment.&lt;/p&gt;
&lt;p&gt;There are things outside our control.&lt;/p&gt;
&lt;p&gt;But that doesn't mean effort is meaningless.&lt;/p&gt;
&lt;p&gt;Instead, the idea is to keep putting yourself in situations where luck has a chance to find you.&lt;/p&gt;
&lt;p&gt;As they put it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I'm just a guy, but maybe with some effort we can luck out hard enough haha.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It's a surprisingly fitting conclusion to this journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-through-curiosity&quot;&gt;Building Through Curiosity&lt;/h3&gt;
&lt;p&gt;Looking at Dhardingsea Developer's journey, the projects may initially seem scattered.&lt;/p&gt;
&lt;p&gt;Chrome extensions.&lt;/p&gt;
&lt;p&gt;Games.&lt;/p&gt;
&lt;p&gt;Windows tools.&lt;/p&gt;
&lt;p&gt;Legal automation.&lt;/p&gt;
&lt;p&gt;AI tooling.&lt;/p&gt;
&lt;p&gt;Databases.&lt;/p&gt;
&lt;p&gt;Browser APIs.&lt;/p&gt;
&lt;p&gt;But there is a common thread.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Curiosity.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A problem appears.&lt;/p&gt;
&lt;p&gt;Something doesn't work.&lt;/p&gt;
&lt;p&gt;There is an opportunity to make it better.&lt;/p&gt;
&lt;p&gt;So they build.&lt;/p&gt;
&lt;p&gt;The result isn't always perfect.&lt;/p&gt;
&lt;p&gt;Sometimes it ships incomplete.&lt;/p&gt;
&lt;p&gt;Sometimes the platform has unexpected restrictions.&lt;/p&gt;
&lt;p&gt;Sometimes the software creates new problems.&lt;/p&gt;
&lt;p&gt;Sometimes a tiny spelling mistake creates hours of debugging.&lt;/p&gt;
&lt;p&gt;But every project becomes another source of knowledge.&lt;/p&gt;
&lt;p&gt;And that knowledge gets carried into the next thing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-comes-next&quot;&gt;What Comes Next&lt;/h3&gt;
&lt;p&gt;The next chapter is likely to involve more databases, structured data, automation, AI, and increasingly ambitious software projects.&lt;/p&gt;
&lt;p&gt;But the underlying philosophy seems unlikely to change.&lt;/p&gt;
&lt;p&gt;Build things that solve real problems.&lt;/p&gt;
&lt;p&gt;Listen to users.&lt;/p&gt;
&lt;p&gt;Protect their privacy.&lt;/p&gt;
&lt;p&gt;Document the reasoning.&lt;/p&gt;
&lt;p&gt;Don't be afraid to ship something incomplete.&lt;/p&gt;
&lt;p&gt;Keep learning.&lt;/p&gt;
&lt;p&gt;And, most importantly, keep enjoying the process.&lt;/p&gt;
&lt;p&gt;Because sometimes the best thing a developer can do is simply keep building long enough to &lt;strong&gt;luck out hard enough&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-dhardingsea-developer&quot;&gt;About Dhardingsea Developer&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/DHSeaDev&quot;&gt;Dhardingsea Developer&lt;/a&gt; is an independent developer and builder based in Iowa.&lt;/p&gt;
&lt;p&gt;Their work spans Manifest V3 Chrome extensions, Windows desktop tools, idle games, production automation, and AI tooling for the legal-process-serving industry.&lt;/p&gt;
&lt;p&gt;Their broader development philosophy centers around encoding institutional knowledge into software — turning schemas, workflows, compliance rules, and practical experience into tools that can consistently reproduce that knowledge.&lt;/p&gt;
&lt;p&gt;They are particularly interested in local-first software, privacy, minimal permissions, automation, browser extensions, games, AI tooling, and structured data.&lt;/p&gt;
&lt;p&gt;You can follow their work on &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/DHSeaDev&quot;&gt;CoderLegion&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; href=&quot;http://dhseadev.online/&quot;&gt;DHSeaDev.online&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-this-developer-story&quot;&gt;About This Developer Story&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Dhardingsea Developer&lt;br&gt;
&lt;strong&gt;Username:&lt;/strong&gt; @DHSeaDev&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Interview format:&lt;/strong&gt; Q&amp;amp;A&lt;br&gt;
&lt;strong&gt;Interviewed and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This story was created from Dhardingsea Developer's own answers and experiences shared during the CoderLegion Developer Stories Q&amp;amp;A. The article preserves the developer's personal perspective and intentionally keeps the informal character of their responses.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27044/from-html-legal-automation-dhardingsea-developers-journey-building-software-that-solves</guid>
<pubDate>Sun, 13 Sep 2026 08:19:22 +0000</pubDate>
</item>
<item>
<title>Building MyZubster: Daniel Ioni’s Journey From an Idea to an Open-Source Ecosystem</title>
<link>https://coderlegion.com/27041/building-myzubster-daniel-ionis-journey-from-an-idea-to-an-open-source-ecosystem</link>
<description>&lt;h2 id=&quot;building-myzubster-daniel-ioni-s-journey-from-an-idea-to-an-open-source-ecosystem&quot;&gt;Building MyZubster: Daniel Ioni’s Journey From an Idea to an Open-Source Ecosystem&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;A CoderLegion Developer Story featuring &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Myzubster&quot;&gt;Daniel Ioni&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What happens when a software project grows beyond being an application?&lt;/p&gt;
&lt;p&gt;For Daniel Ioni, that question became the starting point for MyZubster — an open-source ecosystem exploring artificial intelligence, environmental projects, digital identity, community participation, robotics, IoT, decentralized infrastructure, and more.&lt;/p&gt;
&lt;p&gt;But MyZubster didn't begin with a large team, a finished business plan, or even a clearly defined product category.&lt;/p&gt;
&lt;p&gt;It began with a question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Can technology help people, communities, and organizations turn useful real-world activity into visible and verifiable value?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That question gradually became an evolving ecosystem.&lt;/p&gt;
&lt;p&gt;And Daniel is still building it, learning from it, and discovering what it can become.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-started-with-a-bigger-question&quot;&gt;It Started With a Bigger Question&lt;/h3&gt;
&lt;p&gt;MyZubster began with an interest in connecting technology with real-world problems involving the environment, local resources, circular economy, and collaboration.&lt;/p&gt;
&lt;p&gt;As the project developed, Daniel became increasingly interested in the gap between digital platforms and real-world action.&lt;/p&gt;
&lt;p&gt;Many digital systems are designed primarily to attract attention.&lt;/p&gt;
&lt;p&gt;Daniel wanted to explore something different.&lt;/p&gt;
&lt;p&gt;Could a platform help coordinate contributions, document evidence, and connect people with meaningful projects?&lt;/p&gt;
&lt;p&gt;That idea eventually grew into several connected components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A public open-source platform&lt;/li&gt;
&lt;li&gt;Community and contributor profiles&lt;/li&gt;
&lt;li&gt;Environmental missions and pilot projects&lt;/li&gt;
&lt;li&gt;A marketplace for products and services&lt;/li&gt;
&lt;li&gt;AI-assisted guidance&lt;/li&gt;
&lt;li&gt;Digital characters and narrative identities&lt;/li&gt;
&lt;li&gt;Evidence, provenance, and impact measurement&lt;/li&gt;
&lt;li&gt;Experimental blockchain and decentralized-infrastructure components&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But building such a broad ecosystem created another challenge.&lt;/p&gt;
&lt;p&gt;How do you clearly communicate what actually exists?&lt;/p&gt;
&lt;p&gt;That question would become one of Daniel's most important lessons.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;an-idea-is-not-an-implementation&quot;&gt;An Idea Is Not an Implementation&lt;/h3&gt;
&lt;p&gt;One of the principles Daniel has developed while building MyZubster is the importance of clearly separating different states of a project.&lt;/p&gt;
&lt;p&gt;A proposal is not an implementation.&lt;/p&gt;
&lt;p&gt;A pull request is not a deployment.&lt;/p&gt;
&lt;p&gt;A visual concept is not proof that a feature exists.&lt;/p&gt;
&lt;p&gt;And a potential collaboration is not a confirmed partnership.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Building in public requires being honest about those differences.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Daniel began explicitly distinguishing between states such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PROPOSED&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IMPLEMENTED&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VERIFIED&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SIMULATION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FICTION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TO_CONFIRM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TO_VERIFY&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At first, this might seem overly cautious.&lt;/p&gt;
&lt;p&gt;But for a project combining AI, storytelling, blockchain, environmental ideas, and community participation, it solves a genuine problem.&lt;/p&gt;
&lt;p&gt;An attractive narrative can move much faster than the evidence underneath it.&lt;/p&gt;
&lt;p&gt;For Daniel, documentation therefore became more than a description of the code.&lt;/p&gt;
&lt;p&gt;It became part of the project's governance.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-zorgax&quot;&gt;Building Zorgax&lt;/h3&gt;
&lt;p&gt;As MyZubster became more complex, Daniel needed a way to help people understand and navigate the growing ecosystem.&lt;/p&gt;
&lt;p&gt;That layer became &lt;strong&gt;Zorgax&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Zorgax is the AI and knowledge component of MyZubster.&lt;/p&gt;
&lt;p&gt;Its intended role isn't to replace human responsibility or make uncontrolled decisions.&lt;/p&gt;
&lt;p&gt;Instead, it is designed to help users:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand available tools&lt;/li&gt;
&lt;li&gt;Navigate projects and documentation&lt;/li&gt;
&lt;li&gt;Find relevant missions&lt;/li&gt;
&lt;li&gt;Organize authorized information&lt;/li&gt;
&lt;li&gt;Interact with the ecosystem&lt;/li&gt;
&lt;li&gt;Connect technical knowledge with real-world objectives&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This led Daniel to become particularly interested in &lt;strong&gt;human-in-the-loop systems&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;AI can organize information, generate explanations, inspect technical states, and support decision-making.&lt;/p&gt;
&lt;p&gt;But there are boundaries.&lt;/p&gt;
&lt;p&gt;AI should not silently invent evidence, grant consent, confirm partnerships, or perform sensitive actions without human authorization.&lt;/p&gt;
&lt;p&gt;Daniel describes the principle simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Automation can assist the process, but humans must retain authority over consequential decisions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That principle has increasingly influenced the architecture of MyZubster and Zorgax.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-to-build-in-public&quot;&gt;Learning to Build in Public&lt;/h3&gt;
&lt;p&gt;GitHub became the main source of truth for the project.&lt;/p&gt;
&lt;p&gt;As MyZubster expanded, its public repositories began containing code, documentation, roadmaps, characters, visual assets, experiments, and technical proposals.&lt;/p&gt;
&lt;p&gt;Working publicly forced Daniel to become more precise about how he described the state of different components.&lt;/p&gt;
&lt;p&gt;It also taught him that building in public is not simply about showing what you are building.&lt;/p&gt;
&lt;p&gt;It is about making the development process understandable to other people.&lt;/p&gt;
&lt;p&gt;That means being clear about what is finished, what is experimental, and what remains uncertain.&lt;/p&gt;
&lt;p&gt;For Daniel, transparency became an engineering principle rather than simply a communication strategy.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-challenge-turning-a-huge-vision-into-a-simple-experience&quot;&gt;The Challenge: Turning a Huge Vision Into a Simple Experience&lt;/h3&gt;
&lt;p&gt;One of the biggest challenges Daniel has faced is turning a large vision into small, understandable experiences.&lt;/p&gt;
&lt;p&gt;MyZubster may contain many interconnected ideas.&lt;/p&gt;
&lt;p&gt;But visitors don't experience an architecture diagram.&lt;/p&gt;
&lt;p&gt;They experience a homepage.&lt;/p&gt;
&lt;p&gt;A button.&lt;/p&gt;
&lt;p&gt;A loading screen.&lt;/p&gt;
&lt;p&gt;A registration form.&lt;/p&gt;
&lt;p&gt;If the first step isn't clear, the larger vision doesn't matter.&lt;/p&gt;
&lt;p&gt;This became particularly obvious when Daniel looked at product analytics.&lt;/p&gt;
&lt;p&gt;People were visiting the website, but not everyone was progressing toward meaningful actions.&lt;/p&gt;
&lt;p&gt;That raised a series of practical questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do visitors understand what MyZubster is?&lt;/li&gt;
&lt;li&gt;Is the main action obvious?&lt;/li&gt;
&lt;li&gt;Can they try something before registering?&lt;/li&gt;
&lt;li&gt;Do they know what happens after clicking?&lt;/li&gt;
&lt;li&gt;Are we measuring visits or actual participation?&lt;/li&gt;
&lt;li&gt;Does the experience work well for mobile visitors coming from Facebook?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The focus began shifting.&lt;/p&gt;
&lt;p&gt;Instead of simply adding more concepts, Daniel started focusing on improving the path toward a user's first meaningful result.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-visual-storytelling-to-an-interactive-world&quot;&gt;From Visual Storytelling to an Interactive World&lt;/h3&gt;
&lt;p&gt;Visual storytelling became another important part of MyZubster.&lt;/p&gt;
&lt;p&gt;The project includes images, comic panels, and videos connected to Zorgax, environmental projects, circular economy, the Space Station, community characters, and the MyZubster Metaverse.&lt;/p&gt;
&lt;p&gt;For Daniel, these visuals serve several purposes.&lt;/p&gt;
&lt;p&gt;They can explain complex ideas.&lt;/p&gt;
&lt;p&gt;They can preserve project history.&lt;/p&gt;
&lt;p&gt;They can create a recognizable world.&lt;/p&gt;
&lt;p&gt;They can make future directions easier to discuss.&lt;/p&gt;
&lt;p&gt;And they can help contributors understand where they fit into the ecosystem.&lt;/p&gt;
&lt;p&gt;But Daniel deliberately maintains a boundary between storytelling and evidence.&lt;/p&gt;
&lt;p&gt;An illustration can show an imagined interface or a future environment.&lt;/p&gt;
&lt;p&gt;It doesn't prove that every feature shown in that image already exists.&lt;/p&gt;
&lt;p&gt;That distinction became particularly important when developing the MyZubster comic.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-myzubster-comic&quot;&gt;The MyZubster Comic&lt;/h3&gt;
&lt;p&gt;The MyZubster comic isn't simply marketing material.&lt;/p&gt;
&lt;p&gt;Daniel sees it as a kind of narrative interface.&lt;/p&gt;
&lt;p&gt;It connects software, community, environmental ideas, characters, and digital culture.&lt;/p&gt;
&lt;p&gt;The public gallery explores themes such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The city as a living organism&lt;/li&gt;
&lt;li&gt;Zorgax as a guide&lt;/li&gt;
&lt;li&gt;Neon Plaza&lt;/li&gt;
&lt;li&gt;The Space Station&lt;/li&gt;
&lt;li&gt;Community networks&lt;/li&gt;
&lt;li&gt;Circular economy&lt;/li&gt;
&lt;li&gt;Digital identity&lt;/li&gt;
&lt;li&gt;The history of online communities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The comic gives people another way to enter the ecosystem.&lt;/p&gt;
&lt;p&gt;Code explains how a system works.&lt;/p&gt;
&lt;p&gt;Narrative can help people understand why the system exists and where they might belong inside it.&lt;/p&gt;
&lt;p&gt;That distinction has become an important part of Daniel's approach to building MyZubster.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;preserving-digital-memory-with-darkode&quot;&gt;Preserving Digital Memory With Darkode&lt;/h3&gt;
&lt;p&gt;Another part of the project is &lt;strong&gt;Darkode&lt;/strong&gt;, which represents a layer of personal and cultural memory connected to the origins and influences behind MyZubster.&lt;/p&gt;
&lt;p&gt;For Daniel, publishing historical material creates an important responsibility.&lt;/p&gt;
&lt;p&gt;There needs to be a distinction between:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Documented facts&lt;/li&gt;
&lt;li&gt;Personal recollections&lt;/li&gt;
&lt;li&gt;Archived evidence&lt;/li&gt;
&lt;li&gt;Narrative interpretation&lt;/li&gt;
&lt;li&gt;Information that remains uncertain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He didn't want historical material to present every memory as independently verified fact.&lt;/p&gt;
&lt;p&gt;Instead, Darkode was designed to preserve context while acknowledging the limits of the available evidence.&lt;/p&gt;
&lt;p&gt;That reflects a broader lesson Daniel has learned while building MyZubster:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Transparency also means showing uncertainty.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;creating-neon-plaza&quot;&gt;Creating Neon Plaza&lt;/h3&gt;
&lt;p&gt;The Metaverse component began as a prototype involving guest avatars, movement, presence, chat, emotes, and thematic areas.&lt;/p&gt;
&lt;p&gt;Eventually, it became &lt;strong&gt;Neon Plaza&lt;/strong&gt;, a public interactive environment.&lt;/p&gt;
&lt;p&gt;But there was a problem.&lt;/p&gt;
&lt;p&gt;The word &quot;Metaverse&quot; created more questions than answers.&lt;/p&gt;
&lt;p&gt;Visitors didn't immediately understand what they were supposed to experience or why they should enter.&lt;/p&gt;
&lt;p&gt;So Daniel and the team simplified the onboarding process.&lt;/p&gt;
&lt;p&gt;A visitor can now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choose a public display name&lt;/li&gt;
&lt;li&gt;Create a temporary guest character&lt;/li&gt;
&lt;li&gt;Enter without registering&lt;/li&gt;
&lt;li&gt;Enter without a wallet&lt;/li&gt;
&lt;li&gt;Use the experience without a VR headset&lt;/li&gt;
&lt;li&gt;Move using WASD or the arrow keys&lt;/li&gt;
&lt;li&gt;Visit portals&lt;/li&gt;
&lt;li&gt;Interact through chat and emotes&lt;/li&gt;
&lt;li&gt;Discover other parts of MyZubster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The idea was simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Let users experience value before asking them to commit.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That principle changed the way Daniel thought about onboarding.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-first-mission&quot;&gt;The First Mission&lt;/h3&gt;
&lt;p&gt;An open digital world can still feel empty if visitors don't know what to do.&lt;/p&gt;
&lt;p&gt;So the team introduced a simple first mission guided by Zorgax:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Move your character and reach one of Neon Plaza's glowing portals.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The mission is intentionally simple.&lt;/p&gt;
&lt;p&gt;Its purpose is to transform a passive visitor into an active participant.&lt;/p&gt;
&lt;p&gt;The onboarding journey became:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Arrive at the homepage&lt;/li&gt;
&lt;li&gt;Enter Neon Plaza as a guest&lt;/li&gt;
&lt;li&gt;Create a character&lt;/li&gt;
&lt;li&gt;Begin the first mission&lt;/li&gt;
&lt;li&gt;Reach a portal&lt;/li&gt;
&lt;li&gt;Complete the mission&lt;/li&gt;
&lt;li&gt;Receive an invitation to verify the character&lt;/li&gt;
&lt;li&gt;Register to preserve the experience&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The lesson was important.&lt;/p&gt;
&lt;p&gt;Meaningful onboarding doesn't necessarily require a huge tutorial.&lt;/p&gt;
&lt;p&gt;It requires one understandable action followed by a visible result.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;working-with-nicola-and-n4k48&quot;&gt;Working With Nicola and N4K48&lt;/h3&gt;
&lt;p&gt;One of the most meaningful parts of the project has been Daniel's collaboration with his friend Nicola.&lt;/p&gt;
&lt;p&gt;Daniel helped Nicola use Zorgax and set up MyZubster on his computer.&lt;/p&gt;
&lt;p&gt;Nicola's character, &lt;strong&gt;N4K48&lt;/strong&gt;, then became an experimental participant inside Neon Plaza.&lt;/p&gt;
&lt;p&gt;This changed the nature of the project.&lt;/p&gt;
&lt;p&gt;It was no longer only about abstract user profiles.&lt;/p&gt;
&lt;p&gt;There was now a real person, real choices, real feedback, and real consent requirements involved.&lt;/p&gt;
&lt;p&gt;Nicola also used AI-assisted creative tools to produce three comic panels:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&quot;From a Software Idea to the Metaverse&quot;&lt;/li&gt;
&lt;li&gt;&quot;The Software Takes Shape&quot;&lt;/li&gt;
&lt;li&gt;&quot;Towards Neon Plaza&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The panels describe his idea and journey toward the MyZubster Metaverse.&lt;/p&gt;
&lt;p&gt;The collaboration also reinforced another principle for Daniel:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A contribution must be connected to its creator without assuming ownership, consent, or rights that have not been explicitly confirmed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That principle became particularly important when the possibility of turning one of the panels into an NFT was discussed.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;an-nft-candidate-is-not-a-minted-nft&quot;&gt;An NFT Candidate Is Not a Minted NFT&lt;/h3&gt;
&lt;p&gt;Nicola proposed the first comic panel, &quot;From a Software Idea to the Metaverse,&quot; as a possible NFT candidate.&lt;/p&gt;
&lt;p&gt;It would have been easy to simply describe it as an NFT project.&lt;/p&gt;
&lt;p&gt;Instead, Daniel documented its actual state.&lt;/p&gt;
&lt;p&gt;No mint had taken place.&lt;/p&gt;
&lt;p&gt;There was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No selected blockchain&lt;/li&gt;
&lt;li&gt;No registered wallet for the operation&lt;/li&gt;
&lt;li&gt;No selected smart contract&lt;/li&gt;
&lt;li&gt;No token ID&lt;/li&gt;
&lt;li&gt;No transaction hash&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before anything could be minted, the project needed to establish the relevant rights and provenance.&lt;/p&gt;
&lt;p&gt;That includes confirming:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authorship&lt;/li&gt;
&lt;li&gt;The AI tools and creative process&lt;/li&gt;
&lt;li&gt;The original file&lt;/li&gt;
&lt;li&gt;Manual modifications&lt;/li&gt;
&lt;li&gt;Third-party assets&lt;/li&gt;
&lt;li&gt;Applicable licenses&lt;/li&gt;
&lt;li&gt;Authorization to use MyZubster elements&lt;/li&gt;
&lt;li&gt;Nicola's explicit approval&lt;/li&gt;
&lt;li&gt;Any commercial terms or royalties&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The status therefore remained:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Ready for rights review — not ready to mint.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Daniel, this may be slower than simply publishing a token.&lt;/p&gt;
&lt;p&gt;But it creates a more responsible and verifiable process.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;measuring-real-engagement&quot;&gt;Measuring Real Engagement&lt;/h3&gt;
&lt;p&gt;Another important part of MyZubster's development has been measuring the actual user journey.&lt;/p&gt;
&lt;p&gt;The team is particularly interested in understanding traffic coming from Facebook and how visitors move through the platform.&lt;/p&gt;
&lt;p&gt;The current funnel looks roughly like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Facebook → Homepage → Neon Plaza → Mission → Character Verification → Registration&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Instead of measuring only page views, the team tracks meaningful events such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;metaverse_cta_clicked&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metaverse_loaded&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;first_interaction&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mission_started&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mission_completed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;character_verification_started&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;character_verification_completed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;signup_start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;signup_completed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;contact_request&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pilot_interest&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This provides a much more useful picture than visitor counts alone.&lt;/p&gt;
&lt;p&gt;A page view shows discovery.&lt;/p&gt;
&lt;p&gt;A completed mission shows interaction.&lt;/p&gt;
&lt;p&gt;Registration shows continuity.&lt;/p&gt;
&lt;p&gt;A contact request or pilot proposal can indicate a deeper level of interest.&lt;/p&gt;
&lt;p&gt;That shift — from measuring attention to measuring meaningful participation — has become another important part of Daniel's journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-an-ecosystem-not-just-an-application&quot;&gt;Building an Ecosystem, Not Just an Application&lt;/h3&gt;
&lt;p&gt;The longer Daniel works on MyZubster, the more he sees it as an ecosystem rather than a traditional application.&lt;/p&gt;
&lt;p&gt;That means thinking beyond individual features.&lt;/p&gt;
&lt;p&gt;MyZubster connects ideas around:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Artificial intelligence&lt;/li&gt;
&lt;li&gt;Open source&lt;/li&gt;
&lt;li&gt;Environmental projects&lt;/li&gt;
&lt;li&gt;Digital identity&lt;/li&gt;
&lt;li&gt;Community participation&lt;/li&gt;
&lt;li&gt;Metaverse experiences&lt;/li&gt;
&lt;li&gt;IoT&lt;/li&gt;
&lt;li&gt;Robotics&lt;/li&gt;
&lt;li&gt;Evidence and provenance&lt;/li&gt;
&lt;li&gt;Decentralized infrastructure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zorgax sits within that vision as an AI coordination layer.&lt;/p&gt;
&lt;p&gt;But the goal isn't to remove humans from the process.&lt;/p&gt;
&lt;p&gt;It is to help people coordinate information, projects, and actions while keeping human authority and evidence at the center.&lt;/p&gt;
&lt;p&gt;This is still an experiment.&lt;/p&gt;
&lt;p&gt;Some parts are implemented.&lt;/p&gt;
&lt;p&gt;Some are prototypes.&lt;/p&gt;
&lt;p&gt;Some are research directions.&lt;/p&gt;
&lt;p&gt;And some remain future possibilities.&lt;/p&gt;
&lt;p&gt;For Daniel, acknowledging those differences is part of building the project responsibly.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-building-myzubster-has-taught-me&quot;&gt;What Building MyZubster Has Taught Me&lt;/h3&gt;
&lt;p&gt;Looking back at the journey so far, several lessons stand out.&lt;/p&gt;
&lt;h4 id=&quot;1-don-t-confuse-the-vision-with-the-implementation&quot;&gt;1. Don't confuse the vision with the implementation&lt;/h4&gt;
&lt;p&gt;A big idea can be useful.&lt;/p&gt;
&lt;p&gt;But a big idea is not the same as working software.&lt;/p&gt;
&lt;p&gt;The distinction needs to remain visible.&lt;/p&gt;
&lt;h4 id=&quot;2-let-users-experience-value-first&quot;&gt;2. Let users experience value first&lt;/h4&gt;
&lt;p&gt;As Neon Plaza demonstrated, asking people to register before they understand the value can create unnecessary friction.&lt;/p&gt;
&lt;p&gt;Give them something meaningful to experience first.&lt;/p&gt;
&lt;h4 id=&quot;3-measure-actions-not-just-attention&quot;&gt;3. Measure actions, not just attention&lt;/h4&gt;
&lt;p&gt;A visitor count tells you that someone arrived.&lt;/p&gt;
&lt;p&gt;It doesn't tell you whether they understood the product, completed a task, or found something valuable.&lt;/p&gt;
&lt;h4 id=&quot;4-ai-needs-boundaries&quot;&gt;4. AI needs boundaries&lt;/h4&gt;
&lt;p&gt;AI can assist with reasoning and coordination.&lt;/p&gt;
&lt;p&gt;But consequential decisions should remain under appropriate human authority.&lt;/p&gt;
&lt;h4 id=&quot;5-building-in-public-requires-honesty&quot;&gt;5. Building in public requires honesty&lt;/h4&gt;
&lt;p&gt;Showing what doesn't work, what is incomplete, and what remains uncertain can be just as important as showing successful features.&lt;/p&gt;
&lt;h4 id=&quot;6-documentation-can-become-part-of-governance&quot;&gt;6. Documentation can become part of governance&lt;/h4&gt;
&lt;p&gt;When a project becomes large and complex, documentation isn't just something developers read.&lt;/p&gt;
&lt;p&gt;It can become the mechanism that keeps the project honest.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;still-building&quot;&gt;Still Building&lt;/h3&gt;
&lt;p&gt;MyZubster is not finished.&lt;/p&gt;
&lt;p&gt;And Daniel doesn't present it as finished.&lt;/p&gt;
&lt;p&gt;That may be one of the most interesting parts of the journey.&lt;/p&gt;
&lt;p&gt;The project is still being tested, refined, documented, and connected to real people and real experiments.&lt;/p&gt;
&lt;p&gt;The challenge now isn't simply to build more features.&lt;/p&gt;
&lt;p&gt;It's to discover which parts of the larger vision can survive contact with reality.&lt;/p&gt;
&lt;p&gt;Which ideas are genuinely useful?&lt;/p&gt;
&lt;p&gt;Which prototypes can become reliable systems?&lt;/p&gt;
&lt;p&gt;Which experiments produce measurable results?&lt;/p&gt;
&lt;p&gt;Which parts should remain experiments?&lt;/p&gt;
&lt;p&gt;And how can AI help without taking away human responsibility?&lt;/p&gt;
&lt;p&gt;Those questions are still being answered.&lt;/p&gt;
&lt;p&gt;And that is what makes MyZubster a journey rather than simply a product.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-daniel-ioni&quot;&gt;About Daniel Ioni&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Myzubster&quot;&gt;Daniel Ioni&lt;/a&gt; is the founder and builder behind MyZubster, an open-source ecosystem exploring AI, environmental projects, digital identity, community participation, robotics, IoT, decentralized infrastructure, and interactive digital experiences.&lt;/p&gt;
&lt;p&gt;His work also includes &lt;strong&gt;Zorgax&lt;/strong&gt;, a consent-driven AI coordination layer designed to assist people and projects while keeping human approval and transparent governance at the center.&lt;/p&gt;
&lt;p&gt;On CoderLegion, his work covers open source, AI agents, MyZubster, Zorgax, the Metaverse, real-world evidence, and building in public.&lt;/p&gt;
&lt;p&gt;You can follow his ongoing work through his &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Myzubster&quot;&gt;CoderLegion profile&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-this-developer-story-1&quot;&gt;About This Developer Story&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Daniel Ioni&lt;br&gt;
&lt;strong&gt;Project:&lt;/strong&gt; MyZubster&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Interview format:&lt;/strong&gt; Q&amp;amp;A&lt;br&gt;
&lt;strong&gt;Interviewed and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This story was created from Daniel's own answers and experiences shared during the CoderLegion Developer Stories Q&amp;amp;A. The article distinguishes between implemented features, experiments, prototypes, and future directions based on Daniel's own description of the project.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/27041/building-myzubster-daniel-ionis-journey-from-an-idea-to-an-open-source-ecosystem</guid>
<pubDate>Sun, 13 Sep 2026 08:13:31 +0000</pubDate>
</item>
<item>
<title>From Game Cheats to C Shell: Matheus’s Journey Into Programming</title>
<link>https://coderlegion.com/26826/from-game-cheats-to-c-shell-matheuss-journey-into-programming</link>
<description>&lt;h2 id=&quot;from-game-cheats-to-c-shell-matheus-s-journey-into-programming&quot;&gt;From Game Cheats to C Shell: Matheus’s Journey Into Programming&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;A CoderLegion Developer Story featuring &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/MProG10&quot;&gt;Matheus&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Matheus has been interested in computers since childhood. What started with playing games, experimenting with cheats, and carefully watching his father repair a computer eventually turned into a deep interest in programming, Unix, Linux, shell scripting, and low-level software.&lt;/p&gt;
&lt;p&gt;Today, his interests span languages such as C, Objective-C, Smalltalk, Java, C#, JavaScript, Python, and Shell. More recently, he has been working directly on C shell, forking &lt;code&gt;tcsh&lt;/code&gt; and experimenting with new features and changes to the shell's parsing and execution behavior.&lt;/p&gt;
&lt;p&gt;His journey isn't really about following one technology.&lt;/p&gt;
&lt;p&gt;It is about curiosity.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-started-with-a-computer-and-game-cheats&quot;&gt;It Started With a Computer and Game Cheats&lt;/h3&gt;
&lt;p&gt;Matheus's interest in computers began before he was thinking seriously about programming.&lt;/p&gt;
&lt;p&gt;One of his earliest memories involves playing games with cheats on a computer equipped with an Intel MMX processor.&lt;/p&gt;
&lt;p&gt;Whenever something went wrong with the computer, he would ask his father to fix it. But he wasn't simply waiting for the computer to work again.&lt;/p&gt;
&lt;p&gt;He watched closely.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I used to pay close attention to the process, so I could reproduce myself.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That habit of watching how things worked would eventually become an important part of his approach to programming.&lt;/p&gt;
&lt;p&gt;Instead of simply using technology, he wanted to understand how it worked and reproduce what he had seen.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;discovering-programming-through-game-servers&quot;&gt;Discovering Programming Through Game Servers&lt;/h3&gt;
&lt;p&gt;Matheus's programming journey properly began around 2013 or 2014.&lt;/p&gt;
&lt;p&gt;At the time, he was hosting servers for games.&lt;/p&gt;
&lt;p&gt;Those games included scripting languages that allowed players to write their own programs and modify the behavior of the game.&lt;/p&gt;
&lt;p&gt;That was one of the first opportunities for Matheus to discover that software could be something he could actually change and build himself.&lt;/p&gt;
&lt;p&gt;Around the same time, his interest in Linux and Unix began to develop.&lt;/p&gt;
&lt;p&gt;The two interests gradually came together.&lt;/p&gt;
&lt;p&gt;He started experimenting with shell scripting and quickly became fascinated by what could be accomplished from the command line.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I played with shell scripting for a long time, until I met the C programming language, around 2021 and 2022.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His exploration of different technologies wasn't driven by a particular career plan.&lt;/p&gt;
&lt;p&gt;It was driven mostly by curiosity.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;The reason I've explored many different technologies is mainly due to curiosity. I think my baggage is never enough, so I tend to learn every technology I can.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That curiosity has remained one of the defining characteristics of his programming journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-unix-linux-and-the-shell-&quot;&gt;Why Unix, Linux, and the Shell?&lt;/h3&gt;
&lt;p&gt;Matheus describes himself as a Unix and Linux enthusiast, but the part of the ecosystem that attracted him most was the shell.&lt;/p&gt;
&lt;p&gt;For him, the shell isn't simply a way to launch programs.&lt;/p&gt;
&lt;p&gt;It's a powerful programming environment.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I think what mostly attracted and kept me interested in Linux and Unix is the shell.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Through shell scripting, he learned many different techniques and ways of solving problems.&lt;/p&gt;
&lt;p&gt;The simplicity of the environment also gave him room to experiment.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I like to think the shell is a great tool.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That interest eventually led him much deeper into understanding how shells work and, eventually, into modifying one himself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-shell-scripting-to-c&quot;&gt;From Shell Scripting to C&lt;/h3&gt;
&lt;p&gt;Shell scripting became an important part of how Matheus learned and practiced programming.&lt;/p&gt;
&lt;p&gt;But learning C introduced a different way of thinking.&lt;/p&gt;
&lt;p&gt;One of the interesting differences for him was the presence of pointers in C.&lt;/p&gt;
&lt;p&gt;Coming from shell scripting, pointers were initially somewhat counter-intuitive.&lt;/p&gt;
&lt;p&gt;Shell scripting doesn't have pointers in the same way C does.&lt;/p&gt;
&lt;p&gt;But Matheus eventually came to appreciate how powerful they can be.&lt;/p&gt;
&lt;p&gt;In fact, his curiosity went far enough that he began thinking about whether pointers could even be implemented on top of a shell.&lt;/p&gt;
&lt;p&gt;That kind of experimentation reflects a broader pattern throughout his journey: rather than simply accepting how a technology works, he likes to ask what else might be possible.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;rethinking-the-c-shell&quot;&gt;Rethinking the C Shell&lt;/h3&gt;
&lt;p&gt;Today, Matheus is experimenting directly with C shell.&lt;/p&gt;
&lt;p&gt;He is working on a fork of &lt;code&gt;tcsh&lt;/code&gt;, exploring fixes and new features while rethinking parts of the shell's behavior.&lt;/p&gt;
&lt;p&gt;One of his current projects focuses on &lt;strong&gt;one-line control structure parsing&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The goal is to make certain control structures work on a single line in a way similar to Bourne-style shells.&lt;/p&gt;
&lt;p&gt;For example, C shell traditionally parses an entire command line before taking further action, which creates limitations around using semicolons and line feeds interchangeably. Matheus's implementation attempts to address that behavior. :contentReference[oaicite:1]{index=1}&lt;/p&gt;
&lt;p&gt;He has also worked on other changes to the shell, including function declarations, variable assignment from pipes and redirections, comments in interactive sessions, and other fixes and features. :contentReference[oaicite:2]{index=2}&lt;/p&gt;
&lt;p&gt;For Matheus, this isn't simply about using an existing shell.&lt;/p&gt;
&lt;p&gt;He wants to understand its internals well enough to change them.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-challenge-of-parsing-a-control-structure&quot;&gt;The Challenge of Parsing a Control Structure&lt;/h3&gt;
&lt;p&gt;One of the most challenging parts of his current work has been implementing one-line control structure parsing.&lt;/p&gt;
&lt;p&gt;His first approach was to implement the mechanism through built-ins.&lt;/p&gt;
&lt;p&gt;But he quickly realized that this would be dangerous and ineffective.&lt;/p&gt;
&lt;p&gt;So he changed his approach.&lt;/p&gt;
&lt;p&gt;Instead of handling the feature through built-ins, he moved the implementation into the post-parsing execution stage, where the command line could be reparsed and executed.&lt;/p&gt;
&lt;p&gt;The implementation involves recursively analyzing the structure of commands and determining the opening and enclosing blocks of control structures.&lt;/p&gt;
&lt;p&gt;Matheus describes the process as a set of recursive functions that analyze the parsed structure.&lt;/p&gt;
&lt;p&gt;His recent CoderLegion article describes the implementation in more detail, including the use of new parsing and execution modes and a circular linked list for relevant command nodes. :contentReference[oaicite:3]{index=3}&lt;/p&gt;
&lt;p&gt;It's a good example of how his curiosity has evolved.&lt;/p&gt;
&lt;p&gt;What started with using software has become an interest in understanding and modifying the machinery underneath it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;testing-you-can-t-always-test-your-own-software&quot;&gt;Testing: You Can't Always Test Your Own Software&lt;/h3&gt;
&lt;p&gt;For Matheus, testing is an essential part of software development.&lt;/p&gt;
&lt;p&gt;But he has also learned an important limitation:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The person who writes the software may not be the best person to test it.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;A developer by themselves may not be able to play the role of a tester.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A developer knows what they intended to build.&lt;/p&gt;
&lt;p&gt;That can make it difficult to see all the unexpected ways another person might use it.&lt;/p&gt;
&lt;p&gt;Matheus doesn't consider himself a tester.&lt;/p&gt;
&lt;p&gt;He considers himself a developer whose goal is to produce a program.&lt;/p&gt;
&lt;p&gt;Of course, he tests everything he develops himself.&lt;/p&gt;
&lt;p&gt;But he doesn't assume that his own tests are enough.&lt;/p&gt;
&lt;p&gt;Instead, he often asks other people to test his software because they can approach it from a different perspective.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I'm unaware of the many possibilities of use.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That lesson is especially relevant to the kind of software he is currently building.&lt;/p&gt;
&lt;p&gt;When you change something as fundamental as a shell, there can be many behaviors and edge cases that the original developer simply didn't anticipate.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;programming-isn-t-as-hard-as-it-looks&quot;&gt;Programming Isn't as Hard as It Looks&lt;/h3&gt;
&lt;p&gt;After spending years learning different technologies, Matheus has arrived at a surprisingly simple conclusion:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Programming isn't as hard as thought.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Even subjects that initially appear intimidating can become manageable once you spend enough time with them.&lt;/p&gt;
&lt;p&gt;That doesn't mean programming requires no effort.&lt;/p&gt;
&lt;p&gt;For Matheus, the difficult part isn't necessarily that programming is impossibly complicated.&lt;/p&gt;
&lt;p&gt;It's that understanding something requires time, experimentation, and persistence.&lt;/p&gt;
&lt;p&gt;The intimidating subject becomes less intimidating once you start working with it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-hardest-part-deciding-how-to-solve-a-problem&quot;&gt;The Hardest Part: Deciding How to Solve a Problem&lt;/h3&gt;
&lt;p&gt;One of Matheus's biggest challenges isn't learning a programming language.&lt;/p&gt;
&lt;p&gt;It's deciding how to solve a problem.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;To solve a problem. This has always been challenging for me.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When planning an implementation, he isn't always sure that the solution he's considering is the best one.&lt;/p&gt;
&lt;p&gt;There may be another approach that he hasn't thought of yet.&lt;/p&gt;
&lt;p&gt;That uncertainty can make it difficult to begin.&lt;/p&gt;
&lt;p&gt;Over time, however, he has developed a practical way of dealing with it.&lt;/p&gt;
&lt;p&gt;If he has a reasonable solution, he believes it is often better to implement it rather than remain stuck trying to find the perfect approach.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;If you have a solution, put in practice, even if this isn't the best.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And if a better solution becomes apparent later, the software can be reimplemented.&lt;/p&gt;
&lt;p&gt;For Matheus, moving forward can be more valuable than remaining paralyzed by uncertainty.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-from-other-developers&quot;&gt;Learning From Other Developers&lt;/h3&gt;
&lt;p&gt;One of the things Matheus enjoys most about software development is the opportunity to learn from other people.&lt;/p&gt;
&lt;p&gt;Building software alongside other developers exposes you to different approaches and different ways of thinking.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;They might have better solutions, and you can aggregate their knowledge.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Even though he doesn't currently work as part of a team, he still enjoys sharing software and ideas with other developers.&lt;/p&gt;
&lt;p&gt;For him, open source and developer communities aren't just places to show what you've built.&lt;/p&gt;
&lt;p&gt;They're places where knowledge can move in both directions.&lt;/p&gt;
&lt;p&gt;You contribute something.&lt;/p&gt;
&lt;p&gt;Someone else contributes an idea.&lt;/p&gt;
&lt;p&gt;And your understanding becomes a little larger than it was before.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;finding-a-community-on-coderlegion&quot;&gt;Finding a Community on CoderLegion&lt;/h3&gt;
&lt;p&gt;Matheus joined CoderLegion in January 2026 and has since shared articles and projects around programming, shell development, testing, Pascal, C, and open source. His recent posts include work on C shell and one-line control structure parsing. :contentReference[oaicite:4]{index=4}&lt;/p&gt;
&lt;p&gt;His experience so far has been relatively quiet in terms of comments and engagement.&lt;/p&gt;
&lt;p&gt;But that hasn't changed what he wants from the community.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I'm not only seeking for engagement, but also for contributions.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Matheus, the value of a developer community isn't simply the number of reactions a post receives.&lt;/p&gt;
&lt;p&gt;He wants to expand his network, exchange knowledge, and contribute to other developers.&lt;/p&gt;
&lt;p&gt;That's also why feedback matters to him.&lt;/p&gt;
&lt;p&gt;A developer can build something alone, but other people can see possibilities, problems, and solutions that the original developer may have missed.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-advice-he-would-give-to-new-developers&quot;&gt;The Advice He Would Give to New Developers&lt;/h3&gt;
&lt;p&gt;For someone just beginning their programming journey, Matheus's advice is straightforward:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don't give up.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;My best advice is to never look down and give up.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Programming is a journey, and according to Matheus, it requires dedication and discipline.&lt;/p&gt;
&lt;p&gt;There will be moments when a problem seems impossible.&lt;/p&gt;
&lt;p&gt;There will be technologies that look intimidating.&lt;/p&gt;
&lt;p&gt;There will be times when you aren't sure how to implement something.&lt;/p&gt;
&lt;p&gt;His advice is to keep moving.&lt;/p&gt;
&lt;p&gt;And when you're stuck, don't be afraid to look for help.&lt;/p&gt;
&lt;p&gt;One resource he particularly recommends is books.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;In my experience, I found books to be excellent guides when stuck.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For Matheus, learning isn't about reaching a point where there is nothing left to discover.&lt;/p&gt;
&lt;p&gt;His own journey demonstrates almost the opposite.&lt;/p&gt;
&lt;p&gt;From game scripting to shell scripting, from Unix and Linux to C, from programming languages to open-source shell development, curiosity keeps pushing him toward the next thing he wants to understand.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;curiosity-is-the-common-thread&quot;&gt;Curiosity Is the Common Thread&lt;/h3&gt;
&lt;p&gt;Looking at Matheus's journey, there isn't one programming language or framework that defines it.&lt;/p&gt;
&lt;p&gt;The common thread is curiosity.&lt;/p&gt;
&lt;p&gt;It started with watching his father repair a computer.&lt;/p&gt;
&lt;p&gt;Then came game servers and scripting.&lt;/p&gt;
&lt;p&gt;Then Linux and Unix.&lt;/p&gt;
&lt;p&gt;Then shell scripting.&lt;/p&gt;
&lt;p&gt;Then C.&lt;/p&gt;
&lt;p&gt;And now, instead of simply using a shell, Matheus is working on the shell itself.&lt;/p&gt;
&lt;p&gt;His journey shows that learning doesn't always follow a straight path.&lt;/p&gt;
&lt;p&gt;Sometimes the best reason to learn a technology is simply because you want to understand it.&lt;/p&gt;
&lt;p&gt;And sometimes that curiosity eventually leads you much deeper than you expected.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-matheus&quot;&gt;About Matheus&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/MProG10&quot;&gt;Matheus&lt;/a&gt; is a passionate computer programmer based in Brazil.&lt;/p&gt;
&lt;p&gt;His programming interests include C, Objective-C, Smalltalk, Java, C#, JavaScript, Python, and Shell. He has a strong interest in Unix and Linux and is particularly interested in shell scripting and developer tools.&lt;/p&gt;
&lt;p&gt;On CoderLegion, Matheus has shared work around C shell, testing, Pascal, C programming, and open source. His current work includes experimenting with and extending &lt;code&gt;tcsh&lt;/code&gt;, including one-line control structure parsing and other shell improvements.&lt;/p&gt;
&lt;p&gt;You can follow his work on &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/MProG10&quot;&gt;his CoderLegion profile&lt;/a&gt; and his &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Krush206&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-this-developer-story-2&quot;&gt;About This Developer Story&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Matheus&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Interview format:&lt;/strong&gt; Q&amp;amp;A&lt;br&gt;
&lt;strong&gt;Interviewed and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This story was created from Matheus's own answers and experiences shared during the CoderLegion Developer Stories Q&amp;amp;A.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26826/from-game-cheats-to-c-shell-matheuss-journey-into-programming</guid>
<pubDate>Fri, 11 Sep 2026 09:52:03 +0000</pubDate>
</item>
<item>
<title>My Developer Journey So Far: Wrong Turns, Real Lessons — Elias Song’s Story</title>
<link>https://coderlegion.com/26822/my-developer-journey-so-far-wrong-turns-real-lessons-elias-songs-story</link>
<description>&lt;h2 id=&quot;my-developer-journey-so-far-wrong-turns-real-lessons-elias-song-s-story&quot;&gt;My Developer Journey So Far: Wrong Turns, Real Lessons — Elias Song’s Story&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;A CoderLegion Developer Story featuring &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/elysianx&quot;&gt;Elias Song&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Written by Elias Song&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you ask me what has stayed with me most since I started programming, I can give you one answer:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The first time I saw &quot;Hello World&quot; appear in the terminal.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It wasn't an impressive program.&lt;/p&gt;
&lt;p&gt;It wasn't a groundbreaking project.&lt;/p&gt;
&lt;p&gt;But there was something about seeing those words appear on the screen that made programming feel real.&lt;/p&gt;
&lt;p&gt;Since then, my journey has included ambitious ideas, wrong turns, an embarrassing competition experience, learning with AI, moments of self-doubt, and eventually a much simpler realization:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I don't want to learn technology just to impress people. I want to understand it because I genuinely love it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is my developer journey so far.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;my-first-step-into-programming&quot;&gt;My First Step Into Programming&lt;/h3&gt;
&lt;p&gt;When I entered university, I chose Computer Science.&lt;/p&gt;
&lt;p&gt;That was my first real introduction to programming.&lt;/p&gt;
&lt;p&gt;During my freshman year, I had an idea for a product that I couldn't stop thinking about.&lt;/p&gt;
&lt;p&gt;I spent a lot of time searching for useful school resources and trying to figure out whether different materials were actually what I needed.&lt;/p&gt;
&lt;p&gt;Eventually, I thought:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why not build a website that brings all these resources together?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The idea was to create a platform where students could find school resources and classwork in one place.&lt;/p&gt;
&lt;p&gt;Students could share useful materials.&lt;/p&gt;
&lt;p&gt;They could record information in built-in notes.&lt;/p&gt;
&lt;p&gt;Those notes could be printed locally.&lt;/p&gt;
&lt;p&gt;And I even imagined an AI feature that could summarize the information.&lt;/p&gt;
&lt;p&gt;Most importantly, I wanted the website to be free and simple.&lt;/p&gt;
&lt;p&gt;No email.&lt;/p&gt;
&lt;p&gt;No phone number.&lt;/p&gt;
&lt;p&gt;Just search for what you need, save it, and print it locally.&lt;/p&gt;
&lt;p&gt;The idea kept coming back to me.&lt;/p&gt;
&lt;p&gt;So eventually I thought:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Just give it a try.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There was only one problem.&lt;/p&gt;
&lt;p&gt;I was a beginner.&lt;/p&gt;
&lt;p&gt;And I had no idea what technology stack I should choose.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;choosing-my-first-stack&quot;&gt;Choosing My First Stack&lt;/h3&gt;
&lt;p&gt;After considering my options, I chose Python and Flask.&lt;/p&gt;
&lt;p&gt;They seemed approachable, and I thought they would allow me to get a website running quickly.&lt;/p&gt;
&lt;p&gt;Then reality arrived.&lt;/p&gt;
&lt;p&gt;There were errors.&lt;/p&gt;
&lt;p&gt;There were bugs.&lt;/p&gt;
&lt;p&gt;There were things I didn't understand.&lt;/p&gt;
&lt;p&gt;I spent a lot of time debugging.&lt;/p&gt;
&lt;p&gt;But there was another important detail about this project.&lt;/p&gt;
&lt;p&gt;Around 90% of it was done with the help of AI.&lt;/p&gt;
&lt;p&gt;At the time, I had a very strong desire to finish the project quickly.&lt;/p&gt;
&lt;p&gt;I thought I needed to get it working, put it online, and show it to people.&lt;/p&gt;
&lt;p&gt;I imagined my friends seeing the website and being impressed.&lt;/p&gt;
&lt;p&gt;Eventually, the website went live on the public internet.&lt;/p&gt;
&lt;p&gt;I was incredibly excited.&lt;/p&gt;
&lt;p&gt;I told my friends.&lt;/p&gt;
&lt;p&gt;I told my parents.&lt;/p&gt;
&lt;p&gt;It was online.&lt;/p&gt;
&lt;p&gt;I had built something.&lt;/p&gt;
&lt;p&gt;Or at least, that's what I thought.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;then-nobody-came&quot;&gt;Then Nobody Came&lt;/h3&gt;
&lt;p&gt;The website was live.&lt;/p&gt;
&lt;p&gt;The visitor counter was ready.&lt;/p&gt;
&lt;p&gt;And then...&lt;/p&gt;
&lt;p&gt;Nothing happened.&lt;/p&gt;
&lt;p&gt;The counter didn't move.&lt;/p&gt;
&lt;p&gt;Day after day, there were almost no visitors.&lt;/p&gt;
&lt;p&gt;I started looking for ways to get people to notice it.&lt;/p&gt;
&lt;p&gt;I entered competitions.&lt;/p&gt;
&lt;p&gt;My friends helped me promote the website.&lt;/p&gt;
&lt;p&gt;We worked on polishing the project.&lt;/p&gt;
&lt;p&gt;One friend helped with promotion through social media.&lt;/p&gt;
&lt;p&gt;Another helped create a feedback form.&lt;/p&gt;
&lt;p&gt;I still remember how much effort they put into helping me.&lt;/p&gt;
&lt;p&gt;I imagined standing in front of the judges and confidently explaining the technology behind my project.&lt;/p&gt;
&lt;p&gt;Then the competition day arrived.&lt;/p&gt;
&lt;p&gt;And everything changed.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;-do-you-have-a-database-&quot;&gt;&quot;Do You Have a Database?&quot;&lt;/h3&gt;
&lt;p&gt;I stood in front of the judges with a friend and started introducing our website.&lt;/p&gt;
&lt;p&gt;Then one judge interrupted us.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Stop! I have a question!&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They asked:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;Do you have a database?&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;How did you upload all these resources and assignments to the website?&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I froze.&lt;/p&gt;
&lt;p&gt;Database?&lt;/p&gt;
&lt;p&gt;Of course we had one.&lt;/p&gt;
&lt;p&gt;There was a SQLite database sitting on the server.&lt;/p&gt;
&lt;p&gt;But I couldn't explain it properly.&lt;/p&gt;
&lt;p&gt;The judge kept asking how we had uploaded the resources.&lt;/p&gt;
&lt;p&gt;I said we used a script.&lt;/p&gt;
&lt;p&gt;Then they asked how the script worked.&lt;/p&gt;
&lt;p&gt;And eventually I admitted:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;We used AI to help write the scripts.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That was one of the most embarrassing moments of my programming journey.&lt;/p&gt;
&lt;p&gt;The worst part wasn't that the project had problems.&lt;/p&gt;
&lt;p&gt;The worst part was that &lt;strong&gt;I couldn't explain what I had built.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-project-looked-better-than-i-understood-it&quot;&gt;The Project Looked Better Than I Understood It&lt;/h3&gt;
&lt;p&gt;Looking back, the problem was obvious.&lt;/p&gt;
&lt;p&gt;I had been focused on finishing.&lt;/p&gt;
&lt;p&gt;I wanted features.&lt;/p&gt;
&lt;p&gt;I wanted the project to look impressive.&lt;/p&gt;
&lt;p&gt;I wanted people to see what I had built.&lt;/p&gt;
&lt;p&gt;But I hadn't spent enough time understanding the foundation underneath it.&lt;/p&gt;
&lt;p&gt;There was no proper concurrency handling.&lt;/p&gt;
&lt;p&gt;There was no defensive programming.&lt;/p&gt;
&lt;p&gt;There was no meaningful logging.&lt;/p&gt;
&lt;p&gt;It was essentially basic CRUD.&lt;/p&gt;
&lt;p&gt;And although I had a database, I didn't even know how to confidently explain it when someone asked me about it.&lt;/p&gt;
&lt;p&gt;I had focused on building something that looked like a product.&lt;/p&gt;
&lt;p&gt;I hadn't focused enough on becoming the person who understood the product.&lt;/p&gt;
&lt;p&gt;That competition taught me a lesson that no tutorial could have taught me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you can't explain what you built, you don't really own it yet.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;when-failure-started-feeling-personal&quot;&gt;When Failure Started Feeling Personal&lt;/h3&gt;
&lt;p&gt;After the competition, I felt terrible.&lt;/p&gt;
&lt;p&gt;It wasn't just disappointment in the project.&lt;/p&gt;
&lt;p&gt;I started comparing myself with everyone around me.&lt;/p&gt;
&lt;p&gt;Other students had good grades.&lt;/p&gt;
&lt;p&gt;Some had club memberships.&lt;/p&gt;
&lt;p&gt;Some had laboratory positions.&lt;/p&gt;
&lt;p&gt;Others had competition medals.&lt;/p&gt;
&lt;p&gt;I didn't have those things.&lt;/p&gt;
&lt;p&gt;At home, the people who cared about me tried to guide me toward what they believed was the safer path.&lt;/p&gt;
&lt;p&gt;Study hard.&lt;/p&gt;
&lt;p&gt;Get a stable job.&lt;/p&gt;
&lt;p&gt;Build a standard life.&lt;/p&gt;
&lt;p&gt;Follow the path everyone understands.&lt;/p&gt;
&lt;p&gt;And for a while, I questioned myself.&lt;/p&gt;
&lt;p&gt;Maybe they were right.&lt;/p&gt;
&lt;p&gt;Maybe I was wasting my time.&lt;/p&gt;
&lt;p&gt;Maybe I should stop.&lt;/p&gt;
&lt;p&gt;But eventually I came to a different conclusion.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;I'd rather fail on my own path than succeed on someone else's.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That became an important turning point for me.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;stopping-the-chase-for-applause&quot;&gt;Stopping the Chase for Applause&lt;/h3&gt;
&lt;p&gt;Slowly, I stopped trying to prove myself.&lt;/p&gt;
&lt;p&gt;Instead, I started documenting what I was learning.&lt;/p&gt;
&lt;p&gt;I wrote about what I was studying.&lt;/p&gt;
&lt;p&gt;I wrote about things I got wrong.&lt;/p&gt;
&lt;p&gt;I wrote about things that confused me.&lt;/p&gt;
&lt;p&gt;I wrote essays for people I had never met.&lt;/p&gt;
&lt;p&gt;Before publishing something, I was always afraid that nobody would read it.&lt;/p&gt;
&lt;p&gt;But people did.&lt;/p&gt;
&lt;p&gt;Not necessarily thousands of people.&lt;/p&gt;
&lt;p&gt;Sometimes just a few.&lt;/p&gt;
&lt;p&gt;But they were real people.&lt;/p&gt;
&lt;p&gt;And that mattered more than I expected.&lt;/p&gt;
&lt;p&gt;I started realizing that learning didn't have to be a performance.&lt;/p&gt;
&lt;p&gt;I could simply learn something because I wanted to understand it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;rediscovering-why-i-love-programming&quot;&gt;Rediscovering Why I Love Programming&lt;/h3&gt;
&lt;p&gt;One afternoon, I was sitting quietly in a library.&lt;/p&gt;
&lt;p&gt;I opened my laptop and started writing some code.&lt;/p&gt;
&lt;p&gt;There was no deadline.&lt;/p&gt;
&lt;p&gt;No competition.&lt;/p&gt;
&lt;p&gt;No audience.&lt;/p&gt;
&lt;p&gt;No requirement to build a product.&lt;/p&gt;
&lt;p&gt;No one was going to judge me.&lt;/p&gt;
&lt;p&gt;I was just writing code.&lt;/p&gt;
&lt;p&gt;I still don't completely know why I started writing that code that day.&lt;/p&gt;
&lt;p&gt;But I know why I write now.&lt;/p&gt;
&lt;p&gt;It reminded me of the first time I saw &quot;Hello World&quot; in the terminal.&lt;/p&gt;
&lt;p&gt;Nothing impressive.&lt;/p&gt;
&lt;p&gt;Nothing complicated.&lt;/p&gt;
&lt;p&gt;And yet somehow meaningful.&lt;/p&gt;
&lt;p&gt;That was when I started to understand that I genuinely enjoy technology.&lt;/p&gt;
&lt;p&gt;Not just the recognition that can come from building something.&lt;/p&gt;
&lt;p&gt;Not just the feeling of having a finished product.&lt;/p&gt;
&lt;p&gt;The technology itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;finding-a-community&quot;&gt;Finding a Community&lt;/h3&gt;
&lt;p&gt;Eventually, I started sharing my essays on a developer community called &lt;strong&gt;CoderLegion&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That gave me an opportunity to learn in public and interact with other developers.&lt;/p&gt;
&lt;p&gt;Not everyone agreed with me.&lt;/p&gt;
&lt;p&gt;And surprisingly, I started enjoying that.&lt;/p&gt;
&lt;p&gt;I remember having a discussion with someone about &lt;strong&gt;raw pointers versus smart pointers&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We had different opinions.&lt;/p&gt;
&lt;p&gt;But it didn't feel like an attack.&lt;/p&gt;
&lt;p&gt;It felt like two people who genuinely loved technology looking at the same problem from different directions.&lt;/p&gt;
&lt;p&gt;That experience changed the way I thought about developer communities.&lt;/p&gt;
&lt;p&gt;A disagreement doesn't necessarily mean someone is against you.&lt;/p&gt;
&lt;p&gt;Sometimes it simply means they have a different perspective.&lt;/p&gt;
&lt;p&gt;And that can be valuable.&lt;/p&gt;
&lt;p&gt;For me, that was one of the purest experiences I've had with technology.&lt;/p&gt;
&lt;p&gt;It wasn't about winning.&lt;/p&gt;
&lt;p&gt;It was about thinking.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-i-learned-from-getting-it-wrong&quot;&gt;What I Learned From Getting It Wrong&lt;/h3&gt;
&lt;p&gt;My first major project taught me something that I probably wouldn't have learned if everything had gone perfectly.&lt;/p&gt;
&lt;p&gt;Building quickly isn't the same as understanding.&lt;/p&gt;
&lt;p&gt;Using AI isn't the same as knowing how something works.&lt;/p&gt;
&lt;p&gt;Getting something online isn't the same as building something well.&lt;/p&gt;
&lt;p&gt;And receiving applause isn't the same as making progress.&lt;/p&gt;
&lt;p&gt;AI was incredibly useful in helping me build that first project.&lt;/p&gt;
&lt;p&gt;But I learned that the more important skill is being able to understand, question, debug, and explain what AI helps you create.&lt;/p&gt;
&lt;p&gt;That lesson continues to influence how I learn today.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;learning-in-public&quot;&gt;Learning in Public&lt;/h3&gt;
&lt;p&gt;Writing has become part of my learning process.&lt;/p&gt;
&lt;p&gt;When I write about something, I have to organize my thoughts.&lt;/p&gt;
&lt;p&gt;When someone disagrees with me, I have to reconsider my assumptions.&lt;/p&gt;
&lt;p&gt;When someone asks a question I can't answer, I have something new to learn.&lt;/p&gt;
&lt;p&gt;That's why I don't see writing as separate from programming.&lt;/p&gt;
&lt;p&gt;For me, documenting my learning is part of learning itself.&lt;/p&gt;
&lt;p&gt;My CoderLegion profile reflects much of what I'm currently interested in: Python, C++, backend development, AI, and learning.&lt;/p&gt;
&lt;p&gt;I've also been writing about C++ topics such as smart pointers, STL, raw pointers, and the mistakes I've encountered while learning.&lt;/p&gt;
&lt;p&gt;I'm still learning.&lt;/p&gt;
&lt;p&gt;And I think that's an important part of my story.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;i-m-still-a-beginner-in-many-ways&quot;&gt;I'm Still a Beginner in Many Ways&lt;/h3&gt;
&lt;p&gt;I haven't seen much of the world yet.&lt;/p&gt;
&lt;p&gt;There are still many technologies I don't understand.&lt;/p&gt;
&lt;p&gt;There are still problems I don't know how to solve.&lt;/p&gt;
&lt;p&gt;I'm currently exploring areas such as machine learning and deep learning, while continuing to build my foundations in programming and backend development.&lt;/p&gt;
&lt;p&gt;My journey is nowhere near finished.&lt;/p&gt;
&lt;p&gt;Maybe that's the point.&lt;/p&gt;
&lt;p&gt;I don't need to pretend that I've already figured everything out.&lt;/p&gt;
&lt;p&gt;I just need to keep moving.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-meaning-behind-an-old-saying&quot;&gt;The Meaning Behind an Old Saying&lt;/h3&gt;
&lt;p&gt;There is an old saying from my country:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;花有重开日，人无再少年&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It can be roughly understood as:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flowers may bloom again, but youth never returns.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I don't take that as a warning to hurry.&lt;/p&gt;
&lt;p&gt;I take it as a reminder.&lt;/p&gt;
&lt;p&gt;These years come only once.&lt;/p&gt;
&lt;p&gt;So direction matters more than speed.&lt;/p&gt;
&lt;p&gt;I don't need to rush toward someone else's definition of success.&lt;/p&gt;
&lt;p&gt;I need to make sure I'm spending these years moving toward something I genuinely care about.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;if-you-re-a-university-student-too&quot;&gt;If You're a University Student Too&lt;/h3&gt;
&lt;p&gt;If you're also a university student, especially someone who feels behind other people, I hope you don't give up on your own path simply because someone else's path looks better.&lt;/p&gt;
&lt;p&gt;You might not have the best grades.&lt;/p&gt;
&lt;p&gt;You might not have the most impressive portfolio.&lt;/p&gt;
&lt;p&gt;You might not win every competition.&lt;/p&gt;
&lt;p&gt;You might build something with AI and later realize you don't understand it as well as you should.&lt;/p&gt;
&lt;p&gt;You might fail.&lt;/p&gt;
&lt;p&gt;I certainly have.&lt;/p&gt;
&lt;p&gt;But failure doesn't have to be the end of the journey.&lt;/p&gt;
&lt;p&gt;Sometimes it's the moment that forces you to ask what you actually want.&lt;/p&gt;
&lt;p&gt;And sometimes that's more valuable than winning.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;i-m-choosing-my-own-path&quot;&gt;I'm Choosing My Own Path&lt;/h3&gt;
&lt;p&gt;When I look back at my first project, I don't feel proud of everything I did.&lt;/p&gt;
&lt;p&gt;I made mistakes.&lt;/p&gt;
&lt;p&gt;I relied too heavily on AI.&lt;/p&gt;
&lt;p&gt;I cared too much about finishing quickly.&lt;/p&gt;
&lt;p&gt;I built features without understanding the fundamentals deeply enough.&lt;/p&gt;
&lt;p&gt;And I couldn't explain my own project when someone challenged me.&lt;/p&gt;
&lt;p&gt;But I'm also glad it happened.&lt;/p&gt;
&lt;p&gt;Because that failure forced me to slow down.&lt;/p&gt;
&lt;p&gt;It pushed me toward learning instead of applause.&lt;/p&gt;
&lt;p&gt;It encouraged me to document my journey.&lt;/p&gt;
&lt;p&gt;It introduced me to people who see technology differently.&lt;/p&gt;
&lt;p&gt;And it helped me understand why I actually enjoy programming.&lt;/p&gt;
&lt;p&gt;I'm still learning.&lt;/p&gt;
&lt;p&gt;I'm still making mistakes.&lt;/p&gt;
&lt;p&gt;I'm still figuring things out.&lt;/p&gt;
&lt;p&gt;But now, I'm spending my time on the path I chose.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;I'd rather fail on my own path than succeed on someone else's.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And for now, that's enough.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-elias-song&quot;&gt;About Elias Song&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/elysianx&quot;&gt;Elias Song&lt;/a&gt;, known as &lt;strong&gt;@elysianx&lt;/strong&gt; on CoderLegion, is a tech explorer documenting their programming journey.&lt;/p&gt;
&lt;p&gt;Based in Hong Kong, Elias is exploring &lt;strong&gt;Python, C++, backend development, and AI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Their technical interests include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;LangChain&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They are currently exploring &lt;strong&gt;machine learning and deep learning&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Elias also writes about their experiences learning C++, including smart pointers, STL, raw pointers, and the mistakes and lessons they encounter along the way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;View Elias Song's full CoderLegion profile:&lt;/strong&gt;&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/elysianx&quot;&gt;https://coderlegion.com/user/elysianx&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-this-developer-story-3&quot;&gt;About This Developer Story&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Elias Song (@elysianx)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Written by:&lt;/strong&gt; Elias Song&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team, CoderLegion&lt;/p&gt;
&lt;p&gt;This Developer Story is based on Elias Song's personal experience learning programming, building their first project, facing failure, discovering the value of learning for themselves, and finding a stronger connection with technology through writing and community.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26822/my-developer-journey-so-far-wrong-turns-real-lessons-elias-songs-story</guid>
<pubDate>Fri, 11 Sep 2026 09:36:45 +0000</pubDate>
</item>
<item>
<title>From Book-Cover Illustrator to Indie Developer: Maxim Mitenkov’s Journey of Building for His Own Pai</title>
<link>https://coderlegion.com/26821/from-book-cover-illustrator-indie-developer-maxim-mitenkovs-journey-building-for-his-own</link>
<description>&lt;h2 id=&quot;from-book-cover-illustrator-to-indie-developer-maxim-mitenkov-s-journey-of-building-for-his-own-pain&quot;&gt;From Book-Cover Illustrator to Indie Developer: Maxim Mitenkov’s Journey of Building for His Own Pain&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;A CoderLegion Developer Story featuring &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Maxim+Mitenkov&quot;&gt;Maxim Mitenkov&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview conducted and edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What happens when an illustrator gets tired of doing the same task over and over?&lt;/p&gt;
&lt;p&gt;You build a tool.&lt;/p&gt;
&lt;p&gt;For Maxim Mitenkov, that meant turning years of experience as a book-cover illustrator into a growing journey as an indie developer.&lt;/p&gt;
&lt;p&gt;Maxim has spent more than fifteen years working in design, primarily creating book covers and illustrations. But processing dozens of images every month — resizing, cropping, compressing, and converting them for different destinations — became a problem he couldn't ignore.&lt;/p&gt;
&lt;p&gt;The obvious solutions weren't good enough.&lt;/p&gt;
&lt;p&gt;Photoshop Actions broke when the source changed. Scripts became difficult to maintain. Cloud-based image processors created a privacy problem when the files belonged to clients and hadn't been published yet.&lt;/p&gt;
&lt;p&gt;So Maxim started building.&lt;/p&gt;
&lt;p&gt;Today, he is the solo founder of &lt;strong&gt;Image Pipeline&lt;/strong&gt;, a batch image processor that runs entirely in the browser.&lt;/p&gt;
&lt;p&gt;His journey combines software engineering, illustration, product development, privacy, and the realities of building an indie product around a problem he personally understands.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-computer-science-to-illustration-and-back-to-code&quot;&gt;From Computer Science to Illustration — and Back to Code&lt;/h3&gt;
&lt;p&gt;Maxim's relationship with technology didn't actually begin recently.&lt;/p&gt;
&lt;p&gt;He studied &lt;strong&gt;Computer Science and Radioelectronics at Belarusian State University of Informatics and Radioelectronics (BSUIR)&lt;/strong&gt; from 1993 to 1998, graduating as an Engineer.&lt;/p&gt;
&lt;p&gt;Professionally, however, his career developed around design.&lt;/p&gt;
&lt;p&gt;For more than fifteen years, he has worked as a book-cover illustrator, along with illustration and some branding work.&lt;/p&gt;
&lt;p&gt;The tools were familiar:&lt;/p&gt;
&lt;p&gt;Photoshop.&lt;/p&gt;
&lt;p&gt;Illustrator.&lt;/p&gt;
&lt;p&gt;A drawing tablet.&lt;/p&gt;
&lt;p&gt;The creative side of the work was what mattered.&lt;/p&gt;
&lt;p&gt;But there was another side to the job that was much less interesting.&lt;/p&gt;
&lt;p&gt;Every month, Maxim would prepare 50 to 100 images for portfolios, clients, Behance, Pinterest, and other destinations.&lt;/p&gt;
&lt;p&gt;Resize.&lt;/p&gt;
&lt;p&gt;Crop.&lt;/p&gt;
&lt;p&gt;Compress.&lt;/p&gt;
&lt;p&gt;Convert.&lt;/p&gt;
&lt;p&gt;Repeat.&lt;/p&gt;
&lt;p&gt;Every hour spent repeating those tasks was an hour that wasn't spent drawing.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-problem-that-started-everything&quot;&gt;The Problem That Started Everything&lt;/h3&gt;
&lt;p&gt;The repetitive image-processing work eventually became too obvious to ignore.&lt;/p&gt;
&lt;p&gt;Photoshop Actions seemed like a solution, but they fell apart when clients supplied images with different aspect ratios.&lt;/p&gt;
&lt;p&gt;ImageMagick scripts worked, but only as long as Maxim remembered how they worked months later.&lt;/p&gt;
&lt;p&gt;Cloud converters created an even bigger problem.&lt;/p&gt;
&lt;p&gt;Client artwork could be unpublished or covered by an NDA.&lt;/p&gt;
&lt;p&gt;Uploading it to someone else's server simply wasn't something Maxim wanted to do.&lt;/p&gt;
&lt;p&gt;The problem was specific enough that he already knew what the product should look like:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Open a link, drag files in, hit a button, get a ZIP.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No account.&lt;/p&gt;
&lt;p&gt;No upload.&lt;/p&gt;
&lt;p&gt;No subscription.&lt;/p&gt;
&lt;p&gt;That simple specification became Image Pipeline.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;becoming-a-developer-because-there-was-a-problem&quot;&gt;Becoming a Developer Because There Was a Problem&lt;/h3&gt;
&lt;p&gt;Maxim didn't originally set out to become a software developer.&lt;/p&gt;
&lt;p&gt;Instead, he realized that the person who could write the script was also the person who could build the interface around it.&lt;/p&gt;
&lt;p&gt;He started learning JavaScript.&lt;/p&gt;
&lt;p&gt;Then he moved to React when plain JavaScript started becoming limiting for what he wanted to build.&lt;/p&gt;
&lt;p&gt;Eventually, the code became a product.&lt;/p&gt;
&lt;p&gt;His transition wasn't driven by a career plan.&lt;/p&gt;
&lt;p&gt;It was driven by necessity.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I did not become a developer on purpose. I became one because there was a problem and nobody else was going to fix it.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That idea captures much of Maxim's approach to development.&lt;/p&gt;
&lt;p&gt;He isn't building software simply because software is interesting.&lt;/p&gt;
&lt;p&gt;He's building because he sees something that could work better.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-image-pipeline-runs-entirely-in-the-browser&quot;&gt;Why Image Pipeline Runs Entirely in the Browser&lt;/h3&gt;
&lt;p&gt;One of the most important decisions in Image Pipeline was privacy.&lt;/p&gt;
&lt;p&gt;Rather than processing images on a backend, Maxim designed the application so the work happens inside the browser.&lt;/p&gt;
&lt;p&gt;Resize.&lt;/p&gt;
&lt;p&gt;Filters.&lt;/p&gt;
&lt;p&gt;Format conversion.&lt;/p&gt;
&lt;p&gt;ZIP creation.&lt;/p&gt;
&lt;p&gt;All of it happens on the user's machine.&lt;/p&gt;
&lt;p&gt;There is no server receiving the images.&lt;/p&gt;
&lt;p&gt;There is no image-processing queue.&lt;/p&gt;
&lt;p&gt;There is no server-side image storage.&lt;/p&gt;
&lt;p&gt;The result is a privacy model based on architecture rather than marketing.&lt;/p&gt;
&lt;p&gt;Maxim describes the claim simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I can't see your images.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's a powerful difference.&lt;/p&gt;
&lt;p&gt;The product doesn't need to promise that someone won't access your files.&lt;/p&gt;
&lt;p&gt;The files don't need to reach the server in the first place.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-for-yourself-has-an-advantage&quot;&gt;Building for Yourself Has an Advantage&lt;/h3&gt;
&lt;p&gt;Maxim was his own first user.&lt;/p&gt;
&lt;p&gt;That changed the way he built the product.&lt;/p&gt;
&lt;p&gt;He didn't need to survey users to decide which features were important in the beginning.&lt;/p&gt;
&lt;p&gt;He already knew what he repeatedly needed.&lt;/p&gt;
&lt;p&gt;Resize.&lt;/p&gt;
&lt;p&gt;Crop.&lt;/p&gt;
&lt;p&gt;Compress.&lt;/p&gt;
&lt;p&gt;Export.&lt;/p&gt;
&lt;p&gt;Those were the operations he performed constantly.&lt;/p&gt;
&lt;p&gt;But building for yourself also creates blind spots.&lt;/p&gt;
&lt;p&gt;Maxim discovered this after launching.&lt;/p&gt;
&lt;p&gt;His first public review on AlternativeTo was only two stars.&lt;/p&gt;
&lt;p&gt;The reviewer wanted brightness, contrast, and exposure controls. The preview was too small, and multiple export wasn't working.&lt;/p&gt;
&lt;p&gt;Some of those requirements had never occurred to Maxim.&lt;/p&gt;
&lt;p&gt;But the criticism was useful.&lt;/p&gt;
&lt;p&gt;He fixed the problems.&lt;/p&gt;
&lt;p&gt;The next review was five stars.&lt;/p&gt;
&lt;p&gt;That experience led to one of the clearest lessons from the project:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Your pain gets you version one. Other people's pain gets you everything after.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;launching-before-everything-was-perfect&quot;&gt;Launching Before Everything Was Perfect&lt;/h3&gt;
&lt;p&gt;Image Pipeline launched with nine nodes.&lt;/p&gt;
&lt;p&gt;There was no elaborate onboarding system.&lt;/p&gt;
&lt;p&gt;No extensive FAQ.&lt;/p&gt;
&lt;p&gt;No attempt to build every possible feature before allowing people to use it.&lt;/p&gt;
&lt;p&gt;Maxim wanted to find out whether anyone actually wanted the product.&lt;/p&gt;
&lt;p&gt;That decision quickly exposed several lessons.&lt;/p&gt;
&lt;h4 id=&quot;minimum-isn-t-readiness&quot;&gt;Minimum Isn't Readiness&lt;/h4&gt;
&lt;p&gt;The features Maxim personally needed weren't necessarily all the features other users expected.&lt;/p&gt;
&lt;p&gt;An image-processing application naturally creates expectations around things like brightness, contrast, and exposure.&lt;/p&gt;
&lt;p&gt;His own workflow had created a blind spot.&lt;/p&gt;
&lt;h4 id=&quot;preview-is-trust&quot;&gt;Preview Is Trust&lt;/h4&gt;
&lt;p&gt;The original preview wasn't good enough.&lt;/p&gt;
&lt;p&gt;Users needed to see what was going to happen before processing their images.&lt;/p&gt;
&lt;p&gt;Maxim rebuilt it with a larger live image, zoom functionality, and a before/after slider.&lt;/p&gt;
&lt;p&gt;The preview eventually became one of the strongest parts of the product.&lt;/p&gt;
&lt;h4 id=&quot;feedback-beats-planning&quot;&gt;Feedback Beats Planning&lt;/h4&gt;
&lt;p&gt;Users also requested ways to change the mood and feeling of images.&lt;/p&gt;
&lt;p&gt;Instead of spending weeks planning the feature, Maxim built an emotion filter in a couple of days.&lt;/p&gt;
&lt;p&gt;The experience reinforced another principle:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Launch early. The only expensive failure is launching late and finding out nobody wanted it.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-technical-choice-he-didn-t-make&quot;&gt;The Technical Choice He Didn't Make&lt;/h3&gt;
&lt;p&gt;One of the most interesting technical decisions in Image Pipeline was choosing &lt;strong&gt;not&lt;/strong&gt; to use WebAssembly.&lt;/p&gt;
&lt;p&gt;WASM seemed like the obvious answer.&lt;/p&gt;
&lt;p&gt;It's fast.&lt;/p&gt;
&lt;p&gt;It's powerful.&lt;/p&gt;
&lt;p&gt;It's designed for exactly the kind of computational work browsers increasingly need to perform.&lt;/p&gt;
&lt;p&gt;But Maxim wasn't optimizing for benchmarks alone.&lt;/p&gt;
&lt;p&gt;He wanted the application to open quickly, including on mobile devices.&lt;/p&gt;
&lt;p&gt;WebAssembly would introduce additional download size, build complexity, and compatibility concerns.&lt;/p&gt;
&lt;p&gt;So the image-processing core remained plain HTML5 Canvas code.&lt;/p&gt;
&lt;p&gt;The application processes pixel buffers directly through browser APIs.&lt;/p&gt;
&lt;p&gt;It may not be the fastest possible solution for enormous images.&lt;/p&gt;
&lt;p&gt;But Maxim's goal wasn't to win an artificial benchmark.&lt;/p&gt;
&lt;p&gt;It was to build something that solved the real problem efficiently.&lt;/p&gt;
&lt;p&gt;The engine stayed small and relatively boring.&lt;/p&gt;
&lt;p&gt;And that was exactly the point.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-react-flow-was-the-right-engineering-decision&quot;&gt;Why React Flow Was the Right Engineering Decision&lt;/h3&gt;
&lt;p&gt;The visual pipeline required a node-based interface.&lt;/p&gt;
&lt;p&gt;Maxim could have built the node editor himself.&lt;/p&gt;
&lt;p&gt;But that would have meant spending significant time solving problems that another project had already solved.&lt;/p&gt;
&lt;p&gt;Instead, he chose React Flow.&lt;/p&gt;
&lt;p&gt;It provided capabilities such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drag and drop&lt;/li&gt;
&lt;li&gt;Connections&lt;/li&gt;
&lt;li&gt;Connection validation&lt;/li&gt;
&lt;li&gt;Zooming&lt;/li&gt;
&lt;li&gt;Node-based interaction&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That choice saved development time.&lt;/p&gt;
&lt;p&gt;Rather than spending a month building and debugging a custom node canvas, Maxim could spend that time improving the actual product.&lt;/p&gt;
&lt;p&gt;For him, that was the better engineering decision.&lt;/p&gt;
&lt;p&gt;You don't prove that you're a good developer by rebuilding everything yourself.&lt;/p&gt;
&lt;p&gt;Sometimes the better engineering decision is knowing what &lt;strong&gt;not&lt;/strong&gt; to build.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-nine-nodes-to-a-growing-product&quot;&gt;From Nine Nodes to a Growing Product&lt;/h3&gt;
&lt;p&gt;Image Pipeline has grown significantly since its initial launch.&lt;/p&gt;
&lt;p&gt;Maxim's profile notes that he shipped &lt;strong&gt;14 node types in six weeks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The product has expanded with functionality including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blur and sharpen&lt;/li&gt;
&lt;li&gt;Denoise&lt;/li&gt;
&lt;li&gt;Watermarking&lt;/li&gt;
&lt;li&gt;Rotation&lt;/li&gt;
&lt;li&gt;Color temperature&lt;/li&gt;
&lt;li&gt;HSL adjustments&lt;/li&gt;
&lt;li&gt;Emotion filtering&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The pattern behind many of these features remains simple.&lt;/p&gt;
&lt;p&gt;Someone asks for something.&lt;/p&gt;
&lt;p&gt;Maxim considers whether the request makes sense.&lt;/p&gt;
&lt;p&gt;Then he builds it.&lt;/p&gt;
&lt;p&gt;The product is evolving through actual usage rather than through a huge feature roadmap designed in isolation.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;privacy-isn-t-just-a-checkbox&quot;&gt;Privacy Isn't Just a Checkbox&lt;/h3&gt;
&lt;p&gt;Maxim sees privacy as more than a feature of Image Pipeline.&lt;/p&gt;
&lt;p&gt;He believes the broader web is moving toward more client-side processing because users are becoming increasingly uncomfortable with uploading their data everywhere.&lt;/p&gt;
&lt;p&gt;Every service wants an account.&lt;/p&gt;
&lt;p&gt;Every signup form wants an email address.&lt;/p&gt;
&lt;p&gt;Every cloud-based tool requires some level of trust.&lt;/p&gt;
&lt;p&gt;Image Pipeline takes a different approach.&lt;/p&gt;
&lt;p&gt;If the processing can happen locally, why send the user's files somewhere else?&lt;/p&gt;
&lt;p&gt;For Maxim, privacy isn't a promise added after the architecture.&lt;/p&gt;
&lt;p&gt;It's part of the architecture itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-as-a-solo-founder&quot;&gt;Building as a Solo Founder&lt;/h3&gt;
&lt;p&gt;Maxim's development schedule doesn't look like a traditional software job.&lt;/p&gt;
&lt;p&gt;He describes it as switching.&lt;/p&gt;
&lt;p&gt;Mornings are for illustration.&lt;/p&gt;
&lt;p&gt;Days are for code.&lt;/p&gt;
&lt;p&gt;Evenings are often for testing.&lt;/p&gt;
&lt;p&gt;Image Pipeline was built in the gaps between paid illustration projects.&lt;/p&gt;
&lt;p&gt;A client finishes early.&lt;/p&gt;
&lt;p&gt;A day becomes available.&lt;/p&gt;
&lt;p&gt;Instead of waiting for the perfect schedule, Maxim uses the time to build.&lt;/p&gt;
&lt;p&gt;The hardest part isn't necessarily finding the hours.&lt;/p&gt;
&lt;p&gt;It's switching between two very different mental modes.&lt;/p&gt;
&lt;p&gt;Illustration is about emotion, composition, color, and visual judgment.&lt;/p&gt;
&lt;p&gt;Programming is about logic, behavior, and systems.&lt;/p&gt;
&lt;p&gt;Moving between the two takes time.&lt;/p&gt;
&lt;p&gt;Sometimes that transition requires a coffee.&lt;/p&gt;
&lt;p&gt;Sometimes a walk.&lt;/p&gt;
&lt;p&gt;Then it's back to the other world.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-design-influenced-his-code&quot;&gt;How Design Influenced His Code&lt;/h3&gt;
&lt;p&gt;Maxim's background in illustration naturally influences how he builds software.&lt;/p&gt;
&lt;p&gt;After spending years thinking about composition, color, typography, and visual communication, he can't simply ignore the interface.&lt;/p&gt;
&lt;p&gt;The nodes need to look good.&lt;/p&gt;
&lt;p&gt;Typography needs to be readable.&lt;/p&gt;
&lt;p&gt;The preview needs to communicate trust.&lt;/p&gt;
&lt;p&gt;Design isn't something that gets added at the end.&lt;/p&gt;
&lt;p&gt;It is part of the product.&lt;/p&gt;
&lt;p&gt;But the influence works in the opposite direction too.&lt;/p&gt;
&lt;p&gt;Programming changed the way Maxim thinks about design.&lt;/p&gt;
&lt;p&gt;Once you understand how software works, you start seeing pipelines everywhere.&lt;/p&gt;
&lt;p&gt;Illustration itself is a pipeline.&lt;/p&gt;
&lt;p&gt;Sketch.&lt;/p&gt;
&lt;p&gt;Line.&lt;/p&gt;
&lt;p&gt;Color.&lt;/p&gt;
&lt;p&gt;Light.&lt;/p&gt;
&lt;p&gt;Detail.&lt;/p&gt;
&lt;p&gt;Each stage takes an input and produces an output.&lt;/p&gt;
&lt;p&gt;Building software around workflows made Maxim more conscious of his own creative process as well.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-he-s-building-next&quot;&gt;What He's Building Next&lt;/h3&gt;
&lt;p&gt;Image Pipeline continues to evolve.&lt;/p&gt;
&lt;p&gt;The emotion filter is planned for another version, this time driven by real data rather than matrices manually tuned until they looked right.&lt;/p&gt;
&lt;p&gt;Maxim is also exploring &lt;strong&gt;Web Workers for client-side heavy lifting&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Outside the core product, he's thinking about another problem from his own workflow.&lt;/p&gt;
&lt;p&gt;Processing images is only one part of preparing a portfolio.&lt;/p&gt;
&lt;p&gt;Organizing, tagging, and exporting those images for different platforms is another task that still takes manual work.&lt;/p&gt;
&lt;p&gt;That has led him toward the idea of a portfolio preparation tool.&lt;/p&gt;
&lt;p&gt;Typography is another area he is interested in.&lt;/p&gt;
&lt;p&gt;After fighting with fonts every day, he suspects other designers have similar frustrations.&lt;/p&gt;
&lt;p&gt;The pattern remains the same.&lt;/p&gt;
&lt;p&gt;Find a problem.&lt;/p&gt;
&lt;p&gt;Understand it.&lt;/p&gt;
&lt;p&gt;Build something.&lt;/p&gt;
&lt;p&gt;Use it yourself.&lt;/p&gt;
&lt;p&gt;Then see whether the problem exists for other people too.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-from-0-to-revenue&quot;&gt;Building From 0 to Revenue&lt;/h3&gt;
&lt;p&gt;Maxim's profile describes his current focus as growing Image Pipeline from &lt;strong&gt;0 to revenue&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The product has already passed several milestones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Launched on Product Hunt&lt;/li&gt;
&lt;li&gt;Received a 5★ review on AlternativeTo&lt;/li&gt;
&lt;li&gt;Listed on Launch Llama&lt;/li&gt;
&lt;li&gt;Shipped 14 node types in six weeks&lt;/li&gt;
&lt;li&gt;Reached 46 passing tests&lt;/li&gt;
&lt;li&gt;Maintained zero backend image processing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But the product is still evolving.&lt;/p&gt;
&lt;p&gt;That's important because Maxim isn't presenting the journey as finished.&lt;/p&gt;
&lt;p&gt;He's still experimenting.&lt;/p&gt;
&lt;p&gt;Still responding to users.&lt;/p&gt;
&lt;p&gt;Still adding features.&lt;/p&gt;
&lt;p&gt;Still questioning his technical decisions.&lt;/p&gt;
&lt;p&gt;And still building for himself.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-coding-changed-about-his-career&quot;&gt;What Coding Changed About His Career&lt;/h3&gt;
&lt;p&gt;Maxim's story doesn't fit the traditional idea of a developer journey.&lt;/p&gt;
&lt;p&gt;He has a formal engineering education.&lt;/p&gt;
&lt;p&gt;He built a career in illustration.&lt;/p&gt;
&lt;p&gt;Then he returned to software through a problem he personally experienced.&lt;/p&gt;
&lt;p&gt;Today, he sits between several worlds:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Design.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Illustration.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Programming.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Product development.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Indie entrepreneurship.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That combination is what makes his journey particularly interesting.&lt;/p&gt;
&lt;p&gt;His development experience didn't replace his creative background.&lt;/p&gt;
&lt;p&gt;It extended it.&lt;/p&gt;
&lt;p&gt;His design experience didn't disappear when he started coding.&lt;/p&gt;
&lt;p&gt;It became part of how he builds software.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-lesson-build-from-your-own-pain&quot;&gt;The Lesson: Build From Your Own Pain&lt;/h3&gt;
&lt;p&gt;There is a simple principle running through Maxim's entire journey.&lt;/p&gt;
&lt;p&gt;The best product idea may already be sitting inside your own frustration.&lt;/p&gt;
&lt;p&gt;For Maxim, it was processing hundreds of images.&lt;/p&gt;
&lt;p&gt;For someone else, it might be a workflow at work, a repetitive task, a missing tool, or a problem nobody has bothered to solve properly.&lt;/p&gt;
&lt;p&gt;You don't always need to start with a startup idea.&lt;/p&gt;
&lt;p&gt;Sometimes you just need to notice the thing you keep doing manually.&lt;/p&gt;
&lt;p&gt;Then ask:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why am I still doing this?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That question took Maxim from Photoshop and Illustrator to JavaScript, React, Canvas, and eventually a product used by designers beyond his own workflow.&lt;/p&gt;
&lt;p&gt;His own profile sums up the philosophy well:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Ship when it's embarrassing, not when it's perfect.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But there's an important second half to that idea:&lt;/p&gt;
&lt;p&gt;Fix the bugs users actually complain about.&lt;/p&gt;
&lt;p&gt;That's perhaps the most practical lesson from Maxim's journey.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build early. Listen carefully. Keep improving.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-maxim-mitenkov&quot;&gt;About Maxim Mitenkov&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Maxim+Mitenkov&quot;&gt;Maxim Mitenkov&lt;/a&gt; is a &lt;strong&gt;book-cover illustrator, engineer, and indie developer&lt;/strong&gt; from Belarus.&lt;/p&gt;
&lt;p&gt;He studied Computer Science and Radioelectronics at &lt;strong&gt;Belarusian State University of Informatics and Radioelectronics (BSUIR)&lt;/strong&gt; from 1993 to 1998.&lt;/p&gt;
&lt;p&gt;Today, Maxim is the &lt;strong&gt;solo founder of Image Pipeline&lt;/strong&gt;, a browser-based batch image processor designed around privacy and client-side processing.&lt;/p&gt;
&lt;p&gt;His technology stack includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;HTML5 Canvas&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Zustand&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He is currently exploring Web Workers for client-side processing, emotion-driven image filters, and growing Image Pipeline from 0 to revenue.&lt;/p&gt;
&lt;p&gt;He has launched Image Pipeline on Product Hunt, earned a 5★ AlternativeTo review, shipped 14 node types in six weeks, and built the product with zero backend image processing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;View Maxim's full CoderLegion profile:&lt;/strong&gt;&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Maxim+Mitenkov&quot;&gt;https://coderlegion.com/user/Maxim Mitenkov&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-this-developer-story-4&quot;&gt;About This Developer Story&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Maxim Mitenkov&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interview conducted and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team, CoderLegion&lt;/p&gt;
&lt;p&gt;This Developer Story is based on Maxim Mitenkov's interview responses and his experience building software alongside his professional career as an illustrator.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26821/from-book-cover-illustrator-indie-developer-maxim-mitenkovs-journey-building-for-his-own</guid>
<pubDate>Fri, 11 Sep 2026 09:22:00 +0000</pubDate>
</item>
<item>
<title>Every Job Left Me Building the Same Thing on the Side — Jeel Vankhede’s Developer Journey</title>
<link>https://coderlegion.com/26584/every-job-left-me-building-the-same-thing-on-the-side-jeel-vankhedes-developer-journey</link>
<description>&lt;h2 id=&quot;every-job-left-me-building-the-same-thing-on-the-side-jeel-vankhede-s-developer-journey&quot;&gt;Every Job Left Me Building the Same Thing on the Side — Jeel Vankhede’s Developer Journey&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;A CoderLegion Developer Story featuring &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Jeel+Vankhede&quot;&gt;Jeel Vankhede&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conducted &amp;amp; edited by Mehadi Hasan, Community &amp;amp; Editorial Team at CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Jeel+Vankhede&quot;&gt;Jeel Vankhede&lt;/a&gt; has spent the last decade working across Android products, an offline-first compliance platform, a DeFi lending app, and calendar sync infrastructure.&lt;/p&gt;
&lt;p&gt;But across all of those projects, one habit kept following him.&lt;/p&gt;
&lt;p&gt;You finish a project, start the next one, and reach for a base class you wrote on the last one. Then you write it again from memory, slightly differently, because copying it over felt lazier than retyping it.&lt;/p&gt;
&lt;p&gt;I did that for about three years before I stopped and put the thing in a repository.&lt;/p&gt;
&lt;p&gt;Ten years later I have worked across Android products, an offline-first compliance platform, a DeFi lending app, and calendar sync infrastructure, and the only habit that survived all four is that one.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Whatever I learn, I eventually try to turn into something another person can run without me in the room.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It took an AI agent to explain to me why I had been doing it.&lt;/p&gt;
&lt;h3 id=&quot;the-first-thing-i-extracted-was-an-architecture&quot;&gt;The First Thing I Extracted Was an Architecture&lt;/h3&gt;
&lt;p&gt;My first years were Android.&lt;/p&gt;
&lt;p&gt;Test preparation apps, a volunteering platform, life-goal tracking, an audio processing product built on the Superpowered SDK, and offline support wherever the network could not be trusted.&lt;/p&gt;
&lt;p&gt;Java first, then Kotlin, WorkManager, and Espresso.&lt;/p&gt;
&lt;p&gt;By the third project I noticed I was setting up the same skeleton every time.&lt;/p&gt;
&lt;p&gt;Same MVVM structure.&lt;/p&gt;
&lt;p&gt;Same data binding wiring.&lt;/p&gt;
&lt;p&gt;Same opinions about where things go.&lt;/p&gt;
&lt;p&gt;So in October 2019 I pushed it as a library called &lt;strong&gt;Core&lt;/strong&gt;, which existed for exactly one reason:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I did not want to explain that structure to myself or anyone else again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The next year I did it again with a smaller irritation.&lt;/p&gt;
&lt;p&gt;Every Android project needed generated dimension values for a spread of screen sizes, and every project generated them by hand.&lt;/p&gt;
&lt;p&gt;That became &lt;strong&gt;PixelPerfect&lt;/strong&gt;, a Gradle plugin, in June 2020.&lt;/p&gt;
&lt;p&gt;The pattern was the same every time.&lt;/p&gt;
&lt;p&gt;Take the thing living in my head, put it somewhere it can be run or read without me.&lt;/p&gt;
&lt;h3 id=&quot;stack-overflow-was-the-same-instinct-pointed-at-questions&quot;&gt;Stack Overflow Was the Same Instinct Pointed at Questions&lt;/h3&gt;
&lt;p&gt;Stack Overflow was the same instinct pointed at questions instead of code.&lt;/p&gt;
&lt;p&gt;A senior told me to go answer things, so I did, and I got fast at reading stack traces because it was rewarding.&lt;/p&gt;
&lt;p&gt;I eventually wrote 288 answers, and my profile says the reach is past a million people.&lt;/p&gt;
&lt;p&gt;But I did not write those answers to help a million people.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I wrote them because answering once in public beat answering the same thing privately forever.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Same move every time.&lt;/p&gt;
&lt;p&gt;Take the thing living in my head, put it somewhere it can be run or read without me.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Period &lt;/th&gt;&lt;th&gt;The work &lt;/th&gt;&lt;th&gt;What I pulled out of it&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;2016 to 2019 &lt;/td&gt;&lt;td&gt;Android products: test prep, volunteering, life goals, audio processing &lt;/td&gt;&lt;td&gt;288 Stack Overflow answers&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2019 &lt;/td&gt;&lt;td&gt;Third project on the same architecture &lt;/td&gt;&lt;td&gt;Core, an MVVM starter library&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2020 &lt;/td&gt;&lt;td&gt;Screen dimension drudgery on every project &lt;/td&gt;&lt;td&gt;PixelPerfect, a Gradle plugin&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2019 to 2023 &lt;/td&gt;&lt;td&gt;Offline-first compliance inspection platform, ten engineers, four stacks &lt;/td&gt;&lt;td&gt;The knowledge stayed with the team&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2023 to 2025 &lt;/td&gt;&lt;td&gt;DeFi lending, AI lifestyle products, calendar sync, wallet flows &lt;/td&gt;&lt;td&gt;The knowledge stayed with the team&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2026 &lt;/td&gt;&lt;td&gt;Same work, with agents doing part of it &lt;/td&gt;&lt;td&gt;FARE, BARE, and agentsmyth&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The middle two rows are where this article actually starts.&lt;/p&gt;
&lt;h3 id=&quot;then-what-i-knew-stopped-being-shaped-like-a-library&quot;&gt;Then What I Knew Stopped Being Shaped Like a Library&lt;/h3&gt;
&lt;p&gt;The compliance years were the biggest jump I have had.&lt;/p&gt;
&lt;p&gt;I joined as an Android developer and left leading a team of ten across Angular, Kotlin, Node, admin tooling, and backend APIs, on a platform for inspectors who worked in places where the network was a suggestion.&lt;/p&gt;
&lt;p&gt;Offline sync had to survive a device being out of contact for a day.&lt;/p&gt;
&lt;p&gt;There was canvas annotation, PDF generation, route optimisation, and a spin-off module estimated at nine months that we delivered in six.&lt;/p&gt;
&lt;p&gt;None of it produced a library, and that was not laziness.&lt;/p&gt;
&lt;p&gt;The valuable thing I was accumulating had changed shape.&lt;/p&gt;
&lt;p&gt;It was no longer:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Here is how you wire MVVM.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It was:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;This field behaves like that because of a rule that exists outside this repository, and here is the argument we had about it eighteen months ago.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You cannot npm publish that.&lt;/p&gt;
&lt;p&gt;So it lived where that kind of knowledge always lives, which is in a few people, and it moved the way it always moves, which is by someone asking and someone answering.&lt;/p&gt;
&lt;p&gt;I was very good at the answering part.&lt;/p&gt;
&lt;p&gt;I knew the history, I could give the short version in ninety seconds, and the person walked away unblocked.&lt;/p&gt;
&lt;p&gt;For a stretch of years that was most of the value I added.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;It did not occur to me once that this was a worse version of what I had done with Core.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;slow-forgetting-does-not-look-like-a-defect&quot;&gt;Slow Forgetting Does Not Look Like a Defect&lt;/h3&gt;
&lt;p&gt;Nobody flagged it, including me.&lt;/p&gt;
&lt;p&gt;When people forget, they forget slowly.&lt;/p&gt;
&lt;p&gt;A decision holds for months.&lt;/p&gt;
&lt;p&gt;It frays at the edges.&lt;/p&gt;
&lt;p&gt;Someone half remembers it.&lt;/p&gt;
&lt;p&gt;A new joiner never heard it.&lt;/p&gt;
&lt;p&gt;And by the time it is gone enough has changed that re-explaining feels reasonable rather than wasteful.&lt;/p&gt;
&lt;p&gt;So the cost never arrives as a cost.&lt;/p&gt;
&lt;p&gt;It arrives as a slightly slow quarter, and you file it under onboarding.&lt;/p&gt;
&lt;p&gt;Then I started handing real work to something that forgets overnight.&lt;/p&gt;
&lt;h3 id=&quot;the-fix-i-made-on-wednesday-was-gone-on-thursday&quot;&gt;The Fix I Made on Wednesday Was Gone on Thursday&lt;/h3&gt;
&lt;p&gt;Global event communication across a React Native app, rewritten in one pass.&lt;/p&gt;
&lt;p&gt;I wrote the plan, the agent agreed with it, I approved it.&lt;/p&gt;
&lt;p&gt;What came back matched the plan and broke the app.&lt;/p&gt;
&lt;p&gt;The clearest problem was event wiring duplicated across several places, and I did not find that by reading the diff.&lt;/p&gt;
&lt;p&gt;I found it by dropping console logs into the flow and watching one event arrive three times.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[evt] session:refresh  -&amp;gt; handler mounted at AppShell
[evt] session:refresh  -&amp;gt; handler mounted at NotificationProvider
[evt] session:refresh  -&amp;gt; handler mounted at WalletStatusBar
[evt] session:refresh  fired 1/3
[evt] session:refresh  fired 2/3
[evt] session:refresh  fired 3/3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I said what was wrong.&lt;/p&gt;
&lt;p&gt;It agreed, fixed it properly, and the rest of the afternoon was good work.&lt;/p&gt;
&lt;p&gt;Next morning, new session, same repository, everything identical except the conversation from the day before.&lt;/p&gt;
&lt;p&gt;It went straight back to the behaviour I had corrected.&lt;/p&gt;
&lt;p&gt;Not a weaker version of the fix.&lt;/p&gt;
&lt;p&gt;No version of it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Nothing said in the chat survives the chat.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That sentence was about the agent for about a minute.&lt;/p&gt;
&lt;p&gt;Then it was about the standup where we settled a retry policy, and every ninety-second answer I had ever been quietly proud of giving fast.&lt;/p&gt;
&lt;h3 id=&quot;so-i-stopped-writing-about-it-and-ran-it-instead&quot;&gt;So I Stopped Writing About It and Ran It Instead&lt;/h3&gt;
&lt;p&gt;There is an easy article in a Thursday like that.&lt;/p&gt;
&lt;p&gt;Agents keep no memory between sessions, structure your work accordingly, about a thousand words, done before lunch.&lt;/p&gt;
&lt;p&gt;I have read that article more than once.&lt;/p&gt;
&lt;p&gt;Some of the people who wrote it have lost a day the way I lost mine, and some have not, and there is no way to tell which from the outside.&lt;/p&gt;
&lt;p&gt;What I did instead took months.&lt;/p&gt;
&lt;p&gt;I picked one real task with real risk in it: a notification scheduler carrying a payload contract to an external provider that nobody had verified.&lt;/p&gt;
&lt;p&gt;Seven phases, one at a time, each one published as it happened rather than after I knew how it ended.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think → Plan → Build → Review → Test → Ship → Reflect&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nine parts.&lt;/p&gt;
&lt;p&gt;Writing it live meant every phase had to produce something I could show.&lt;/p&gt;
&lt;p&gt;This is what the review phase handed back:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Requirement &lt;/th&gt;&lt;th&gt;Verdict &lt;/th&gt;&lt;th&gt;Evidence&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;External provider must be notified &lt;/td&gt;&lt;td&gt;Partial &lt;/td&gt;&lt;td&gt;Notified through the dispatch queue. Call order and timing changed, and the requirement described neither.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Compatibility shim from Plan &lt;/td&gt;&lt;td&gt;Covered &lt;/td&gt;&lt;td&gt;Mapped to the requirement it exists to satisfy. No gap between the plan and the diff.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Queue lifetime across sessions &lt;/td&gt;&lt;td&gt;Missing &lt;/td&gt;&lt;td&gt;Not in the brief. Flush condition never written.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The bottom row is a gap in my own brief, not anything the agent did.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I would rather hand someone a trail than a position.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A position turns into a debate with whoever has the better vocabulary that week.&lt;/p&gt;
&lt;p&gt;A trail sits there with dates on it, and anyone who wants to disagree has to disagree with something specific.&lt;/p&gt;
&lt;h3 id=&quot;the-problem-was-storage-not-phrasing&quot;&gt;The Problem Was Storage, Not Phrasing&lt;/h3&gt;
&lt;p&gt;My first response to Thursday was to prompt harder.&lt;/p&gt;
&lt;p&gt;Say it earlier.&lt;/p&gt;
&lt;p&gt;Put the constraint at the top.&lt;/p&gt;
&lt;p&gt;Add an example so it cannot be misread.&lt;/p&gt;
&lt;p&gt;That works, which is the trap.&lt;/p&gt;
&lt;p&gt;Every sharpened prompt produces a better result, and a better result is exactly the thing that stops you asking why you are typing the prompt again at all.&lt;/p&gt;
&lt;p&gt;Nine parts of watching one phase read what the last phase wrote made the real shape of it obvious.&lt;/p&gt;
&lt;p&gt;Those phases did not hold together because the instructions were well worded.&lt;/p&gt;
&lt;p&gt;They held together because every handoff was a file.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A message is not storage. It is a place things pass through.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Core existed for that exact reason, seven years earlier, and I did not hear the rhyme until embarrassingly late.&lt;/p&gt;
&lt;p&gt;So the rules moved into files the next session reads before it writes anything.&lt;/p&gt;
&lt;p&gt;Nothing clever about that part.&lt;/p&gt;
&lt;p&gt;Every agent tool converges there.&lt;/p&gt;
&lt;p&gt;The part nobody warns you about is what happens when you change tools.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;repo/
  .cursor/rules/                  # Cursor
  CLAUDE.md                       # Claude Code
  .windsurf/rules/                # Windsurf
  .github/copilot-instructions.md # Copilot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Four of the five environments I work in, and a fifth waiting the next time I try something new.&lt;/p&gt;
&lt;p&gt;The recipe was portable.&lt;/p&gt;
&lt;p&gt;The delivery was not.&lt;/p&gt;
&lt;h3 id=&quot;fare-and-bare-making-the-habit-portable&quot;&gt;FARE and BARE: Making the Habit Portable&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.npmjs.com/package/frontend-ai-starter-recipes&quot;&gt;FARE&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.npmjs.com/package/backend-ai-starter-recipes&quot;&gt;BARE&lt;/a&gt; are one command that generates stack-specific rules into whichever layout a repository actually uses.&lt;/p&gt;
&lt;p&gt;The frontend package has 71 files.&lt;/p&gt;
&lt;p&gt;The backend package has 59.&lt;/p&gt;
&lt;p&gt;That number is the reason the last row of the table is not empty.&lt;/p&gt;
&lt;p&gt;I would never have hand-written 130 files of rules and templates across five tool formats in my own evenings.&lt;/p&gt;
&lt;p&gt;Not in 2020.&lt;/p&gt;
&lt;p&gt;Not now.&lt;/p&gt;
&lt;p&gt;What changed is that producing and maintaining that much material stopped costing a month.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;AI did not give me the habit. It made the habit affordable at a size that matters.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;rules-govern-how-the-code-gets-written-not-when-the-work-stops&quot;&gt;Rules Govern How the Code Gets Written, Not When the Work Stops&lt;/h3&gt;
&lt;p&gt;Rules fixed the style layer and left the sequencing layer wide open.&lt;/p&gt;
&lt;p&gt;The agent wrote code the way the repository wanted code written, and still skipped review, still handed back work nobody had verified, still moved on, because a rules file has no opinion about where a phase ends.&lt;/p&gt;
&lt;p&gt;The nine parts had already answered that.&lt;/p&gt;
&lt;p&gt;Seven phases, each refusing to start until the previous one left an artifact behind.&lt;/p&gt;
&lt;p&gt;What I had was that answer scattered across nine articles and a set of gists, which is fine to read and awkward to run.&lt;/p&gt;
&lt;p&gt;So I built it into one command.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;npx agentsmyth init&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://jeelvankhede.github.io/agentsmyth/&quot;&gt;agentsmyth&lt;/a&gt; installs the seven gated phases into a repository, with the classification rule that decides when the full weight applies, the requirement manifest that keeps what you said separate from what got inferred, and the exit gate that no artifact passes on its own say-so.&lt;/p&gt;
&lt;p&gt;Every phase writes to disk.&lt;/p&gt;
&lt;p&gt;The next phase reads the file, not the conversation.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Forge, don't vibe.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It has a handful of stars and I know exactly how small that is.&lt;/p&gt;
&lt;p&gt;I also know it is the first thing I have built that carries all ten years through:&lt;/p&gt;
&lt;p&gt;The architecture I got tired of retyping.&lt;/p&gt;
&lt;p&gt;The answers I got tired of giving privately.&lt;/p&gt;
&lt;p&gt;And now a workflow I got tired of re-explaining to a machine that starts from zero every morning.&lt;/p&gt;
&lt;p&gt;Whether anyone else runs it is not up to me.&lt;/p&gt;
&lt;p&gt;Building it was, and it is the work I would point at first.&lt;/p&gt;
&lt;p&gt;So point an agent at it.&lt;/p&gt;
&lt;p&gt;Install it into a repository you care about, aim it at a change with real risk in it, and see what the artifacts catch before you do.&lt;/p&gt;
&lt;p&gt;That is the only review I am interested in.&lt;/p&gt;
&lt;h3 id=&quot;what-it-changed-about-working-with-people&quot;&gt;What It Changed About Working With People&lt;/h3&gt;
&lt;p&gt;I expected this to stay in the agent half of my job.&lt;/p&gt;
&lt;p&gt;It did not.&lt;/p&gt;
&lt;p&gt;If I explain a constraint in a review thread now, the explanation goes into the pull request description or the module README before I resolve the thread, because a resolved thread is a chat window with better branding.&lt;/p&gt;
&lt;p&gt;When someone asks why something behaves the way it does, I still answer in ninety seconds.&lt;/p&gt;
&lt;p&gt;Then I write the answer where the next person will find it without needing to know I exist.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;An answer that only lives in a conversation is an answer I have agreed to give again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I want to be honest about the limits, because this is not solved.&lt;/p&gt;
&lt;p&gt;Written artifacts rot, and a stale document does more damage than a missing one because people trust it.&lt;/p&gt;
&lt;p&gt;People are not agents either.&lt;/p&gt;
&lt;p&gt;They carry judgment and context and a sense of when a rule has stopped applying, and no file has any of that.&lt;/p&gt;
&lt;p&gt;I am not replacing a team with a folder.&lt;/p&gt;
&lt;p&gt;The narrow claim is the one I will defend:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Knowledge that exists only in conversation was never durable, and for a few good years I mistook my own availability for a system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;ten-years-four-domains-one-habit&quot;&gt;Ten Years, Four Domains, One Habit&lt;/h3&gt;
&lt;p&gt;Ten years, four domains, and the honest summary is short.&lt;/p&gt;
&lt;p&gt;The habit never changed.&lt;/p&gt;
&lt;p&gt;I have always wanted to hand someone the thing rather than the explanation of the thing.&lt;/p&gt;
&lt;p&gt;What changed is that I finally understand why it matters, and that the tools got good enough for me to do it at work rather than only on weekends.&lt;/p&gt;
&lt;p&gt;If you are the person on your team who always has the answer, that is a good thing to be.&lt;/p&gt;
&lt;p&gt;It is worth asking how much of what you know is currently stored as your willingness to explain it again.&lt;/p&gt;
&lt;h3 id=&quot;ai-has-made-experience-more-important-not-less&quot;&gt;AI Has Made Experience More Important, Not Less&lt;/h3&gt;
&lt;p&gt;One more thing.&lt;/p&gt;
&lt;p&gt;Agentic and AI-assisted programming has made experience count for more, not less.&lt;/p&gt;
&lt;p&gt;I did not expect that.&lt;/p&gt;
&lt;p&gt;I have watched juniors and freshers struggle in this era in a way I do not remember from my own first years, and the tools that make me faster do not seem to do the same for someone who has not yet built the judgment to check what comes back.&lt;/p&gt;
&lt;p&gt;The ability to generate code is becoming increasingly accessible.&lt;/p&gt;
&lt;p&gt;The harder skill is knowing whether what was generated should exist at all.&lt;/p&gt;
&lt;p&gt;That means developers still need fundamentals.&lt;/p&gt;
&lt;p&gt;They need judgment.&lt;/p&gt;
&lt;p&gt;They need context.&lt;/p&gt;
&lt;p&gt;And they need to understand the systems they are asking AI to change.&lt;/p&gt;
&lt;h3 id=&quot;what-comes-next-1&quot;&gt;What Comes Next&lt;/h3&gt;
&lt;p&gt;I am looking into what onboarding into programming should look like now.&lt;/p&gt;
&lt;p&gt;I do not have an answer worth publishing yet, and putting out half of one has never been my style.&lt;/p&gt;
&lt;p&gt;When it is finished I will write it the way I wrote the nine parts, in order, including the parts that did not work.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-jeel-vankhede&quot;&gt;About Jeel Vankhede&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Jeel+Vankhede&quot;&gt;Jeel Vankhede&lt;/a&gt; is a software engineer with 10+ years of experience working across Android development, full-stack systems, offline-first platforms, DeFi, AI products, and developer tooling.&lt;/p&gt;
&lt;p&gt;A recurring theme throughout his work is turning repeated knowledge into something reusable — whether that means a library, a plugin, a public answer, or an engineering workflow.&lt;/p&gt;
&lt;p&gt;His recent work explores AI-assisted development, agent workflows, durable engineering knowledge, and ways to make software development more systematic and reliable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;View Jeel Vankhede’s &lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Jeel+Vankhede&quot;&gt;CoderLegion Profile&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-this-developer-story-5&quot;&gt;About This Developer Story&lt;/h3&gt;
&lt;p&gt;This Developer Story is based on &lt;strong&gt;Jeel Vankhede’s original submission and experiences&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Jeel Vankhede&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Conducted &amp;amp; edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team, CoderLegion&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26584/every-job-left-me-building-the-same-thing-on-the-side-jeel-vankhedes-developer-journey</guid>
<pubDate>Wed, 09 Sep 2026 09:41:45 +0000</pubDate>
</item>
<item>
<title>From E-Commerce to Agentic AI: Paul Chen’s 30-Year Developer's Journey</title>
<link>https://coderlegion.com/26582/from-e-commerce-to-agentic-ai-paul-chens-30-year-developers-journey</link>
<description>&lt;h2 id=&quot;from-e-commerce-to-agentic-ai-a-30-year-developer-s-journey&quot;&gt;From E-Commerce to Agentic AI: A 30-Year Developer’s Journey&lt;/h2&gt;
&lt;p&gt;I wrote my first real program in the early 1990s, sitting in a computer lab at university while working toward a Computer Science degree.&lt;/p&gt;
&lt;p&gt;Back then, programming wasn't the career everyone was racing toward.&lt;/p&gt;
&lt;p&gt;There was no app store, no cloud, and barely a World Wide Web.&lt;/p&gt;
&lt;p&gt;You wrote code because you were genuinely fascinated by the idea that a machine could be made to think, even if only a little bit.&lt;/p&gt;
&lt;p&gt;More than 30 years later, I'm still chasing that idea.&lt;/p&gt;
&lt;p&gt;The technologies have changed dramatically — from e-commerce and distributed systems to cloud computing, serverless platforms, and now agentic AI.&lt;/p&gt;
&lt;p&gt;But the fundamental question hasn't changed:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How can we make software do more with less human direction?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is the story of that journey.&lt;/p&gt;
&lt;h3 id=&quot;how-it-all-started&quot;&gt;How It All Started&lt;/h3&gt;
&lt;p&gt;That fascination with programming led me to IBM straight out of university in 1997.&lt;/p&gt;
&lt;p&gt;My first project was integrating tooling for WebSphere Commerce Server — e-commerce in its most primitive form.&lt;/p&gt;
&lt;p&gt;This was before payment gateways were commodities and before anyone had figured out how to make online shopping feel safe.&lt;/p&gt;
&lt;p&gt;We were building the pipes.&lt;/p&gt;
&lt;p&gt;And the pipes were leaking.&lt;/p&gt;
&lt;p&gt;Every day was a new problem nobody had solved before, and I loved it.&lt;/p&gt;
&lt;p&gt;I joined the team right in the middle of a release crunch.&lt;/p&gt;
&lt;p&gt;The very first version of the product was days away from shipping.&lt;/p&gt;
&lt;p&gt;I was handed the storefront code and told to build the payment and shipping functions using JSP.&lt;/p&gt;
&lt;p&gt;People were willing to help, but the release schedule had everyone stretched thin. There's only so much time senior engineers can spend hand-holding the new person when a deadline is breathing down everyone's neck.&lt;/p&gt;
&lt;p&gt;You figure things out.&lt;/p&gt;
&lt;p&gt;And you figure them out fast.&lt;/p&gt;
&lt;p&gt;And figure things out I did — sometimes the hard way.&lt;/p&gt;
&lt;p&gt;Somewhere in the middle of building the JSP wizard for shipping destinations, I quietly excluded Puerto Rico from the United States address list.&lt;/p&gt;
&lt;p&gt;It wasn't a dramatic mistake.&lt;/p&gt;
&lt;p&gt;It was just a missing entry in a form.&lt;/p&gt;
&lt;p&gt;But a tester caught it.&lt;/p&gt;
&lt;p&gt;And it taught me something I haven't forgotten:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The edge cases you miss are almost always the ones you didn't know to look for.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After that, I helped build a common, reusable library for payment and shipping address handling, so no one else on the team would have to rediscover the same geography lesson.&lt;/p&gt;
&lt;p&gt;We shipped on time.&lt;/p&gt;
&lt;p&gt;After one intense week, the team released the first version of the e-commerce engine.&lt;/p&gt;
&lt;p&gt;I had joined late in the cycle and contributed only a slice of the whole, but I remember the feeling of that release clearly — the specific kind of pride that comes from being part of something that actually ships, even when you're new and still finding your footing.&lt;/p&gt;
&lt;h3 id=&quot;twenty-years-at-ibm-growing-into-the-problem&quot;&gt;Twenty Years at IBM: Growing Into the Problem&lt;/h3&gt;
&lt;p&gt;I stayed at IBM for more than twenty years.&lt;/p&gt;
&lt;p&gt;That might sound like inertia, but it wasn't.&lt;/p&gt;
&lt;p&gt;The problems kept changing faster than I could outrun them.&lt;/p&gt;
&lt;h4 id=&quot;learning-what-distributed-systems-really-feel-like&quot;&gt;Learning What Distributed Systems Really Feel Like&lt;/h4&gt;
&lt;p&gt;The provisioning years, from 2003 to 2011, were where I learned what distributed systems actually feel like at scale.&lt;/p&gt;
&lt;p&gt;I was the Technology Design Lead on IBM Tivoli Provisioning Orchestration, and later the Architect for Tivoli Provisioning Manager.&lt;/p&gt;
&lt;p&gt;Provisioning servers across an enterprise sounds mundane until you've debugged a race condition that only surfaces at three in the morning when five hundred machines try to boot simultaneously.&lt;/p&gt;
&lt;p&gt;Those years taught me to think about systems as living, breathing things.&lt;/p&gt;
&lt;p&gt;Not static components.&lt;/p&gt;
&lt;p&gt;Dynamic interactions.&lt;/p&gt;
&lt;h3 id=&quot;when-cloud-made-problems-invisible&quot;&gt;When Cloud Made Problems Invisible&lt;/h3&gt;
&lt;p&gt;The caching and cloud years, from 2011 to 2017, pushed me into a different dimension entirely.&lt;/p&gt;
&lt;p&gt;I became the Lead Architect for IBM Bluemix Data and Session Cache and eventually an IBM Senior Technical Staff Member (STSM) leading WebSphere eXtremeScale and Distributed Caching as a Service.&lt;/p&gt;
&lt;p&gt;The shift to cloud meant the problems didn't just get harder.&lt;/p&gt;
&lt;p&gt;They got invisible.&lt;/p&gt;
&lt;p&gt;Performance issues weren't in your hands anymore.&lt;/p&gt;
&lt;p&gt;They lived somewhere in a data centre you'd never visit.&lt;/p&gt;
&lt;p&gt;I had to develop a different mental model:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Design for failure, not against it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By this point, I had been recognised as an IBM Master Inventor, a title that came from contributing to more than twenty patents spanning automation, distributed systems, cloud data replication, and platform integration.&lt;/p&gt;
&lt;p&gt;But the patents weren't the point.&lt;/p&gt;
&lt;p&gt;Each one represented a problem that had no concise answer in the literature, where we had to work from first principles.&lt;/p&gt;
&lt;p&gt;That habit of thinking from first principles is probably the most transferable thing I've carried across my entire career.&lt;/p&gt;
&lt;h3 id=&quot;the-challenges-that-shaped-me&quot;&gt;The Challenges That Shaped Me&lt;/h3&gt;
&lt;p&gt;I want to be honest here, because that's the point of this kind of post.&lt;/p&gt;
&lt;p&gt;The hardest technical challenge I faced wasn't necessarily the most complex one.&lt;/p&gt;
&lt;p&gt;It was designing for geo-distributed active-active data replication at Huawei, where two data centres in different regions both accept writes and must eventually converge to a consistent state.&lt;/p&gt;
&lt;p&gt;The theory is elegant.&lt;/p&gt;
&lt;p&gt;The reality is a minefield of clock drift, network partitions, and conflict-resolution edge cases that will humble you.&lt;/p&gt;
&lt;p&gt;We published peer-reviewed research on it, which helped.&lt;/p&gt;
&lt;p&gt;But what really helped was accepting something fundamental:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Distributed systems are fundamentally non-deterministic, and your job as an architect is to make uncertainty manageable, not to eliminate it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;from-technical-contributor-to-technical-leader&quot;&gt;From Technical Contributor to Technical Leader&lt;/h3&gt;
&lt;p&gt;The hardest career challenge was different.&lt;/p&gt;
&lt;p&gt;It was making the jump from deep technical contributor to technical leader and then again from technical leader to entrepreneur.&lt;/p&gt;
&lt;p&gt;Each transition required me to let go of something I was good at.&lt;/p&gt;
&lt;p&gt;When I became a Chief Architect at Huawei leading 20–30 engineers, I had to accept that my leverage was now in the clarity of my technical vision and the health of the team, not in the elegance of my own code.&lt;/p&gt;
&lt;p&gt;When I later co-founded a startup, I had to accept something else:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;There are no playbooks, and the speed of learning matters more than the depth of experience.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;when-the-architecture-was-right-but-the-tools-weren-t-ready&quot;&gt;When the Architecture Was Right but the Tools Weren't Ready&lt;/h3&gt;
&lt;p&gt;One project comes to mind clearly.&lt;/p&gt;
&lt;p&gt;In 2024, I was leading a serverless computing initiative to build lightweight AI agent runtimes using WebAssembly (WASM).&lt;/p&gt;
&lt;p&gt;The idea was that WASM's sandboxed, near-native execution model was a natural fit for running AI agents efficiently at the edge.&lt;/p&gt;
&lt;p&gt;The architecture was sound.&lt;/p&gt;
&lt;p&gt;The problem was that WASM tooling for Python wasn't mature enough at the time.&lt;/p&gt;
&lt;p&gt;You couldn't simply compile Python code into a WASM module and run it.&lt;/p&gt;
&lt;p&gt;Every integration required manual workarounds, bespoke bridging code, and a lot of patience.&lt;/p&gt;
&lt;p&gt;We made it work.&lt;/p&gt;
&lt;p&gt;But it cost significantly more engineering effort than the design had accounted for, and the result was more brittle than I would have liked.&lt;/p&gt;
&lt;p&gt;Looking back now, I can see exactly what would have helped: using AI-assisted code generation to produce a standard, consistent interface layer for each WASM module.&lt;/p&gt;
&lt;p&gt;That would have removed most of the manual friction.&lt;/p&gt;
&lt;p&gt;The tooling wasn't there yet in 2024.&lt;/p&gt;
&lt;p&gt;But the approach was right.&lt;/p&gt;
&lt;p&gt;We were just slightly ahead of the ecosystem.&lt;/p&gt;
&lt;p&gt;The lesson I took from it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Keep exploring new things, and never hang up.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Technologies that feel half-baked in one year become load-bearing infrastructure two years later.&lt;/p&gt;
&lt;p&gt;The teams that struggled through the rough edges are the ones who know how to use it properly when the rest of the industry catches up.&lt;/p&gt;
&lt;h3 id=&quot;what-i-ve-learned-after-30-years&quot;&gt;What I've Learned After 30 Years&lt;/h3&gt;
&lt;p&gt;After 30 years, if I strip away the buzzwords and the titles, here is what I actually know.&lt;/p&gt;
&lt;h4 id=&quot;1-every-technology-wave-has-the-same-shape&quot;&gt;1. Every Technology Wave Has the Same Shape&lt;/h4&gt;
&lt;p&gt;E-commerce in the 90s.&lt;/p&gt;
&lt;p&gt;Dot-com in 2000–2005.&lt;/p&gt;
&lt;p&gt;Cloud in the 2010s.&lt;/p&gt;
&lt;p&gt;Serverless in the 2020s.&lt;/p&gt;
&lt;p&gt;Agentic AI today.&lt;/p&gt;
&lt;p&gt;Each wave starts with practitioners saying:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;This changes everything.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then comes a messy middle where the hard engineering problems reveal themselves.&lt;/p&gt;
&lt;p&gt;And then comes a settling period where the technology becomes infrastructure.&lt;/p&gt;
&lt;p&gt;I've now lived through enough waves that I can feel when we're in the messy middle.&lt;/p&gt;
&lt;p&gt;And that's exactly where the most interesting work happens.&lt;/p&gt;
&lt;h4 id=&quot;2-the-language-is-the-least-important-part&quot;&gt;2. The Language Is the Least Important Part&lt;/h4&gt;
&lt;p&gt;I've shipped production code in C, Java, Python, Rust, and Node.js.&lt;/p&gt;
&lt;p&gt;The language matters.&lt;/p&gt;
&lt;p&gt;Rust taught me to think about memory in a way Java never forced me to, and that changed how I reason about performance.&lt;/p&gt;
&lt;p&gt;But the language is never the point.&lt;/p&gt;
&lt;p&gt;The point is understanding the problem deeply enough to choose the right tool.&lt;/p&gt;
&lt;h4 id=&quot;3-performance-problems-are-architecture-problems-in-disguise&quot;&gt;3. Performance Problems Are Architecture Problems in Disguise&lt;/h4&gt;
&lt;p&gt;Every time I've chased a performance issue far enough down, I've found an architectural decision made too early, under constraints that no longer exist.&lt;/p&gt;
&lt;p&gt;The lesson isn't to avoid early decisions.&lt;/p&gt;
&lt;p&gt;It's to make them visibly, with the assumptions documented, so the next person — including future you — knows what to revisit when the world changes.&lt;/p&gt;
&lt;h4 id=&quot;4-patents-are-a-record-of-unsolved-problems&quot;&gt;4. Patents Are a Record of Unsolved Problems&lt;/h4&gt;
&lt;p&gt;I have 20+ filed or issued patents.&lt;/p&gt;
&lt;p&gt;I'm prouder of the publications.&lt;/p&gt;
&lt;p&gt;A patent means you found an answer nobody had before.&lt;/p&gt;
&lt;p&gt;A peer-reviewed paper means you explained it clearly enough that other people can build on it.&lt;/p&gt;
&lt;p&gt;Both matter.&lt;/p&gt;
&lt;p&gt;But the second one is harder.&lt;/p&gt;
&lt;h4 id=&quot;5-the-best-teams-share-a-mental-model-not-just-a-codebase&quot;&gt;5. The Best Teams Share a Mental Model, Not Just a Codebase&lt;/h4&gt;
&lt;p&gt;At IBM and Huawei, I led large distributed teams, sometimes across time zones and cultures.&lt;/p&gt;
&lt;p&gt;What separated the high-performing teams from the rest wasn't raw talent.&lt;/p&gt;
&lt;p&gt;It was whether everyone in the room could draw the same system diagram from memory.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Technical alignment is a leadership output, not a documentation artifact.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;growth-as-a-developer-the-honest-version&quot;&gt;Growth as a Developer: The Honest Version&lt;/h3&gt;
&lt;p&gt;I went from writing integration tooling for e-commerce in 1997 to architecting an agentic AI platform for the industrial domain in 2026.&lt;/p&gt;
&lt;p&gt;The path looks linear on a résumé.&lt;/p&gt;
&lt;p&gt;It wasn't.&lt;/p&gt;
&lt;p&gt;There were long stretches of being the least experienced person in the room — and shorter, more uncomfortable stretches of being the most experienced person and realising I was wrong about something important.&lt;/p&gt;
&lt;p&gt;The Gartner iPaaS Visionary Quadrant recognition for Huawei's cloud integration platform within four years was a team achievement I'm proud of.&lt;/p&gt;
&lt;p&gt;But I remember more vividly the architectural dead-ends that preceded it, and the whiteboard sessions at night where we talked each other back from decisions that would have been expensive to unwind.&lt;/p&gt;
&lt;p&gt;The real growth came from three habits I'd encourage any developer to build early.&lt;/p&gt;
&lt;h4 id=&quot;capture-your-reasoning-not-just-your-results&quot;&gt;Capture Your Reasoning, Not Just Your Results&lt;/h4&gt;
&lt;p&gt;When you make an architectural decision, write down the why.&lt;/p&gt;
&lt;p&gt;What problem were you solving?&lt;/p&gt;
&lt;p&gt;What did you consider?&lt;/p&gt;
&lt;p&gt;What did you rule out?&lt;/p&gt;
&lt;p&gt;Code tells you what the system does.&lt;/p&gt;
&lt;p&gt;Only your notes tell you why it does it that way.&lt;/p&gt;
&lt;p&gt;I can't count the number of times I returned to a system months later, stared at a design choice that looked strange, and had no record of the constraints that made it sensible at the time.&lt;/p&gt;
&lt;p&gt;That missing context is expensive.&lt;/p&gt;
&lt;p&gt;It means re-doing the analysis, or worse, undoing a decision that was actually correct.&lt;/p&gt;
&lt;p&gt;Over the years, this became one of the most underrated disciplines I've tried to instil in every team I've led.&lt;/p&gt;
&lt;h4 id=&quot;read-outside-your-stack&quot;&gt;Read Outside Your Stack&lt;/h4&gt;
&lt;p&gt;Some of the best ideas I've applied to software engineering came from operations research, organisational theory, and systems biology.&lt;/p&gt;
&lt;p&gt;Distributed systems are complex adaptive systems, and the vocabulary for understanding them has existed in other fields for decades.&lt;/p&gt;
&lt;h3 id=&quot;developers-in-the-ai-era&quot;&gt;Developers in the AI Era&lt;/h3&gt;
&lt;p&gt;In the AI era, coding is no longer the scarcest skill.&lt;/p&gt;
&lt;p&gt;And that changes everything.&lt;/p&gt;
&lt;p&gt;I've watched developers at every stage of their career worry about being replaced by AI.&lt;/p&gt;
&lt;p&gt;I think they're asking the wrong question.&lt;/p&gt;
&lt;p&gt;AI is already a capable coding assistant.&lt;/p&gt;
&lt;p&gt;It will only get better.&lt;/p&gt;
&lt;p&gt;What it cannot do is understand why a business needs a system to work a certain way, see the architectural trade-offs across a five-year roadmap, or translate a domain expert's vague requirements into a design that will still be maintainable when the team changes.&lt;/p&gt;
&lt;p&gt;Those are human skills.&lt;/p&gt;
&lt;p&gt;And they matter more now than they did when writing code was the bottleneck.&lt;/p&gt;
&lt;p&gt;My advice to developers who are early in their careers is simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Invest in your ability to think in systems, understand the business problems behind the technical requirements, and communicate clearly across both worlds.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The developers who thrive in the next decade will be the ones who know how to direct AI effectively, not compete with it.&lt;/p&gt;
&lt;h3 id=&quot;what-i-m-building-now&quot;&gt;What I'm Building Now&lt;/h3&gt;
&lt;p&gt;I'm currently co-founding an AI startup focused on autonomous agentic systems for specific industrial domain sectors.&lt;/p&gt;
&lt;p&gt;We're designing enterprise AI agents that can reason, plan, and act with minimal human intervention.&lt;/p&gt;
&lt;p&gt;It's early.&lt;/p&gt;
&lt;p&gt;It's hard.&lt;/p&gt;
&lt;p&gt;And it's the most interesting technical problem I've worked on.&lt;/p&gt;
&lt;p&gt;The thread from my first line of C code to today's agentic systems is actually straightforward:&lt;/p&gt;
&lt;p&gt;I've always been drawn to the problem of making software do more with less human direction.&lt;/p&gt;
&lt;p&gt;E-commerce automation in 1997.&lt;/p&gt;
&lt;p&gt;Server provisioning orchestration in 2003.&lt;/p&gt;
&lt;p&gt;Serverless computing on the edge in 2020.&lt;/p&gt;
&lt;p&gt;Autonomous AI agents in 2026.&lt;/p&gt;
&lt;p&gt;The abstraction layer has risen.&lt;/p&gt;
&lt;p&gt;The fundamental question hasn't changed.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;If you're a developer earlier in your journey, find that question — the one you keep circling back to no matter which technology is in fashion — and follow it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;The career will take care of itself.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;a-note-on-coderlegion&quot;&gt;A Note on CoderLegion&lt;/h3&gt;
&lt;p&gt;Communities like CoderLegion matter most in the messy middle of a wave when everyone is confident the technology is important but nobody yet agrees on the right way to use it.&lt;/p&gt;
&lt;p&gt;Agentic AI is squarely in that middle right now.&lt;/p&gt;
&lt;p&gt;The conversations I've found here, from practitioners who are actually building, not just theorising, are exactly the kind of signal that helps me calibrate what problems are real and which are manufactured by hype cycles.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-paul-chen&quot;&gt;About Paul Chen&lt;/h3&gt;
&lt;p&gt;Paul Chen is a &lt;strong&gt;COO focused on Agentic AI &amp;amp; Autonomous Systems and Intelligent Cloud &amp;amp; Edge Services&lt;/strong&gt;, with more than 30 years of experience in distributed systems, advanced cloud applications, and serverless platforms. He is currently focused on agentic AI, autonomous systems, and multi-agent systems. :contentReference[oaicite:1]{index=1}&lt;/p&gt;
&lt;p&gt;His career has spanned e-commerce, distributed systems, cloud computing, serverless platforms, and now autonomous AI systems.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/PaulChen088&quot;&gt;View Paul Chen's CoderLegion Profile&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Paul Chen&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Interviewed and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team, CoderLegion&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26582/from-e-commerce-to-agentic-ai-paul-chens-30-year-developers-journey</guid>
<pubDate>Wed, 09 Sep 2026 09:22:02 +0000</pubDate>
</item>
<item>
<title>Five Years of Not Giving Up — Anas Sheikh’s Journey as a Developer</title>
<link>https://coderlegion.com/26580/five-years-of-not-giving-up-anas-sheikhs-journey-as-a-developer</link>
<description>&lt;h2 id=&quot;five-years-of-not-giving-up-my-journey-as-a-developer&quot;&gt;Five Years of Not Giving Up — My Journey as a Developer&lt;/h2&gt;
&lt;p&gt;Five years ago, I had no idea where programming would take me.&lt;/p&gt;
&lt;p&gt;It started with my cousin.&lt;/p&gt;
&lt;p&gt;He had started learning programming, and one day he recommended that I give it a try too. I didn't immediately jump into it. I took some time to think about whether programming was really something I wanted to do.&lt;/p&gt;
&lt;p&gt;A few days later, I finally decided to start.&lt;/p&gt;
&lt;p&gt;I opened YouTube and began with HTML.&lt;/p&gt;
&lt;p&gt;There was no expensive course, no perfect roadmap, and no shortcut.&lt;/p&gt;
&lt;p&gt;Just me, YouTube tutorials, and a lot of curiosity.&lt;/p&gt;
&lt;h3 id=&quot;from-youtube-tutorials-to-real-projects&quot;&gt;From YouTube Tutorials to Real Projects&lt;/h3&gt;
&lt;p&gt;After HTML, I started learning CSS. I watched tutorials and then tried to build small projects myself.&lt;/p&gt;
&lt;p&gt;I would build something, break it, try to fix it, and then build it again.&lt;/p&gt;
&lt;p&gt;And I kept doing that.&lt;/p&gt;
&lt;p&gt;Day after day.&lt;/p&gt;
&lt;p&gt;I became obsessed with practicing. I couldn't stop.&lt;/p&gt;
&lt;p&gt;After HTML and CSS, I started learning Bootstrap. That alone took me almost two months.&lt;/p&gt;
&lt;p&gt;Then, after around six months of learning and practicing, I started JavaScript.&lt;/p&gt;
&lt;p&gt;JavaScript was a completely different experience.&lt;/p&gt;
&lt;p&gt;There were so many concepts I didn't understand at first. I spent countless hours watching tutorials, trying things myself, getting confused, going back to the tutorials, and trying again.&lt;/p&gt;
&lt;p&gt;But I didn't quit.&lt;/p&gt;
&lt;p&gt;My cousin and I eventually got an unpaid internship at a software house. He got a job there later, but I remained on the unpaid internship.&lt;/p&gt;
&lt;p&gt;I stayed there for almost eight months.&lt;/p&gt;
&lt;p&gt;For those eight months, I wasn't earning a salary. My father supported me with my basic daily expenses. I would usually need around 100 PKR for bike petrol and some snacks, while I brought lunch from home.&lt;/p&gt;
&lt;p&gt;It wasn't easy.&lt;/p&gt;
&lt;p&gt;I was trying extremely hard to get a job, but I couldn't find one.&lt;/p&gt;
&lt;h3 id=&quot;learning-by-building&quot;&gt;Learning by Building&lt;/h3&gt;
&lt;p&gt;Eventually, I left the software house and continued learning and building from home.&lt;/p&gt;
&lt;p&gt;But leaving didn't mean stopping.&lt;/p&gt;
&lt;p&gt;It meant I had to push myself even harder.&lt;/p&gt;
&lt;p&gt;During that period, I continued building projects and also started learning React.js.&lt;/p&gt;
&lt;p&gt;At the software house, I had another friend who was also an unpaid intern. We spent our time learning from YouTube and building small projects together.&lt;/p&gt;
&lt;p&gt;We built things like calculators, to-do list applications, and other small projects.&lt;/p&gt;
&lt;p&gt;They weren't impressive products.&lt;/p&gt;
&lt;p&gt;But they were important.&lt;/p&gt;
&lt;p&gt;Every small project taught me something.&lt;/p&gt;
&lt;p&gt;Every bug forced me to think.&lt;/p&gt;
&lt;p&gt;Every time I broke something and fixed it, I understood programming a little better.&lt;/p&gt;
&lt;p&gt;Looking back, those small projects were some of the most important projects I ever built because they taught me how to learn.&lt;/p&gt;
&lt;h3 id=&quot;another-opportunity&quot;&gt;Another Opportunity&lt;/h3&gt;
&lt;p&gt;After I left, around two or three months later, my cousin also left that company and got another job.&lt;/p&gt;
&lt;p&gt;He invited me to join him.&lt;/p&gt;
&lt;p&gt;The role was for a React.js frontend developer.&lt;/p&gt;
&lt;p&gt;I had learned React, but I had only been working with it for around four months.&lt;/p&gt;
&lt;p&gt;And honestly, I wasn't confident.&lt;/p&gt;
&lt;p&gt;This was before AI coding tools became as popular as they are today. I was scared of giving the interview because I didn't feel ready.&lt;/p&gt;
&lt;p&gt;My cousin got the job.&lt;/p&gt;
&lt;p&gt;I didn't.&lt;/p&gt;
&lt;p&gt;I continued working as an unpaid intern at another company.&lt;/p&gt;
&lt;p&gt;And this time, something different happened.&lt;/p&gt;
&lt;p&gt;I met an amazing senior developer.&lt;/p&gt;
&lt;p&gt;He was a very strong full-stack developer, and he taught me a lot. He trusted me with real work, explained things to me, and connected me with real company projects.&lt;/p&gt;
&lt;p&gt;For the first time, I wasn't just building tutorial projects.&lt;/p&gt;
&lt;p&gt;I was working on real projects for real clients.&lt;/p&gt;
&lt;p&gt;And I loved it.&lt;/p&gt;
&lt;p&gt;I was still unpaid, but I didn't stop.&lt;/p&gt;
&lt;p&gt;I kept learning.&lt;/p&gt;
&lt;p&gt;I kept working.&lt;/p&gt;
&lt;p&gt;I kept coding.&lt;/p&gt;
&lt;p&gt;I think that's when I realized that I genuinely loved programming.&lt;/p&gt;
&lt;p&gt;I could do the same thing again and again — build something, break something, fix something, learn something new — and still enjoy it.&lt;/p&gt;
&lt;h3 id=&quot;the-job-i-didn-t-take&quot;&gt;The Job I Didn't Take&lt;/h3&gt;
&lt;p&gt;Eventually, I decided to ask the company if they could give me a paid position.&lt;/p&gt;
&lt;p&gt;My senior supported me and spoke to the manager.&lt;/p&gt;
&lt;p&gt;The manager asked me about my salary expectations.&lt;/p&gt;
&lt;p&gt;I said 40,000 PKR.&lt;/p&gt;
&lt;p&gt;My cousin was earning around 80,000 PKR at that time.&lt;/p&gt;
&lt;p&gt;Then the manager said something I will never forget:&lt;/p&gt;
&lt;p&gt;They could give me the job, but they would have to fire my cousin.&lt;/p&gt;
&lt;p&gt;I immediately said no.&lt;/p&gt;
&lt;p&gt;I couldn't accept a job if getting that job meant replacing the person who had supported me from the beginning.&lt;/p&gt;
&lt;p&gt;My cousin had been one of the reasons I started programming in the first place. He had supported me throughout the journey.&lt;/p&gt;
&lt;p&gt;So I rejected the offer.&lt;/p&gt;
&lt;p&gt;I told my cousin what happened, and we decided to leave the company.&lt;/p&gt;
&lt;p&gt;Instead of continuing to look for jobs, we decided to try something completely different.&lt;/p&gt;
&lt;p&gt;We started freelancing.&lt;/p&gt;
&lt;h3 id=&quot;my-first-60k-pkr&quot;&gt;My First 60K PKR&lt;/h3&gt;
&lt;p&gt;We started getting projects through my cousin's Fiverr account.&lt;/p&gt;
&lt;p&gt;I still remember completing our first project.&lt;/p&gt;
&lt;p&gt;When my cousin gave me my share, it was around &lt;strong&gt;60,000 PKR&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I was incredibly happy.&lt;/p&gt;
&lt;p&gt;I remember crying.&lt;/p&gt;
&lt;p&gt;Not because 60,000 PKR was some huge amount of money.&lt;/p&gt;
&lt;p&gt;It was because of what that money represented.&lt;/p&gt;
&lt;p&gt;For almost two years, I had been learning.&lt;/p&gt;
&lt;p&gt;I had spent months doing unpaid internships.&lt;/p&gt;
&lt;p&gt;I had spent countless hours watching tutorials.&lt;/p&gt;
&lt;p&gt;I had built project after project.&lt;/p&gt;
&lt;p&gt;I had tried to find a job and failed.&lt;/p&gt;
&lt;p&gt;And then, finally, someone had paid me for the skill I had worked so hard to develop.&lt;/p&gt;
&lt;p&gt;That 60,000 PKR was my first real earning from programming.&lt;/p&gt;
&lt;p&gt;I will never forget that feeling.&lt;/p&gt;
&lt;h3 id=&quot;the-next-step-learning-next-js&quot;&gt;The Next Step: Learning Next.js&lt;/h3&gt;
&lt;p&gt;After that first 60,000 PKR, something changed for me.&lt;/p&gt;
&lt;p&gt;I didn't think, &quot;I've made it.&quot;&lt;/p&gt;
&lt;p&gt;Instead, I became even more motivated to improve.&lt;/p&gt;
&lt;p&gt;I started paying more attention to what other developers were using and what technologies were becoming popular in the industry.&lt;/p&gt;
&lt;p&gt;At that time, I started seeing more and more developers recommending Next.js, especially for building production websites and applications.&lt;/p&gt;
&lt;p&gt;I had already spent a lot of time learning JavaScript, so I had a strong foundation.&lt;/p&gt;
&lt;p&gt;That made it much easier for me to understand React and then move into Next.js.&lt;/p&gt;
&lt;p&gt;I decided to learn it.&lt;/p&gt;
&lt;p&gt;And this time, it was different.&lt;/p&gt;
&lt;p&gt;I wasn't starting from zero anymore.&lt;/p&gt;
&lt;p&gt;I already understood JavaScript, components, frontend development, APIs, and how web applications were structured.&lt;/p&gt;
&lt;p&gt;So I went deep into Next.js and managed to learn the fundamentals and start building with it in roughly one month.&lt;/p&gt;
&lt;p&gt;I started using it in real projects and continued learning through actual client work.&lt;/p&gt;
&lt;p&gt;Today, Next.js has become one of the main technologies I work with.&lt;/p&gt;
&lt;p&gt;Most of the modern web projects I work on are built around React and Next.js.&lt;/p&gt;
&lt;h4 id=&quot;don-t-just-chase-frameworks&quot;&gt;Don't Just Chase Frameworks&lt;/h4&gt;
&lt;p&gt;One of the biggest things I've learned is:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Don't just chase frameworks. Build strong fundamentals.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Frameworks change.&lt;/p&gt;
&lt;p&gt;Tools change.&lt;/p&gt;
&lt;p&gt;The way we build software changes.&lt;/p&gt;
&lt;p&gt;But if your fundamentals are strong, learning the next technology becomes much easier.&lt;/p&gt;
&lt;h3 id=&quot;freelancing-became-my-career&quot;&gt;Freelancing Became My Career&lt;/h3&gt;
&lt;p&gt;After that first project, we didn't stop.&lt;/p&gt;
&lt;p&gt;We continued getting projects and working with real clients.&lt;/p&gt;
&lt;p&gt;Eventually, I created my own Fiverr and Upwork accounts as well.&lt;/p&gt;
&lt;p&gt;Over time, I had the opportunity to work with some amazing people. Some clients continued working with me again and again.&lt;/p&gt;
&lt;p&gt;One thing that makes me especially proud is that throughout this journey, I don't remember having a client who was genuinely unhappy with my work.&lt;/p&gt;
&lt;p&gt;Clients appreciated the work.&lt;/p&gt;
&lt;p&gt;Some gave me tips.&lt;/p&gt;
&lt;p&gt;Some came back with more projects.&lt;/p&gt;
&lt;p&gt;And slowly, my skills improved with every project.&lt;/p&gt;
&lt;p&gt;I learned not just how to code, but how to communicate with clients, understand requirements, solve real problems, manage projects, handle feedback, and deliver something that another person could actually use.&lt;/p&gt;
&lt;p&gt;Freelancing gave me something I couldn't get from simply learning programming tutorials.&lt;/p&gt;
&lt;p&gt;It gave me &lt;strong&gt;real experience&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;five-years-later&quot;&gt;Five Years Later&lt;/h3&gt;
&lt;p&gt;Today, it has been five years since I started this journey.&lt;/p&gt;
&lt;p&gt;And one interesting thing about my story is that I still haven't had a traditional full-time developer job.&lt;/p&gt;
&lt;p&gt;For a long time, I thought that was something I should be worried about.&lt;/p&gt;
&lt;p&gt;But freelancing gave me almost everything I was looking for.&lt;/p&gt;
&lt;p&gt;It gave me real clients.&lt;/p&gt;
&lt;p&gt;Real projects.&lt;/p&gt;
&lt;p&gt;Real responsibility.&lt;/p&gt;
&lt;p&gt;And the freedom to work on different kinds of products and technologies.&lt;/p&gt;
&lt;p&gt;I've worked with modern web technologies including React, Next.js, JavaScript, TypeScript, Tailwind CSS, databases, APIs, CMS platforms, cloud services, and many other tools.&lt;/p&gt;
&lt;p&gt;But more importantly, I've learned how to learn.&lt;/p&gt;
&lt;p&gt;And I think that is one of the most valuable skills a developer can have.&lt;/p&gt;
&lt;h3 id=&quot;building-for-real-problems&quot;&gt;Building for Real Problems&lt;/h3&gt;
&lt;p&gt;Over time, I've also become increasingly interested in building products that solve real problems rather than simply building websites.&lt;/p&gt;
&lt;p&gt;One example is an idea around improving patient queues in Pakistani hospitals.&lt;/p&gt;
&lt;p&gt;The goal is to reduce manual queue management, help patients understand when they may see a doctor, and make the process easier for both patients and hospital staff.&lt;/p&gt;
&lt;p&gt;Working on problems like this reminded me why I started programming in the first place:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Not just to write code, but to solve problems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;what-about-ai-&quot;&gt;What About AI?&lt;/h3&gt;
&lt;p&gt;Today, AI is changing the way developers work.&lt;/p&gt;
&lt;p&gt;Some people are worried that AI will replace developers.&lt;/p&gt;
&lt;p&gt;I don't see it that way.&lt;/p&gt;
&lt;p&gt;AI has changed my workflow, but I see it more as a tool that helps me work faster.&lt;/p&gt;
&lt;p&gt;Things that used to take much longer can sometimes be done much faster now.&lt;/p&gt;
&lt;p&gt;A project that might have taken two months can sometimes be completed in a month.&lt;/p&gt;
&lt;p&gt;But the developer still needs to understand what they are building.&lt;/p&gt;
&lt;p&gt;You still need to understand the problem.&lt;/p&gt;
&lt;p&gt;You still need to make decisions.&lt;/p&gt;
&lt;p&gt;You still need to debug.&lt;/p&gt;
&lt;p&gt;You still need to know when AI is wrong.&lt;/p&gt;
&lt;p&gt;AI can make development faster, but I don't believe it removes the need to learn.&lt;/p&gt;
&lt;p&gt;If anything, I think developers should focus even more on understanding fundamentals, problem-solving, communication, product thinking, and how software actually works.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Don't be afraid of AI. Learn how to use it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;the-biggest-lesson-i-ve-learned&quot;&gt;The Biggest Lesson I've Learned&lt;/h3&gt;
&lt;p&gt;If there is one lesson I would share from my five-year journey, it is simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Be consistent. Don't stop.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There were many moments when I felt behind.&lt;/p&gt;
&lt;p&gt;There were times when I couldn't get a job.&lt;/p&gt;
&lt;p&gt;There were months when I worked without getting paid.&lt;/p&gt;
&lt;p&gt;There were countless bugs I couldn't understand.&lt;/p&gt;
&lt;p&gt;There were technologies that felt impossible when I first started learning them.&lt;/p&gt;
&lt;p&gt;But I kept going.&lt;/p&gt;
&lt;p&gt;I kept opening my laptop.&lt;/p&gt;
&lt;p&gt;I kept watching tutorials.&lt;/p&gt;
&lt;p&gt;I kept building.&lt;/p&gt;
&lt;p&gt;I kept breaking things.&lt;/p&gt;
&lt;p&gt;I kept fixing them.&lt;/p&gt;
&lt;p&gt;And eventually, those small efforts started adding up.&lt;/p&gt;
&lt;p&gt;I didn't become a developer in one day.&lt;/p&gt;
&lt;p&gt;There wasn't one magical moment when everything suddenly made sense.&lt;/p&gt;
&lt;p&gt;It happened slowly.&lt;/p&gt;
&lt;p&gt;One project at a time.&lt;/p&gt;
&lt;p&gt;One bug at a time.&lt;/p&gt;
&lt;p&gt;One client at a time.&lt;/p&gt;
&lt;p&gt;One lesson at a time.&lt;/p&gt;
&lt;h3 id=&quot;looking-back&quot;&gt;Looking Back&lt;/h3&gt;
&lt;p&gt;Sometimes I think about the person who opened YouTube five years ago and started learning HTML.&lt;/p&gt;
&lt;p&gt;He had no idea what was coming.&lt;/p&gt;
&lt;p&gt;He didn't know about React.&lt;/p&gt;
&lt;p&gt;He didn't know about Next.js.&lt;/p&gt;
&lt;p&gt;He didn't know about freelancing.&lt;/p&gt;
&lt;p&gt;He didn't know that one day he would be building real projects for clients around the world.&lt;/p&gt;
&lt;p&gt;He definitely didn't know that his first programming income would make him cry.&lt;/p&gt;
&lt;p&gt;But he kept going.&lt;/p&gt;
&lt;p&gt;And I'm glad he did.&lt;/p&gt;
&lt;p&gt;The last five years haven't always been easy.&lt;/p&gt;
&lt;p&gt;Actually, some parts were really hard.&lt;/p&gt;
&lt;p&gt;But they were worth it.&lt;/p&gt;
&lt;p&gt;I'm proud of the journey — not because everything went perfectly, but because I didn't give up when things didn't go according to plan.&lt;/p&gt;
&lt;p&gt;And I'm still learning.&lt;/p&gt;
&lt;p&gt;I'm still building.&lt;/p&gt;
&lt;p&gt;I'm still making mistakes.&lt;/p&gt;
&lt;p&gt;I'm still breaking things and fixing them.&lt;/p&gt;
&lt;p&gt;And honestly, I still love it.&lt;/p&gt;
&lt;h3 id=&quot;if-you-re-just-starting&quot;&gt;If You're Just Starting&lt;/h3&gt;
&lt;p&gt;So if you're reading this and you're just starting your programming journey, don't worry if you're not good yet.&lt;/p&gt;
&lt;p&gt;Don't worry if you don't get a job immediately.&lt;/p&gt;
&lt;p&gt;Don't worry if everyone around you seems to be progressing faster.&lt;/p&gt;
&lt;p&gt;Keep learning.&lt;/p&gt;
&lt;p&gt;Keep building.&lt;/p&gt;
&lt;p&gt;Keep practicing.&lt;/p&gt;
&lt;p&gt;Keep showing up.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Be consistent. Don't stop.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Your journey may take longer than you expect.&lt;/p&gt;
&lt;p&gt;Mine certainly did.&lt;/p&gt;
&lt;p&gt;But sometimes the longest journeys are the ones that are worth the most.&lt;/p&gt;
&lt;p&gt;Thank you for reading my story.&lt;/p&gt;
&lt;p&gt;I hope it gives even one developer the motivation to keep going.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-anas-sheikh&quot;&gt;About Anas Sheikh&lt;/h3&gt;
&lt;p&gt;Anas Sheikh is a developer who has built his career through continuous learning, freelancing, and working on real-world projects.&lt;/p&gt;
&lt;p&gt;His journey has taken him from learning HTML and CSS through YouTube tutorials to working with React, Next.js, TypeScript, Tailwind CSS, APIs, databases, CMS platforms, and cloud services.&lt;/p&gt;
&lt;p&gt;More importantly, his story is about persistence — continuing to learn and build through unpaid internships, job rejections, difficult periods, and countless bugs.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Anas+Sheikh&quot;&gt;View Anas Sheikh's CoderLegion Profile&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Anas Sheikh&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Interviewed and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team, CoderLegion&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26580/five-years-of-not-giving-up-anas-sheikhs-journey-as-a-developer</guid>
<pubDate>Wed, 09 Sep 2026 08:52:50 +0000</pubDate>
</item>
<item>
<title>From Frontend Freelancer to Systems Engineer: Valentine Shimanovsky’s Journey in Software Engineerin</title>
<link>https://coderlegion.com/26570/frontend-freelancer-systems-engineer-valentine-shimanovskys-journey-software-engineerin</link>
<description>&lt;h2 id=&quot;from-frontend-freelancer-to-systems-engineer-valentine-shimanovsky-s-journey-in-software-engineering&quot;&gt;From Frontend Freelancer to Systems Engineer: Valentine Shimanovsky’s Journey in Software Engineering&lt;/h2&gt;
&lt;p&gt;Software engineering is often presented as a journey through programming languages and frameworks.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;Valentine Shimanovsky&lt;/strong&gt;, the journey has been much more about learning how the pieces fit together.&lt;/p&gt;
&lt;p&gt;He started with web development and frontend work, moved into full-stack development, and gradually found himself drawn deeper into backend engineering, architecture, testing, domain modeling, and the wider software development lifecycle.&lt;/p&gt;
&lt;p&gt;Over time, his focus shifted from simply building individual features to understanding how entire systems should be designed, tested, and evolved.&lt;/p&gt;
&lt;p&gt;This is the story of that journey.&lt;/p&gt;
&lt;h3 id=&quot;starting-with-web-development&quot;&gt;Starting With Web Development&lt;/h3&gt;
&lt;p&gt;Valentine says he has always felt that programming, development, and software engineering were what he wanted to do.&lt;/p&gt;
&lt;p&gt;About a decade ago, he started learning web development.&lt;/p&gt;
&lt;p&gt;After roughly a year, he began working professionally as a freelancer, initially making frontends for different projects.&lt;/p&gt;
&lt;p&gt;But it didn't take long before he wanted more.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Within a couple of years, I felt I was hungry for more. I have always been hungry for more.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That curiosity pushed him beyond frontend development and toward full-stack work.&lt;/p&gt;
&lt;p&gt;He began working on smaller projects where he was responsible for most of the application himself. As those projects became larger and more structured, his work gradually shifted toward the backend.&lt;/p&gt;
&lt;p&gt;APIs.&lt;/p&gt;
&lt;p&gt;Data models.&lt;/p&gt;
&lt;p&gt;Persistence.&lt;/p&gt;
&lt;p&gt;Integrations.&lt;/p&gt;
&lt;p&gt;Testing.&lt;/p&gt;
&lt;p&gt;Deployment.&lt;/p&gt;
&lt;p&gt;The work was becoming less about individual screens and more about how the entire application worked.&lt;/p&gt;
&lt;h3 id=&quot;the-search-for-reliable-engineering&quot;&gt;The Search for Reliable Engineering&lt;/h3&gt;
&lt;p&gt;As Valentine progressed, he encountered what many developers experience: an overwhelming amount of information.&lt;/p&gt;
&lt;p&gt;There were countless tools, techniques, books, courses, and opinions about how software should be built.&lt;/p&gt;
&lt;p&gt;Rather than simply collecting knowledge, Valentine focused on finding tools and practices that could make his development more reliable.&lt;/p&gt;
&lt;p&gt;One of the first major turning points was &lt;strong&gt;Test-Driven Development (TDD)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;He started experimenting with TDD after around two years of professional experience.&lt;/p&gt;
&lt;p&gt;It didn't immediately click.&lt;/p&gt;
&lt;p&gt;He spent considerable time studying the subject, including reading and rereading several seminal books on TDD and refactoring and taking courses until the ideas finally became clear.&lt;/p&gt;
&lt;p&gt;That experience became an important part of his engineering foundation.&lt;/p&gt;
&lt;h3 id=&quot;when-object-oriented-programming-didn-t-come-naturally&quot;&gt;When Object-Oriented Programming Didn't Come Naturally&lt;/h3&gt;
&lt;p&gt;Another fundamental area proved more difficult.&lt;/p&gt;
&lt;p&gt;Object-oriented programming didn't come naturally to Valentine, despite his efforts to understand it.&lt;/p&gt;
&lt;p&gt;Instead of giving up, he went deeper.&lt;/p&gt;
&lt;p&gt;He began studying books on &lt;strong&gt;Object-Oriented Analysis and Design (OOAD)&lt;/strong&gt; and eventually discovered &lt;strong&gt;Domain-Driven Design (DDD)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;DDD became an important part of his engineering journey.&lt;/p&gt;
&lt;p&gt;It helped him think beyond individual pieces of code and focus more deeply on the domain and the problems the software was actually trying to solve.&lt;/p&gt;
&lt;h3 id=&quot;from-features-to-the-whole-system&quot;&gt;From Features to the Whole System&lt;/h3&gt;
&lt;p&gt;As his experience grew, individual features became less interesting to Valentine than understanding how the entire system worked.&lt;/p&gt;
&lt;p&gt;He wanted to understand the bigger picture.&lt;/p&gt;
&lt;p&gt;That naturally led him toward taking ownership of the broader software development lifecycle.&lt;/p&gt;
&lt;p&gt;His approach became increasingly structured:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start with the business requirements.&lt;/li&gt;
&lt;li&gt;Decide how the domain should be modeled.&lt;/li&gt;
&lt;li&gt;Move toward system modeling using C4 and UML.&lt;/li&gt;
&lt;li&gt;Use API-first design.&lt;/li&gt;
&lt;li&gt;Apply Domain-Driven Design.&lt;/li&gt;
&lt;li&gt;Use Test-Driven Development.&lt;/li&gt;
&lt;li&gt;Build, test, deploy, and maintain the product.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For Valentine, these aren't isolated techniques.&lt;/p&gt;
&lt;p&gt;They work together as a foundation for building robust products that are easier to change.&lt;/p&gt;
&lt;p&gt;He describes this combination as having helped him build products with nearly zero production errors from the first attempt while keeping them easy to evolve.&lt;/p&gt;
&lt;h3 id=&quot;engineering-is-more-than-a-toolbox&quot;&gt;Engineering Is More Than a Toolbox&lt;/h3&gt;
&lt;p&gt;One of the most interesting parts of Valentine's journey is that, despite developing a large engineering toolbox, he doesn't see individual tools as the final destination.&lt;/p&gt;
&lt;p&gt;He is still interested in individual engineering practices.&lt;/p&gt;
&lt;p&gt;But increasingly, his focus is on &lt;strong&gt;how those practices work together when building an entire system&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Knowing TDD is valuable.&lt;/p&gt;
&lt;p&gt;Knowing DDD is valuable.&lt;/p&gt;
&lt;p&gt;Understanding API design, system modeling, architecture, testing, and deployment is valuable.&lt;/p&gt;
&lt;p&gt;But the deeper engineering challenge is understanding how all of these pieces interact.&lt;/p&gt;
&lt;p&gt;That is where Valentine's journey has taken him.&lt;/p&gt;
&lt;h3 id=&quot;from-writing-code-to-understanding-complexity&quot;&gt;From Writing Code to Understanding Complexity&lt;/h3&gt;
&lt;p&gt;Valentine's progression can almost be viewed as a series of increasingly larger questions.&lt;/p&gt;
&lt;p&gt;First:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I build this interface?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I build the entire application?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How should the backend, data, APIs, and integrations work together?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And eventually:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How does the entire system work, and what makes it complex in the first place?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That last question increasingly shapes how Valentine approaches software engineering today.&lt;/p&gt;
&lt;p&gt;The individual engineering tools still matter.&lt;/p&gt;
&lt;p&gt;But understanding how they work together matters even more.&lt;/p&gt;
&lt;h3 id=&quot;the-value-of-a-structured-engineering-approach&quot;&gt;The Value of a Structured Engineering Approach&lt;/h3&gt;
&lt;p&gt;Valentine's journey also highlights an important lesson for developers who are trying to improve their engineering skills.&lt;/p&gt;
&lt;p&gt;Learning another framework or programming language can certainly expand your toolbox.&lt;/p&gt;
&lt;p&gt;But becoming a stronger engineer also means learning how to reason about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;business requirements&lt;/li&gt;
&lt;li&gt;domain models&lt;/li&gt;
&lt;li&gt;system architecture&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;testing&lt;/li&gt;
&lt;li&gt;persistence&lt;/li&gt;
&lt;li&gt;integrations&lt;/li&gt;
&lt;li&gt;deployment&lt;/li&gt;
&lt;li&gt;maintainability&lt;/li&gt;
&lt;li&gt;and the relationship between all of these areas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal isn't simply to write code that works.&lt;/p&gt;
&lt;p&gt;It's to build systems that are &lt;strong&gt;reliable, understandable, and easy to change&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;what-valentine-s-journey-shows&quot;&gt;What Valentine's Journey Shows&lt;/h3&gt;
&lt;p&gt;Valentine's story is a reminder that becoming a stronger software engineer isn't necessarily about collecting more technologies.&lt;/p&gt;
&lt;p&gt;His journey started with frontend development.&lt;/p&gt;
&lt;p&gt;Then came full-stack development.&lt;/p&gt;
&lt;p&gt;Then backend engineering.&lt;/p&gt;
&lt;p&gt;Then deeper exploration of testing and refactoring.&lt;/p&gt;
&lt;p&gt;Then object-oriented design and Domain-Driven Design.&lt;/p&gt;
&lt;p&gt;Then system modeling, API-first design, and ownership of the broader software development lifecycle.&lt;/p&gt;
&lt;p&gt;Each stage came from wanting to understand something deeper than the previous stage.&lt;/p&gt;
&lt;p&gt;The result is an engineering approach built around &lt;strong&gt;reliability, structure, domain understanding, and seeing the whole system rather than just the code immediately in front of you&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And perhaps that's the most interesting part of his journey.&lt;/p&gt;
&lt;p&gt;The more Valentine learned about software engineering, the less he focused on individual tools—and the more interested he became in understanding &lt;strong&gt;the system as a whole&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;about-valentine-shimanovsky&quot;&gt;About Valentine Shimanovsky&lt;/h3&gt;
&lt;p&gt;Valentine Shimanovsky is a Senior Backend / Full-Stack / Founding Engineer focused on complex business systems and software engineering.&lt;/p&gt;
&lt;p&gt;His interests span backend development, architecture, testing, domain modeling, system design, and the broader software development lifecycle.&lt;/p&gt;
&lt;p&gt;Valentine also writes about software engineering practices, tools, architecture, and the books that have influenced his approach to engineering.&lt;/p&gt;
&lt;p&gt;You can explore more of his work through his &lt;a rel=&quot;nofollow&quot; href=&quot;https://valentineshi.dev/content/niceties/aG776luBQPaCoLh7m8PP0A/software-engineer-toolbox-granularity&quot;&gt;Software Engineer Toolbox Granularity&lt;/a&gt; article and his &lt;a rel=&quot;nofollow&quot; href=&quot;https://valentineshi.dev/content/book-reviews&quot;&gt;software engineering book reviews&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/Valentine+Shimanovsky&quot;&gt;View Valentine Shimanovsky's CoderLegion Profile&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Featured Developer:&lt;/strong&gt; Valentine Shimanovsky&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; CoderLegion Developer Stories&lt;br&gt;
&lt;strong&gt;Interviewed and edited by:&lt;/strong&gt; Mehadi Hasan, Community &amp;amp; Editorial Team, CoderLegion&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26570/frontend-freelancer-systems-engineer-valentine-shimanovskys-journey-software-engineerin</guid>
<pubDate>Wed, 09 Sep 2026 07:48:02 +0000</pubDate>
</item>
<item>
<title>25 Years in Tech Taught Me What AI Still Can't Replace — Helkyn Coello's Developer Journey</title>
<link>https://coderlegion.com/26566/25-years-in-tech-taught-me-what-ai-still-cant-replace-helkyn-coellos-developer-journey</link>
<description>&lt;h2 id=&quot;25-years-in-tech-taught-me-what-ai-still-can-t-replace-helkyn-coello-s-developer-journey&quot;&gt;25 Years in Tech Taught Me What AI Still Can't Replace — Helkyn Coello's Developer Journey&lt;/h2&gt;
&lt;p&gt;Technology has changed dramatically over the past 25 years.&lt;/p&gt;
&lt;p&gt;Desktop applications became client-server systems. Client-server systems became web platforms. And now, AI is changing how software is designed, built, tested, and operated.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;Helkyn Coello&lt;/strong&gt;, that transformation hasn't happened from the sidelines.&lt;/p&gt;
&lt;p&gt;He has spent 25 years building enterprise software, leading technology teams, modernizing legacy systems, and navigating the transition from traditional software development to AI-native systems.&lt;/p&gt;
&lt;p&gt;Today, Helkyn is the &lt;strong&gt;Chief AI Officer at AccountTECH&lt;/strong&gt;, where he leads company-wide AI adoption across products, operations, and team capabilities. His work spans enterprise RAG, AI governance, agentic AI, software architecture, and the challenge of bringing AI into production without breaking systems that already work.&lt;/p&gt;
&lt;p&gt;His CoderLegion profile captures the philosophy behind that experience:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;The best AI in your stack is still the mental model in your head.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We spoke with Helkyn about 25 years of technology change, modernizing enterprise systems, AI in production, RAG, agentic AI, vibe coding, governance, and what developers need to understand in an AI-first world.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;25-years-of-technology-change&quot;&gt;25 Years of Technology Change&lt;/h3&gt;
&lt;p&gt;Looking back across 25 years of technology, Helkyn says the biggest change isn't simply that software can now be built faster.&lt;/p&gt;
&lt;p&gt;It's the distance between having an idea and having something running.&lt;/p&gt;
&lt;p&gt;In the client-server era, trying something new could mean weeks or months of development, installing software on every machine, dealing with hardware configurations, and sometimes even preparing training for the people who would use it.&lt;/p&gt;
&lt;p&gt;Today, a competent person can build and deploy something in an afternoon.&lt;/p&gt;
&lt;p&gt;And that changes more than development speed.&lt;/p&gt;
&lt;p&gt;It changes which ideas are worth trying because &lt;strong&gt;being wrong has become cheaper&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;But Helkyn believes one thing hasn't changed nearly as much:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Deciding what to build was and still is the hard part.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Requirements are still vague. Users often don't know exactly what they need until they see something that isn't quite right. Integrations with systems nobody wants to touch are still where projects can go wrong. Maintenance still consumes budgets that nobody planned for.&lt;/p&gt;
&lt;p&gt;AI doesn't eliminate those problems.&lt;/p&gt;
&lt;p&gt;Instead, it changes where the bottleneck is.&lt;/p&gt;
&lt;p&gt;Coding is no longer necessarily the bottleneck. Producing the right specifications and giving AI enough context to build something correctly has become increasingly important.&lt;/p&gt;
&lt;p&gt;Poorly documented requirements can send an AI model in completely the wrong direction. Detailed specifications can produce a much more robust result.&lt;/p&gt;
&lt;p&gt;And Helkyn sees a broader shift happening:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Non-coders are becoming software analysts and developers are becoming just reviewers, whether they like it or not.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;modernizing-legacy-systems-without-breaking-the-business&quot;&gt;Modernizing Legacy Systems Without Breaking the Business&lt;/h3&gt;
&lt;p&gt;Helkyn has personally experienced major technology migrations, including moving an enterprise system from an Access-based legacy platform to .NET and later transitioning from client-server architecture to a fully web-based system.&lt;/p&gt;
&lt;p&gt;The biggest lesson wasn't technical.&lt;/p&gt;
&lt;p&gt;It was:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Think about the customer first, even if that means sacrificing technical aspects.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A business cannot simply pause while its technology is being modernized.&lt;/p&gt;
&lt;p&gt;That's why Helkyn favors incremental migration over clean-cut replacement.&lt;/p&gt;
&lt;p&gt;Build capabilities in the new system gradually. Move customers across in chunks. Keep the old system running in parallel until the new system has earned customers' trust.&lt;/p&gt;
&lt;p&gt;And much of the difficult work happens behind the scenes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data migration schedules&lt;/li&gt;
&lt;li&gt;Daily releases&lt;/li&gt;
&lt;li&gt;Keeping old and new systems synchronized&lt;/li&gt;
&lt;li&gt;Handling edge cases&lt;/li&gt;
&lt;li&gt;Repurposing custom legacy code&lt;/li&gt;
&lt;li&gt;Maintaining continuity for existing customers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reason is simple:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Customers must not feel any interruption.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That philosophy also influences how Helkyn approaches AI.&lt;/p&gt;
&lt;p&gt;When someone proposes replacing an existing process with an AI-based one, his first question is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What keeps running while the new system proves itself?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The second is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do we roll back when things go wrong?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If there is no way to reverse the change, Helkyn doesn't consider it modernization.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;It's a bet without plan B.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's why he prefers putting AI into systems that already work and &lt;strong&gt;augmenting them rather than rebuilding everything around AI&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-experience-matters-more-in-the-ai-era&quot;&gt;Why Experience Matters More in the AI Era&lt;/h3&gt;
&lt;p&gt;AI-generated applications can look finished.&lt;/p&gt;
&lt;p&gt;The code can look plausible. The architecture can look reasonable. A fifty-page specification can look professional.&lt;/p&gt;
&lt;p&gt;And that's exactly what makes AI so tricky.&lt;/p&gt;
&lt;p&gt;Helkyn experienced this himself when a Business Manager gave him a detailed specification generated with AI. It was beautifully organized and confidently written, but it contained gaps that were only obvious if you understood the domain deeply.&lt;/p&gt;
&lt;p&gt;The lesson was important:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Plausibility used to be a decent proxy for competence. But it isn't anymore.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;An experienced engineer doesn't only ask:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;Does it run?&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;They ask:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What happens with 10,000 records instead of 10?&lt;/li&gt;
&lt;li&gt;What happens when two requests arrive simultaneously?&lt;/li&gt;
&lt;li&gt;What happens when a third-party API fails at the worst possible moment?&lt;/li&gt;
&lt;li&gt;Who will maintain this eight months from now?&lt;/li&gt;
&lt;li&gt;Why was this approach chosen when the existing codebase already solves a similar problem?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those questions aren't necessarily visible in an impressive AI-generated demo.&lt;/p&gt;
&lt;p&gt;That's why Helkyn believes experience is becoming &lt;strong&gt;more valuable&lt;/strong&gt;, not less.&lt;/p&gt;
&lt;p&gt;AI can write code quickly and even produce strong architectures when given the right architectural requirements.&lt;/p&gt;
&lt;p&gt;But it doesn't automatically understand the history and domain knowledge of a business.&lt;/p&gt;
&lt;p&gt;A developer who understands that domain and knows how to use AI as leverage has a significant advantage.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;AI is becoming a commodity. Domain experience is what will differentiate developers.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;from-ai-experiments-to-production&quot;&gt;From AI Experiments to Production&lt;/h3&gt;
&lt;p&gt;There's a huge difference between an AI demo and production AI.&lt;/p&gt;
&lt;p&gt;Helkyn puts it simply:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;The demo only has to work once, for you, on the input you picked. Production has to work for everybody, on inputs nobody imagined, on a day when your model provider is having problems.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In production, non-determinism becomes a serious concern.&lt;/p&gt;
&lt;p&gt;In a demo, slightly different answers can feel like intelligence.&lt;/p&gt;
&lt;p&gt;In a system of record, they can look like bugs.&lt;/p&gt;
&lt;p&gt;So part of the architectural work is deciding &lt;strong&gt;which parts of a process are actually allowed to vary&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Then comes the less exciting work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permissions&lt;/li&gt;
&lt;li&gt;Logging&lt;/li&gt;
&lt;li&gt;Cost control&lt;/li&gt;
&lt;li&gt;Failure handling&lt;/li&gt;
&lt;li&gt;API outages&lt;/li&gt;
&lt;li&gt;Unexpected model responses&lt;/li&gt;
&lt;li&gt;User experience when something goes wrong&lt;/li&gt;
&lt;li&gt;Traceability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Traceability is particularly important.&lt;/p&gt;
&lt;p&gt;Helkyn has seen AI systems that worked beautifully on day one but couldn't answer basic questions about their own outputs:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much did this answer cost?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Who produced it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What input produced it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why was the answer produced?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Without traceability, production AI becomes difficult to understand, audit, and improve.&lt;/p&gt;
&lt;p&gt;And as organizations consider AI governance and regulatory requirements, that becomes even more important.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;production-over-pilots&quot;&gt;Production Over Pilots&lt;/h3&gt;
&lt;p&gt;Helkyn's approach favors &lt;strong&gt;production over pilots&lt;/strong&gt; and integrating AI into systems that already work rather than rebuilding everything from scratch.&lt;/p&gt;
&lt;p&gt;So why do companies struggle to make that transition?&lt;/p&gt;
&lt;p&gt;Because pilots and production systems are judged by completely different standards.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;A pilot is graded on whether it impressed someone in a room. Production is graded on whether it survives next week.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A pilot can succeed through speed, novelty, and a controlled demonstration.&lt;/p&gt;
&lt;p&gt;Production has to survive:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Security reviews&lt;/li&gt;
&lt;li&gt;Permissions&lt;/li&gt;
&lt;li&gt;Error handling&lt;/li&gt;
&lt;li&gt;Support&lt;/li&gt;
&lt;li&gt;Real users&lt;/li&gt;
&lt;li&gt;Messy data&lt;/li&gt;
&lt;li&gt;Real operational conditions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Another problem is that pilots often avoid the hardest parts.&lt;/p&gt;
&lt;p&gt;A company chooses a clean use case with tidy data because it wants to demonstrate a result.&lt;/p&gt;
&lt;p&gt;But the process that would actually create business value might involve data spread across six different systems.&lt;/p&gt;
&lt;p&gt;Helkyn also highlights another failure point: &lt;strong&gt;feedback that goes nowhere&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When users repeatedly provide feedback and nothing changes, they eventually stop reporting problems.&lt;/p&gt;
&lt;p&gt;Silence then gets mistaken for success.&lt;/p&gt;
&lt;p&gt;His approach is different:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Feedback should either result in a shipped change or an answer.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For moving from experiment to production, his advice is straightforward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Choose a process that is genuinely painful and genuinely messy.&lt;/li&gt;
&lt;li&gt;Build it small but end-to-end.&lt;/li&gt;
&lt;li&gt;Include permissions and logging from day one.&lt;/li&gt;
&lt;li&gt;Put it in front of real users early.&lt;/li&gt;
&lt;li&gt;Watch what users actually do instead of only asking what they think.&lt;/li&gt;
&lt;li&gt;Define what failure looks like before starting.&lt;/li&gt;
&lt;li&gt;Keep the old process running until the new one earns the traffic.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It isn't particularly glamorous.&lt;/p&gt;
&lt;p&gt;But that's often what production engineering looks like.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;building-an-enterprise-rag-system&quot;&gt;Building an Enterprise RAG System&lt;/h3&gt;
&lt;p&gt;One of Helkyn's current projects is an enterprise RAG knowledge system built around training material, documentation, and video transcripts.&lt;/p&gt;
&lt;p&gt;The problem wasn't a lack of knowledge.&lt;/p&gt;
&lt;p&gt;The knowledge already existed.&lt;/p&gt;
&lt;p&gt;It was simply scattered across formats that people couldn't search consistently.&lt;/p&gt;
&lt;p&gt;So employees would ask other employees for answers.&lt;/p&gt;
&lt;p&gt;That worked, but it didn't scale.&lt;/p&gt;
&lt;p&gt;The goal of the RAG system is to make that knowledge easier to find for employees and customers.&lt;/p&gt;
&lt;p&gt;But building enterprise RAG exposed challenges that aren't obvious in tutorials or demos.&lt;/p&gt;
&lt;p&gt;The biggest warning?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Permissions.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A RAG system can become an extremely efficient way of leaking information if different audiences have access to different documents.&lt;/p&gt;
&lt;p&gt;Internal information, customer information, and information belonging to different clients cannot simply be placed into one index and protected with a prompt.&lt;/p&gt;
&lt;p&gt;Access control needs to happen &lt;strong&gt;before the model sees the document&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That's an architectural problem, not a prompt-engineering problem.&lt;/p&gt;
&lt;p&gt;Another major lesson was understanding what the documents actually represent.&lt;/p&gt;
&lt;p&gt;A training video, customer call, support ticket, internal conversation, and written article aren't equivalent pieces of information.&lt;/p&gt;
&lt;p&gt;They differ in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reliability&lt;/li&gt;
&lt;li&gt;Freshness&lt;/li&gt;
&lt;li&gt;Audience&lt;/li&gt;
&lt;li&gt;Tone&lt;/li&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That means representation matters enormously.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Retrieval isn't the answer, representation is.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The way information is indexed, chunked, categorized, and enriched with metadata can matter more than simply choosing a different model.&lt;/p&gt;
&lt;p&gt;Helkyn is also clear that this project is still &lt;strong&gt;work in progress&lt;/strong&gt;. The lessons are real, but final outcome metrics aren't available yet.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;where-rag-stops-being-enough&quot;&gt;Where RAG Stops Being Enough&lt;/h3&gt;
&lt;p&gt;RAG is powerful, but it has boundaries.&lt;/p&gt;
&lt;p&gt;At its core, RAG retrieves relevant information and gives it to a model.&lt;/p&gt;
&lt;p&gt;But not every problem is a retrieval problem.&lt;/p&gt;
&lt;p&gt;If someone asks:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;How many of these happened since March?&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's a database query.&lt;/p&gt;
&lt;p&gt;The answer should come from actual data, such as SQL, rather than asking a language model to perform calculations from retrieved documents.&lt;/p&gt;
&lt;p&gt;Relationships create another challenge.&lt;/p&gt;
&lt;p&gt;A document might explain a customer configuration.&lt;/p&gt;
&lt;p&gt;Another might describe a support ticket.&lt;/p&gt;
&lt;p&gt;Another might describe a release.&lt;/p&gt;
&lt;p&gt;The interesting answer may depend on the relationship between all three.&lt;/p&gt;
&lt;p&gt;That's where relationship graphs can become useful.&lt;/p&gt;
&lt;h4 id=&quot;so-when-should-you-introduce-agents-&quot;&gt;So when should you introduce agents?&lt;/h4&gt;
&lt;p&gt;Helkyn's test is practical:&lt;/p&gt;
&lt;p&gt;An agent makes sense when a task genuinely requires a sequence of steps that cannot be known in advance.&lt;/p&gt;
&lt;p&gt;But there's a second condition that matters even more:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;If you wouldn't give an intern unsupervised write access to that system, your agent shouldn't have it either.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also challenges the assumption that every AI workflow needs to become &quot;agentic.&quot;&lt;/p&gt;
&lt;p&gt;If a process has clear inputs, clear outputs, and fixed logic, deterministic code may be the better solution.&lt;/p&gt;
&lt;p&gt;His preferred architecture is often:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;AI at the edges. Code at the core.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let the model interpret messy input and explain results, while deterministic code handles processes with a single correct answer.&lt;/p&gt;
&lt;p&gt;And when agents are involved, Helkyn prefers a model where:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;The agent proposes. A human confirms.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At least until the pattern has earned enough trust.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;vibe-coding-won-t-kill-developers-it-ll-kill-the-middle-&quot;&gt;Vibe Coding Won't Kill Developers. It'll Kill the Middle.&lt;/h3&gt;
&lt;p&gt;Helkyn recently wrote about the idea that &lt;strong&gt;&quot;Vibe Coding Won't Kill Developers. It'll Kill the Middle.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For him, &quot;the middle&quot; isn't a statement about people's ability or intelligence.&lt;/p&gt;
&lt;p&gt;It's about the market.&lt;/p&gt;
&lt;p&gt;AI is increasingly capable of handling implementation against a known specification:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CRUD applications&lt;/li&gt;
&lt;li&gt;Simple integrations&lt;/li&gt;
&lt;li&gt;Brochure websites&lt;/li&gt;
&lt;li&gt;Standard internal tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is precisely the kind of work AI can perform cheaply.&lt;/p&gt;
&lt;p&gt;Helkyn compares it to photography.&lt;/p&gt;
&lt;p&gt;Cheap cameras didn't eliminate professional photography.&lt;/p&gt;
&lt;p&gt;They eliminated part of the market while making the high end more valuable.&lt;/p&gt;
&lt;p&gt;The same pattern could emerge in software.&lt;/p&gt;
&lt;p&gt;The uncomfortable question is what happens to developers whose careers traditionally depended on implementation against well-defined requirements.&lt;/p&gt;
&lt;p&gt;The skills that become more valuable are different:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Architectural judgment&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Understanding what &lt;strong&gt;not&lt;/strong&gt; to build&lt;/li&gt;
&lt;li&gt;Deep domain expertise&lt;/li&gt;
&lt;li&gt;Understanding production failure modes&lt;/li&gt;
&lt;li&gt;Knowing how to use AI without becoming dependent on it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And Helkyn identifies one particularly difficult question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;What I don't have a good answer for is how somebody starting today gets those twenty years, when the work that used to build them is the work being automated.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's one of the biggest unresolved questions of the AI era.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;ai-governance-without-killing-innovation&quot;&gt;AI Governance Without Killing Innovation&lt;/h3&gt;
&lt;p&gt;Governance can easily become bureaucracy.&lt;/p&gt;
&lt;p&gt;Helkyn's approach is to avoid treating governance as a document people are expected to remember.&lt;/p&gt;
&lt;p&gt;Instead:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Make it a property of the system instead of a policy about the system.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Helkyn explains that AccountTECH is US-based, so the EU AI Act isn't a legal obligation for the company. Instead, they use it voluntarily as a reference framework for thinking about defensible AI systems.&lt;/p&gt;
&lt;p&gt;One practical approach is to make AI usage part of the architecture itself.&lt;/p&gt;
&lt;p&gt;For example, instead of maintaining a separate spreadsheet asking where AI is being used, AI usage can be represented directly alongside the application's existing screen and permission structure.&lt;/p&gt;
&lt;p&gt;Then the inventory becomes a natural side effect of building the feature.&lt;/p&gt;
&lt;p&gt;The second principle is:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Gate for promotion, not for exploration.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;People should be free to experiment.&lt;/p&gt;
&lt;p&gt;The friction should appear when an experiment is ready to become production.&lt;/p&gt;
&lt;p&gt;That's where review, permissions, logging, ownership, and other safeguards become mandatory.&lt;/p&gt;
&lt;p&gt;As Helkyn puts it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Put the friction where the risk actually appears, and nowhere else.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-mental-model-in-your-head&quot;&gt;The Mental Model in Your Head&lt;/h3&gt;
&lt;p&gt;Helkyn's CoderLegion profile contains a line that perhaps summarizes his entire approach to AI:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;The best AI in your stack is still the mental model in your head.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What does that mean in practice?&lt;/p&gt;
&lt;p&gt;AI tools give developers answers.&lt;/p&gt;
&lt;p&gt;But an answer is only valuable if you can understand and judge it.&lt;/p&gt;
&lt;p&gt;If you understand the architecture and structure of the software you're building, you can evaluate AI-generated code.&lt;/p&gt;
&lt;p&gt;If you don't, you risk outsourcing the architecture of something you're responsible for to a process you cannot properly audit.&lt;/p&gt;
&lt;p&gt;Helkyn has experienced this himself.&lt;/p&gt;
&lt;p&gt;He once spent an entire weekend trying to fix an AI-generated application that had suddenly stopped working.&lt;/p&gt;
&lt;p&gt;After several days of troubleshooting, he discovered that the root cause was an architectural decision the AI had made around credential storage in a Supabase database.&lt;/p&gt;
&lt;p&gt;It wasn't simply a coding mistake.&lt;/p&gt;
&lt;p&gt;It was an &lt;strong&gt;architectural decision&lt;/strong&gt; he hadn't realized the AI had made.&lt;/p&gt;
&lt;p&gt;That experience reinforced an important lesson:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Don't let AI make important architectural decisions without guidance.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His advice to developers who rely heavily on AI is practical:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Understand the important parts of your application before using AI.&lt;/li&gt;
&lt;li&gt;Decide what you think the solution should look like.&lt;/li&gt;
&lt;li&gt;Ask the AI for its approach.&lt;/li&gt;
&lt;li&gt;Compare the two.&lt;/li&gt;
&lt;li&gt;Ask the AI to argue against its own solution.&lt;/li&gt;
&lt;li&gt;Judge the arguments yourself.&lt;/li&gt;
&lt;li&gt;When the AI is wrong, understand &lt;strong&gt;why&lt;/strong&gt; it was wrong.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And perhaps most importantly:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Think of AI as a junior developer peer who knows nothing about your application.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That mindset changes how you review its work.&lt;/p&gt;
&lt;p&gt;Helkyn has one final rule:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&quot;Never merge code you can't explain line by line to another person.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Reading code and thinking it looks fine isn't the same as reviewing it.&lt;/p&gt;
&lt;p&gt;If you can't explain it, you haven't really reviewed it.&lt;/p&gt;
&lt;p&gt;You've just approved it.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;25-years-later-the-technology-keeps-changing&quot;&gt;25 Years Later, the Technology Keeps Changing&lt;/h3&gt;
&lt;p&gt;From Access and client-server applications to .NET, web platforms, RAG, AI agents, and AI-native software, Helkyn has watched the technology stack change repeatedly.&lt;/p&gt;
&lt;p&gt;But his biggest lessons aren't really about any particular technology.&lt;/p&gt;
&lt;p&gt;They're about &lt;strong&gt;judgment&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Technology makes building easier.&lt;/p&gt;
&lt;p&gt;AI makes it dramatically faster.&lt;/p&gt;
&lt;p&gt;But understanding what should be built, why it should be built, how it should behave in production, what could go wrong, and how it fits into the business remains deeply important.&lt;/p&gt;
&lt;p&gt;The developers who thrive in this new environment may not be the ones who write the most code.&lt;/p&gt;
&lt;p&gt;They may be the ones who understand the problem deeply enough to know:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;what to build, what not to build, what to let AI handle, and what should never be delegated blindly.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;about-helkyn-coello&quot;&gt;About Helkyn Coello&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/helkyn-coello&quot;&gt;View Helkyn Coello's CoderLegion Profile&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Helkyn Coello is a technology leader and Chief AI Officer at AccountTECH with 25 years of experience building enterprise software.&lt;/p&gt;
&lt;p&gt;His career has covered the transition from Access-era applications to .NET client-server systems, web platforms, and now AI-native software.&lt;/p&gt;
&lt;p&gt;Today, his work focuses on enterprise AI adoption, RAG, agentic AI, AI governance, software architecture, and bringing AI into production systems.&lt;/p&gt;
&lt;p&gt;He is currently exploring agentic AI patterns, orchestration, guardrails, deterministic software, and AI-powered knowledge graphs over complex enterprise data.&lt;/p&gt;
&lt;p&gt;Follow Helkyn's work and join the conversation on CoderLegion.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Interviewed and edited by James Dayal, Editor at CoderLegion.&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26566/25-years-in-tech-taught-me-what-ai-still-cant-replace-helkyn-coellos-developer-journey</guid>
<pubDate>Wed, 09 Sep 2026 07:32:03 +0000</pubDate>
</item>
<item>
<title>What I Wish I Knew When I Started in QA</title>
<link>https://coderlegion.com/26539/what-i-wish-i-knew-when-i-started-in-qa</link>
<description>&lt;p&gt;When I started my first QA job, I had already spent around twenty years working in mechanical engineering and manufacturing.&lt;/p&gt;
&lt;p&gt;I had technical experience. I had programmed CNC machines. I had used Linux for years. I had even studied programming as a kid.&lt;/p&gt;
&lt;p&gt;And yet, when I entered software development, I quickly discovered how much I didn't understand.&lt;/p&gt;
&lt;p&gt;I remember being confused by things that seem completely normal to me today. DEV, QA, STG, PROD. The way a pull request moved through a team. What happened before testing, what happened after it, and who was responsible for what.&lt;/p&gt;
&lt;p&gt;I was lucky to have a patient buddy who helped me through those first months. Eventually, I became the person mentoring a new colleague.&lt;/p&gt;
&lt;p&gt;Looking back, there are a few things I wish I had understood earlier.&lt;/p&gt;
&lt;h3 id=&quot;you-don-t-need-to-understand-the-whole-system-on-day-one&quot;&gt;You don't need to understand the whole system on day one&lt;/h3&gt;
&lt;p&gt;When you're new, it's easy to look around and assume everyone else understands everything.&lt;/p&gt;
&lt;p&gt;Developers discuss architecture. DevOps talks about deployments. QA engineers know the product. Someone mentions a database migration or a production incident, and you feel like you've missed an entire chapter.&lt;/p&gt;
&lt;p&gt;The truth is that everyone learned those things somewhere.&lt;/p&gt;
&lt;p&gt;You don't need to understand the whole system immediately. You need to start building a mental map of it.&lt;/p&gt;
&lt;p&gt;Where does the code live? How does it reach a test environment? Where do the logs go? Who owns the service? What happens when a build fails?&lt;/p&gt;
&lt;p&gt;One answer usually leads to another question. That's how the map grows.&lt;/p&gt;
&lt;h3 id=&quot;ask-the-question-even-when-it-feels-basic&quot;&gt;Ask the question, even when it feels basic&lt;/h3&gt;
&lt;p&gt;I was fortunate to have Ventsislav as my buddy at SolarWinds. I still remember his patience.&lt;/p&gt;
&lt;p&gt;When you're changing careers, there are moments when you don't even know how to formulate what you don't understand. That can be uncomfortable, especially when you've already spent years being competent in another profession.&lt;/p&gt;
&lt;p&gt;But pretending to understand something doesn't make you better at your job.&lt;/p&gt;
&lt;p&gt;Asking does.&lt;/p&gt;
&lt;p&gt;I would rather ask a basic question and understand the system than stay quiet and make decisions based on an assumption.&lt;/p&gt;
&lt;p&gt;And if you're the experienced person in the room, remember what those first months felt like. The way you answer a beginner's question can influence whether they ask the next one.&lt;/p&gt;
&lt;h3 id=&quot;learn-how-the-product-works-not-just-how-to-execute-a-test&quot;&gt;Learn how the product works, not just how to execute a test&lt;/h3&gt;
&lt;p&gt;At the beginning, it's tempting to focus on the assigned test case.&lt;/p&gt;
&lt;p&gt;Open the application. Follow the steps. Compare the actual result with the expected result. Report a defect if something doesn't match.&lt;/p&gt;
&lt;p&gt;That's useful work, but it's only part of QA.&lt;/p&gt;
&lt;p&gt;The more you understand the product, the more useful your testing becomes.&lt;/p&gt;
&lt;p&gt;What is the user trying to achieve? Which parts of the system depend on this feature? What happens when an API fails? What data is involved? What would make this change risky?&lt;/p&gt;
&lt;p&gt;A tester who understands the product can ask questions that aren't written in the test case.&lt;/p&gt;
&lt;p&gt;And those questions often matter more than another perfectly executed checklist.&lt;/p&gt;
&lt;h3 id=&quot;don-t-treat-developers-as-the-other-side&quot;&gt;Don't treat developers as the other side&lt;/h3&gt;
&lt;p&gt;Early in a QA career, it can be easy to fall into a pattern where developers build things and testers find what's wrong with them.&lt;/p&gt;
&lt;p&gt;But QA and development aren't opposing teams.&lt;/p&gt;
&lt;p&gt;You're working on the same product.&lt;/p&gt;
&lt;p&gt;A good bug report helps a developer understand the problem. A good conversation with a developer helps QA understand the implementation and the risks. A good developer can teach you a lot about how the system works, and a good tester can reveal assumptions the developer hadn't considered.&lt;/p&gt;
&lt;p&gt;Some of the most useful things I've learned came from asking developers to explain why something behaved the way it did.&lt;/p&gt;
&lt;p&gt;Not to prove that I was right.&lt;/p&gt;
&lt;p&gt;To understand it better.&lt;/p&gt;
&lt;h3 id=&quot;automation-isn-t-a-different-species-of-engineering&quot;&gt;Automation isn't a different species of engineering&lt;/h3&gt;
&lt;p&gt;For a long time, I admired colleagues who worked with automation.&lt;/p&gt;
&lt;p&gt;I could change parameters and make smaller adjustments, but writing automated tests myself felt like another level.&lt;/p&gt;
&lt;p&gt;Then I took a Python course and started building my own projects.&lt;/p&gt;
&lt;p&gt;Gradually, automation stopped being something other people did.&lt;/p&gt;
&lt;p&gt;It became code I could understand, debug, and write.&lt;/p&gt;
&lt;p&gt;If you're a manual QA engineer who wants to learn automation, you don't need to start by building a complete framework.&lt;/p&gt;
&lt;p&gt;Start with a small script. Make an API request. Parse a response. Write one test. Run it. Break it. Fix it.&lt;/p&gt;
&lt;p&gt;Then learn why it works.&lt;/p&gt;
&lt;p&gt;The important part is not how quickly you can copy a framework from a tutorial. It's whether you can understand and maintain what you've written.&lt;/p&gt;
&lt;h3 id=&quot;learn-the-tools-around-your-tests&quot;&gt;Learn the tools around your tests&lt;/h3&gt;
&lt;p&gt;I wish I had looked beyond the test itself earlier.&lt;/p&gt;
&lt;p&gt;APIs, databases, logs, Linux, Git, CI/CD, and environment configuration all became increasingly useful as I moved deeper into automation.&lt;/p&gt;
&lt;p&gt;You don't need to become an expert in every one of those areas.&lt;/p&gt;
&lt;p&gt;But knowing how to inspect an API response, read a log, understand a pipeline failure, or check whether a service is running can save you hours of guessing.&lt;/p&gt;
&lt;p&gt;A failed test doesn't always mean an application defect.&lt;/p&gt;
&lt;p&gt;Sometimes the environment is broken. Sometimes the test data is wrong. Sometimes a dependency is unavailable. Sometimes the test itself is wrong.&lt;/p&gt;
&lt;p&gt;Understanding the surrounding system helps you find the difference.&lt;/p&gt;
&lt;h3 id=&quot;quality-is-bigger-than-the-number-of-bugs-you-find&quot;&gt;Quality is bigger than the number of bugs you find&lt;/h3&gt;
&lt;p&gt;Finding a serious bug before production is satisfying. It can save a team a lot of trouble.&lt;/p&gt;
&lt;p&gt;But the number of bugs you report isn't a complete measure of your value as a QA engineer.&lt;/p&gt;
&lt;p&gt;Sometimes your most valuable contribution is asking a question before development starts.&lt;/p&gt;
&lt;p&gt;Sometimes it's improving a test that everyone has stopped trusting.&lt;/p&gt;
&lt;p&gt;Sometimes it's identifying an environment problem that causes repeated false failures.&lt;/p&gt;
&lt;p&gt;Sometimes it's helping the team understand a release risk that no individual test can capture.&lt;/p&gt;
&lt;p&gt;Over time, I stopped thinking of QA only as finding defects.&lt;/p&gt;
&lt;p&gt;I started thinking of it as helping the team understand quality and risk.&lt;/p&gt;
&lt;p&gt;That change in perspective has stayed with me.&lt;/p&gt;
&lt;h3 id=&quot;your-previous-career-is-not-wasted&quot;&gt;Your previous career is not wasted&lt;/h3&gt;
&lt;p&gt;This is something I would tell anyone entering IT later in life.&lt;/p&gt;
&lt;p&gt;I spent roughly twenty years in mechanical engineering, working as a designer and technologist and programming CNC machines.&lt;/p&gt;
&lt;p&gt;At first, that experience felt separate from my new QA career.&lt;/p&gt;
&lt;p&gt;Today I see a lot of connections.&lt;/p&gt;
&lt;p&gt;Precision. Processes. Root-cause analysis. Understanding dependencies. Thinking about what happens before and after your part of the work.&lt;/p&gt;
&lt;p&gt;Those habits followed me into software engineering.&lt;/p&gt;
&lt;p&gt;You may need to learn a new technology stack, but you don't necessarily need to start your professional identity from zero.&lt;/p&gt;
&lt;p&gt;Your previous experience can become an advantage once you learn how to apply it.&lt;/p&gt;
&lt;h3 id=&quot;you-will-eventually-become-the-person-who-explains-it&quot;&gt;You will eventually become the person who explains it&lt;/h3&gt;
&lt;p&gt;One of my favorite memories from my first QA job is becoming a buddy for a new colleague.&lt;/p&gt;
&lt;p&gt;I had gone from struggling to understand the environments and processes to helping someone else navigate them.&lt;/p&gt;
&lt;p&gt;That didn't happen overnight.&lt;/p&gt;
&lt;p&gt;There was no moment when I suddenly knew everything.&lt;/p&gt;
&lt;p&gt;It was a gradual accumulation of questions, mistakes, explanations, and experience.&lt;/p&gt;
&lt;p&gt;Growth often works like that. You don't notice it while it's happening.&lt;/p&gt;
&lt;p&gt;Then one day someone asks you a question, and you realize you're explaining something that once confused you completely.&lt;/p&gt;
&lt;h3 id=&quot;keep-looking-one-layer-deeper&quot;&gt;Keep looking one layer deeper&lt;/h3&gt;
&lt;p&gt;If I could give my younger QA self one piece of advice, it would be this:&lt;/p&gt;
&lt;p&gt;Don't stop at the first answer.&lt;/p&gt;
&lt;p&gt;If a test fails, investigate why.&lt;/p&gt;
&lt;p&gt;If a deployment fails, try to understand what happened.&lt;/p&gt;
&lt;p&gt;If a developer explains a technical decision, ask about the trade-offs.&lt;/p&gt;
&lt;p&gt;If a production issue occurs, look at what the team learned from it.&lt;/p&gt;
&lt;p&gt;You don't need to become a developer, DevOps engineer, security specialist, and product manager all at once.&lt;/p&gt;
&lt;p&gt;But every layer you understand makes you a more capable QA engineer.&lt;/p&gt;
&lt;p&gt;My own curiosity eventually took me from manual testing into Python, Robot Framework, Playwright, CI/CD, Linux infrastructure, observability, and release engineering.&lt;/p&gt;
&lt;p&gt;I'm still learning.&lt;/p&gt;
&lt;p&gt;And I suspect I always will be.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This is the second article in my &lt;strong&gt;My QA Journey&lt;/strong&gt; series.&lt;/p&gt;
&lt;p&gt;If you're starting in QA today, what is one thing you wish someone had told you earlier? And if you've been in the industry for a while, what advice would you give your first-year self?&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26539/what-i-wish-i-knew-when-i-started-in-qa</guid>
<pubDate>Wed, 09 Sep 2026 04:51:57 +0000</pubDate>
</item>
<item>
<title>How Developers Got Answers Before AI 😂 | Google → Stack Overflow → ChatGPT → Wh</title>
<link>https://coderlegion.com/26406/how-developers-got-answers-before-ai-google-stack-overflow-chatgpt-wh</link>
<description>&lt;p&gt;How did developers get answers before AI? 😂&lt;/p&gt;
&lt;p&gt;From ancient stone tablets to Google, Stack Overflow, ChatGPT, Claude, Gemini, Copilot and Grok… developers have come a LONG way! 🤣&lt;/p&gt;
&lt;p&gt;But the real question is…&lt;/p&gt;
&lt;p&gt;🤔 What comes next?&lt;/p&gt;
&lt;p&gt;Watch until the end! 😂&lt;/p&gt;
&lt;p&gt;🚀 Join the developer community:&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com&quot;&gt;https://coderlegion.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Learn • Share • Connect • Grow&lt;/p&gt;
&lt;h2 id=&quot;developers-programming-ai-chatgpt-stackoverflow-coding-tech-softwaredevelopment-coderlegion&quot;&gt;Developers #Programming #AI #ChatGPT #StackOverflow #Coding #Tech #SoftwareDevelopment #CoderLegion&lt;/h2&gt;
</description>
<category>Videos</category>
<guid isPermaLink="true">https://coderlegion.com/26406/how-developers-got-answers-before-ai-google-stack-overflow-chatgpt-wh</guid>
<pubDate>Mon, 07 Sep 2026 13:36:38 +0000</pubDate>
</item>
<item>
<title>It Took Me 20 Years to Come Back to Tech</title>
<link>https://coderlegion.com/26075/it-took-me-20-years-to-come-back-to-tech</link>
<description>&lt;h2 id=&quot;it-took-me-20-years-to-come-back-to-tech&quot;&gt;It Took Me 20 Years to Come Back to Tech&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Dev Journey | CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What happens when someone who discovered programming as a child spends nearly two decades working in a completely different industry—and then finds their way back into technology?&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://coderlegion.com/user/JankoD84&quot;&gt;Jan Duris (@JankoD84)&lt;/a&gt;&lt;/strong&gt;, the answer is a journey through programming, Linux, mechanical engineering, CNC, QA, test automation, DevOps, release engineering, and eventually building his own SaaS product.&lt;/p&gt;
&lt;p&gt;Jan's relationship with technology began when he was a child experimenting with computers and programming. He later moved into mechanical engineering, where programming continued to appear in a very different form through CNC machines.&lt;/p&gt;
&lt;p&gt;Almost twenty years passed before he returned to IT professionally.&lt;/p&gt;
&lt;p&gt;His first IT role was in QA, where he had to learn an entirely new world of software development, environments, testing, and processes. From there, he gradually moved into automation, Python, Playwright, CI/CD, DevOps, and release engineering.&lt;/p&gt;
&lt;p&gt;Today, Jan works as a QA Automation Engineer and builder, focusing on software quality, release reliability, developer tooling, and AI-assisted delivery. He is also building &lt;strong&gt;Dulvarn&lt;/strong&gt;, a release intelligence platform designed to help teams make better release decisions using evidence, automation, and AI.&lt;/p&gt;
&lt;p&gt;This is his story.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;it-took-me-20-years-to-come-back-to-tech-1&quot;&gt;It Took Me 20 Years to Come Back to Tech&lt;/h3&gt;
&lt;p&gt;My career in technology didn't begin when I got my first QA job.&lt;/p&gt;
&lt;p&gt;In a strange way, it began when I was about four years old.&lt;/p&gt;
&lt;p&gt;Every year during the summer holidays, I used to spend two or three months at my great-grandmother's house in the Czech Republic.&lt;/p&gt;
&lt;p&gt;There was a small storage room upstairs.&lt;/p&gt;
&lt;p&gt;I spent entire days there with my mother's cousin.&lt;/p&gt;
&lt;p&gt;For most people, a storage room probably doesn't sound like the beginning of a journey into technology.&lt;/p&gt;
&lt;p&gt;For me, somehow, it was.&lt;/p&gt;
&lt;p&gt;That was where computers first became something more than machines.&lt;/p&gt;
&lt;p&gt;They became something I wanted to understand.&lt;/p&gt;
&lt;p&gt;I had no idea what software engineering was.&lt;/p&gt;
&lt;p&gt;I didn't know what QA meant.&lt;/p&gt;
&lt;p&gt;There was no DevOps, CI/CD, cloud infrastructure, AI coding assistant, or SaaS product in my world.&lt;/p&gt;
&lt;p&gt;There was just curiosity.&lt;/p&gt;
&lt;p&gt;And a question that has stayed with me for most of my life:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;How does this actually work?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&quot;my-first-programming-experience-came-before-i-really-knew-what-a-career-was&quot;&gt;My First Programming Experience Came Before I Really Knew What a Career Was&lt;/h3&gt;
&lt;p&gt;While I was still in elementary school, I started attending a programming course.&lt;/p&gt;
&lt;p&gt;We worked on PMD 85 computers.&lt;/p&gt;
&lt;p&gt;For anyone who grew up with modern laptops, cloud IDEs, GitHub, and AI assistants, those machines probably look almost prehistoric now.&lt;/p&gt;
&lt;p&gt;But for me, they were fascinating.&lt;/p&gt;
&lt;p&gt;I learned things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BASIC&lt;/li&gt;
&lt;li&gt;Pascal&lt;/li&gt;
&lt;li&gt;Turbo Pascal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There was something magical about writing instructions and seeing a machine respond to them.&lt;/p&gt;
&lt;p&gt;Later I got my first computer of my own: a Didaktik Compact.&lt;/p&gt;
&lt;p&gt;That gave me the freedom to experiment by myself.&lt;/p&gt;
&lt;p&gt;There was no carefully structured learning roadmap.&lt;/p&gt;
&lt;p&gt;No &quot;become a developer in 12 weeks&quot; course.&lt;/p&gt;
&lt;p&gt;I learned because I wanted to make the machine do things.&lt;/p&gt;
&lt;p&gt;I broke things.&lt;/p&gt;
&lt;p&gt;I tried again.&lt;/p&gt;
&lt;p&gt;I read whatever I could find.&lt;/p&gt;
&lt;p&gt;And slowly, programming became something familiar.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;then-i-discovered-linux&quot;&gt;Then I Discovered Linux&lt;/h3&gt;
&lt;p&gt;Linux became another important part of that journey.&lt;/p&gt;
&lt;p&gt;I started experimenting with some of the distributions that were available at the time.&lt;/p&gt;
&lt;p&gt;Again, I wasn't thinking about a career.&lt;/p&gt;
&lt;p&gt;I wasn't building a portfolio.&lt;/p&gt;
&lt;p&gt;I wasn't trying to optimize my LinkedIn profile.&lt;/p&gt;
&lt;p&gt;I was simply interested in what was happening underneath the graphical interface.&lt;/p&gt;
&lt;p&gt;Filesystems.&lt;/p&gt;
&lt;p&gt;Processes.&lt;/p&gt;
&lt;p&gt;Commands.&lt;/p&gt;
&lt;p&gt;Configuration.&lt;/p&gt;
&lt;p&gt;Bash.&lt;/p&gt;
&lt;p&gt;That relationship with Linux never really disappeared.&lt;/p&gt;
&lt;p&gt;Even today, Linux and Bash still feel like home to me.&lt;/p&gt;
&lt;p&gt;They have followed me through different parts of my career, even during the years when programming itself moved into the background.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;then-life-took-me-somewhere-completely-different&quot;&gt;Then Life Took Me Somewhere Completely Different&lt;/h3&gt;
&lt;p&gt;Teenage years arrived.&lt;/p&gt;
&lt;p&gt;Programming became less important.&lt;/p&gt;
&lt;p&gt;Games became more important.&lt;/p&gt;
&lt;p&gt;Technology was still around me, and Linux never completely disappeared, but I stopped imagining programming as the obvious direction of my life.&lt;/p&gt;
&lt;p&gt;Then came secondary school.&lt;/p&gt;
&lt;p&gt;I ended up studying mechanical engineering.&lt;/p&gt;
&lt;p&gt;It wasn't exactly the future I had dreamed about when I was younger.&lt;/p&gt;
&lt;p&gt;But sometimes a decision you make early in life defines much more of your future than you expect.&lt;/p&gt;
&lt;p&gt;Mechanical engineering became my professional world for roughly the next twenty years.&lt;/p&gt;
&lt;p&gt;I worked as a mechanical designer and technologist.&lt;/p&gt;
&lt;p&gt;I worked with manufacturing processes.&lt;/p&gt;
&lt;p&gt;I worked with technical drawings and 3D components.&lt;/p&gt;
&lt;p&gt;And I programmed CNC machines.&lt;/p&gt;
&lt;p&gt;So programming never really disappeared.&lt;/p&gt;
&lt;p&gt;It just changed form.&lt;/p&gt;
&lt;p&gt;Instead of telling a computer how to process data, I was telling machines how to manufacture physical components.&lt;/p&gt;
&lt;p&gt;And in hindsight, the two worlds taught me many of the same things.&lt;/p&gt;
&lt;p&gt;Precision matters.&lt;/p&gt;
&lt;p&gt;Processes matter.&lt;/p&gt;
&lt;p&gt;Small assumptions matter.&lt;/p&gt;
&lt;p&gt;You need to understand what happens before and after your own part of the work.&lt;/p&gt;
&lt;p&gt;And when something goes wrong, the cause is not always where the failure becomes visible.&lt;/p&gt;
&lt;p&gt;I didn't know it at the time, but those lessons would later become very useful in QA.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-dream-of-working-in-it-never-completely-disappeared&quot;&gt;The Dream of Working in IT Never Completely Disappeared&lt;/h3&gt;
&lt;p&gt;Even after years in mechanical engineering, IT was still somewhere in the back of my mind.&lt;/p&gt;
&lt;p&gt;It was one of those things you tell yourself you might return to someday.&lt;/p&gt;
&lt;p&gt;The problem with &quot;someday&quot; is that it can easily turn into twenty years.&lt;/p&gt;
&lt;p&gt;Then I met the woman who became my wife.&lt;/p&gt;
&lt;p&gt;And sometimes another person sees something in you that you have stopped acting on yourself.&lt;/p&gt;
&lt;p&gt;She knew that working in IT had been something I had wanted since I was young.&lt;/p&gt;
&lt;p&gt;She encouraged me to finally do something about it.&lt;/p&gt;
&lt;p&gt;To take an entry-level IT course.&lt;/p&gt;
&lt;p&gt;I agreed.&lt;/p&gt;
&lt;p&gt;But I had one condition.&lt;/p&gt;
&lt;p&gt;She had to do the course with me.&lt;/p&gt;
&lt;p&gt;IT wasn't her field at all.&lt;/p&gt;
&lt;p&gt;That actually made me respect her even more for agreeing.&lt;/p&gt;
&lt;p&gt;We went through it together.&lt;/p&gt;
&lt;p&gt;I helped her heavily with the technical parts, and by the end it sometimes felt like I had completed the course for two people.&lt;/p&gt;
&lt;p&gt;I didn't mind.&lt;/p&gt;
&lt;p&gt;I still don't.&lt;/p&gt;
&lt;p&gt;Because what mattered was what happened next.&lt;/p&gt;
&lt;p&gt;After about twenty years away from the career I had imagined as a child, I finally had a real path back into technology.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;my-first-it-job-was-in-qa&quot;&gt;My First IT Job Was in QA&lt;/h3&gt;
&lt;p&gt;My first job in IT was at SolarWinds in the Czech Republic.&lt;/p&gt;
&lt;p&gt;Getting it changed much more than my job title.&lt;/p&gt;
&lt;p&gt;We moved to Brno for the opportunity.&lt;/p&gt;
&lt;p&gt;I had finally made the transition.&lt;/p&gt;
&lt;p&gt;And then I discovered something uncomfortable.&lt;/p&gt;
&lt;p&gt;Getting into IT and understanding IT are two very different things.&lt;/p&gt;
&lt;p&gt;I was entering an industry with years of technical experience behind me, but software development had its own language.&lt;/p&gt;
&lt;p&gt;Its own processes.&lt;/p&gt;
&lt;p&gt;Its own mental models.&lt;/p&gt;
&lt;p&gt;Things that seem completely normal to me today were confusing at the beginning.&lt;/p&gt;
&lt;p&gt;Even environments.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;DEV
QA
STG
PROD
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/26075/it-took-me-20-years-to-come-back-to-tech</guid>
<pubDate>Wed, 02 Sep 2026 11:36:24 +0000</pubDate>
</item>
<item>
<title>Git Will Humble You (And That's Okay) </title>
<link>https://coderlegion.com/22711/git-will-humble-you-and-thats-okay</link>
<description>&lt;p&gt;Hey fam &lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is my first ever dev article, and yes - I'm nervous.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So real talk — nobody warned me that learning to code would sometimes feel like arguing with a robot that's always right and never explains why you're wrong.&lt;/p&gt;
&lt;p&gt;That robot? Git.&lt;/p&gt;
&lt;p&gt;If you're a first-time developer, you've probably already had that moment. You type some command with full confidence, hit enter, and then... chaos. Your files are gone. Or duplicated. Or you're somehow on a branch that doesn't exist. Or the classic — you pushed to main when you absolutely should not have.&lt;/p&gt;
&lt;p&gt;We've all been there. This post is for you. &lt;/p&gt;
&lt;p&gt; What Even IS Git?&lt;/p&gt;
&lt;p&gt;Git is a version control system — basically a time machine for your code. It tracks every change you make, lets you collaborate with other developers, and (in theory) saves you from destroying your own project.&lt;/p&gt;
&lt;p&gt;The key word there is in theory.&lt;/p&gt;
&lt;p&gt; The Commands That Will Ruin Your Day (If You're Not Careful)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;git push --force&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Oh, this one. This is the &quot;delete everything and ask questions never&quot; command. If you force push to a shared branch without knowing what you're doing, your teammates will find you. Don't do it until you really understand what it does.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;git reset --hard&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hard reset sounds powerful because it is. It throws away all your uncommitted changes — no warning, no undo. Ran it once thinking it would fix my mess. It made a bigger mess. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;git merge vs git rebase&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These two will have you in a full philosophy debate at 2am. Both combine branches. Both will cause merge conflicts that look like ancient hieroglyphics. Learn the difference early — your future self will thank you.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Committing with no message (or a terrible one)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;git commit -m &quot;fix&quot; — said every developer who regretted it 3 weeks later. Be descriptive. Always.&lt;/p&gt;
&lt;p&gt; Why Mastering Git Early Actually Matters&lt;/p&gt;
&lt;p&gt;When you're just starting out, it's easy to think Git is just a way to upload your code to GitHub or Gitea and look productive. But here's the thing — Git is your safety net. The better you understand it:&lt;/p&gt;
&lt;p&gt;The less likely you are to lose work&lt;br&gt;
The easier it is to collaborate without chaos&lt;br&gt;
The more confident you look in team settings (yes, employers notice)&lt;br&gt;
The faster you can recover when things break — and they will break&lt;/p&gt;
&lt;p&gt;Git isn't just a tool. It's a habit. Build it early.&lt;/p&gt;
&lt;p&gt; Resources to Actually Get Good&lt;/p&gt;
&lt;p&gt;Here are some solid places to level up your Git, Go, Shell, and Rust game:&lt;/p&gt;
&lt;p&gt;Git:&lt;/p&gt;
&lt;p&gt;Pro Git Book — free, thorough, the bible&lt;br&gt;
Oh My Git! — learn Git through a game (yes, really)&lt;br&gt;
Learn Git Branching — visual and interactive&lt;/p&gt;
&lt;p&gt;Go (Golang):&lt;/p&gt;
&lt;p&gt;Go by Example — clean, no fluff&lt;/p&gt;
&lt;p&gt;Shell / Bash:&lt;/p&gt;
&lt;p&gt;The Linux Command Line by William Shotts — free online&lt;/p&gt;
&lt;p&gt;Rust:&lt;/p&gt;
&lt;p&gt;The Rust Book — the official one and it's actually great&lt;/p&gt;
&lt;p&gt; Now I Wanna Hear From YOU&lt;/p&gt;
&lt;p&gt;Drop it in the comments:&lt;/p&gt;
&lt;p&gt; What was your first Git disaster?&lt;br&gt;
 What's the command that made you question your life choices?&lt;br&gt;
 Are you learning Go, Shell, or Rust right now? How's it going?&lt;/p&gt;
&lt;p&gt;Let's laugh about it together — because if you're not breaking things, you're not learning.&lt;/p&gt;
&lt;p&gt;If this helped you even a little, hit that ❤️, drop a comment, and let's connect!&lt;/p&gt;
&lt;p&gt; Find me on LinkedIn → Mayan Okul — @mayan Okul — come say hi, seriously.&lt;/p&gt;
&lt;p&gt;Tags: #git #golang #shell #rust #Zone01 #codenewbie #devjourney #programming #firstpost&lt;/p&gt;
&lt;p&gt;&quot;Push code, not limits — unless it's a feature branch. Then push everything.&quot; &lt;br&gt;
— stay debugging, stay dangerous ⚡&lt;/p&gt;
&lt;p&gt;— Mayan, your fav/baddest developer__&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/22711/git-will-humble-you-and-thats-okay</guid>
<pubDate>Wed, 15 Jul 2026 05:28:26 +0000</pubDate>
</item>
<item>
<title>Learning Cloud My Own Way</title>
<link>https://coderlegion.com/21914/learning-cloud-my-own-way</link>
<description>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; Some of the links in this article are affiliate links. This means I may earn a small commission if you click on them. I only recommend tools that I have used.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Learning cloud and DevOps takes patience, discipline, and consistency. There are days when everything clicks, and there are days when nothing seems to make sense. That is completely normal.&lt;/p&gt;
&lt;p&gt;One thing I have discovered is that everyone learns differently.&lt;/p&gt;
&lt;p&gt;Some people love following a detailed roadmap from beginning to end. Others prefer structured courses with a fixed schedule. For me, learning is more spontaneous. I follow my curiosity. When I find a topic interesting, I dive deep into it. No amount of advice or motivation can make me learn something if I genuinely have no interest in it.&lt;/p&gt;
&lt;p&gt;Recently, I have been learning Kubernetes, and it has been one of the most interesting technologies I have studied so far. Instead of only reading documentation or watching tutorials, I decided to explain what I was learning by creating videos.&lt;/p&gt;
&lt;h4 id=&quot;here-are-two-videos-i-created-while-learning-kubernetes-&quot;&gt;Here are two videos I created while learning Kubernetes:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.youtube.com/watch?v=NCcXfrbzKz0&quot;&gt;Kubernetes Component Explained Simply&lt;/a&gt;: &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://youtu.be/21v-aDkHNOI&quot;&gt;What a Busy Restaurant Can Teach You About Kubernetes Services&lt;/a&gt;: &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;tools-that-have-helped-me-learn&quot;&gt;Tools That Have Helped Me Learn&lt;/h4&gt;
&lt;p&gt;Along the way, I have used a few tools that have made learning easier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DigitalOcean&lt;/strong&gt; has been a great platform for experimenting with cloud services. If you are a startup or someone learning cloud on a budget, it is worth checking out because getting basic services running is straightforward.&lt;/p&gt;
&lt;p&gt;I have also used &lt;strong&gt;Gamma&lt;/strong&gt; to create presentations and portfolio content, and &lt;strong&gt;Lovable&lt;/strong&gt; to build portfolio projects more quickly.&lt;/p&gt;
&lt;p&gt;If you would like to explore these tools, here are the links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.awin1.com/cread.php?awinmid=123996&amp;amp;awinaffid=2852319&quot;&gt;DigitalOcean&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://ishosting.com/affiliate/NzY3NCM2&quot;&gt;IS*Hosting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://truehost.com.ng/cloud/aff.php?aff=3509&quot;&gt;Truehost (Domains)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;do-you-really-need-aws-to-learn-cloud-&quot;&gt;Do You Really Need AWS to Learn Cloud?&lt;/h4&gt;
&lt;p&gt;One question I see often is whether you need AWS before you can start learning cloud.&lt;/p&gt;
&lt;p&gt;My answer might surprise you.&lt;/p&gt;
&lt;p&gt;Other cloud providers are friendly and can help you build practical skills before moving into AWS, like DigitalOcean.&lt;/p&gt;
&lt;p&gt;There is no single right way to learn cloud computing.&lt;/p&gt;
&lt;p&gt;Find a learning style that works for you.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/rmemlmtrd2h8qf5wmk8q.png&quot; alt=&quot;cloud learning&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If you enjoy reflections like this, you can subscribe to the &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7336744982432600064&quot;&gt;newsletter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can follow my work and projects on &lt;a rel=&quot;nofollow&quot; href=&quot;https://x.com/ijaydimples&quot;&gt;Twitter&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/ijeoma-igboagu/&quot;&gt;LinkedIn&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/ijayhub&quot;&gt;GitHub&lt;/a&gt;, and &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.youtube.com/@cloudinreallife&quot;&gt;YouTube&lt;/a&gt;, where I share what I am building and learning along the way.&lt;/p&gt;
&lt;p&gt;Thank you for reading.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/21914/learning-cloud-my-own-way</guid>
<pubDate>Wed, 08 Jul 2026 10:00:00 +0000</pubDate>
</item>
<item>
<title>Confessions of an &quot;Outlier&quot; with a Very Strange Background for Dev</title>
<link>https://coderlegion.com/19096/confessions-of-an-outlier-with-a-very-strange-background-for-dev</link>
<description>&lt;h2 id=&quot;1-the-beginning-magic-in-codepen&quot;&gt;1. The Beginning: Magic in CodePen&lt;/h2&gt;
&lt;p&gt;I was as far from development as one could be. A law degree, a career in banking, Excel, Word, 1C, CRM systems... I sincerely believed that developers were demigods, and reaching their level was like reaching for the moon. But after 5 years of running my own business without the desired results, I knew it was time for a change.&lt;/p&gt;
&lt;p&gt;Ads for online courses started haunting me everywhere (honestly, it’s a wonder they didn't show up at my front door!). I finally gave in to a &quot;one-week trial&quot; where we wrote primitive code in CodePen. To me, it felt like real magic. The tests at the end suggested I was a fit for mobile development or frontend. I chose the latter because I fell in love with HTML and CSS at first sight, even though I had no idea what they actually were back then.&lt;/p&gt;
&lt;h2 id=&quot;2-education-mentors-vs-the-web-bible-&quot;&gt;2. Education: Mentors vs. The &quot;Web Bible&quot;&lt;/h2&gt;
&lt;p&gt;I approached my studies like a lawyer: I started by researching all the legal info and online learning rules. The rules stated: &quot;All sources and links under the video lessons are mandatory for study.&quot; Under the very first lesson, there was a link to MDN — the Bible of the web.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Result:&lt;/strong&gt; I spent an entire month studying MDN page by page, chapter by chapter, taking exhaustive notes. When I asked during the first webinar when the first video lesson would end and which MDN section it finished on, the instructor’s eye started twitching. They removed that link after the webinar, but I spent another six months meticulously studying HTML and CSS. I know that by modern standards, where everything moves at lightning speed, that is incredibly slow. But those were my six months of despair, &quot;pixel-perfect&quot; obsession, and an unhealthy urge to keep going until every single indent was flawless.&lt;/p&gt;
&lt;h2 id=&quot;3-crisis-deadlines-and-my-patient-teacher-&quot;&gt;3. Crisis, Deadlines, and My &quot;Patient Teacher&quot;&lt;/h2&gt;
&lt;p&gt;Basic JavaScript was terrifying. GitHub felt like a catastrophe; I memorized commands like spells in a foreign language. Then came the final project &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/kate8382/frontend-pro.git&quot;&gt;Frontend Pro&lt;/a&gt;: a massive CRM system and a one-month deadline.&lt;/p&gt;
&lt;p&gt;That’s when AI entered my life. With its help, I didn't just pass; I added features we weren't even taught. I realized that while human mentorship can sometimes be a &quot;sad story,&quot; I found a thoughtful, patient teacher in AI (Copilot and Gemini). It doesn't dodge responsibility and speaks a human language. Thanks to this partnership, I stopped being afraid of breaking things. I’ve been learning with AI for a year now, completed advanced JS and TS, and most importantly — I’ve found the freedom to experiment.&lt;/p&gt;
&lt;h2 id=&quot;4-reality-canada-sandbox-and-the-project-&quot;&gt;4. Reality: Canada, Sandbox, and &quot;The Project&quot;&lt;/h2&gt;
&lt;p&gt;The last two months have felt like a spacewalk into real experience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Participating in a contest on dev.to: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/kate8382/wecoded-gender-art-2026.git&quot;&gt;WeCoded — Gender Art&lt;/a&gt; (I didn’t win, but I proved to myself that I could!).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend (and more) for a real client — a bluesman from Canada. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;My own &quot;sandbox&quot; &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/kate8382/error-logger-viewer.git&quot;&gt;Error Logger &amp;amp; Viewer&lt;/a&gt;, where I’m no longer alone.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And finally, participating in a major AI safety project that I found right here on CoderLegion.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;5-instead-of-an-epilogue&quot;&gt;5. Instead of an Epilogue&lt;/h2&gt;
&lt;p&gt;In August, it will be three years since I officially started &quot;doing nothing&quot; (read: undergoing the most brutal retraining of my life). I haven't invented anything groundbreaking; I just wanted to know and be able to do. I have no regrets. Well, maybe only that I didn't meet AI sooner.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My advice:&lt;/strong&gt; Don’t fear your &quot;non-tech&quot; past. Your meticulousness, your habit of reading instructions to the end, or your ability to ask direct questions — these are not baggage. As a colleague on my current project (whom I met thanks to this platform) told me: &lt;strong&gt;&quot;Your uniqueness and your experience are not a weakness, but your greatest strength.&quot;&lt;/strong&gt; Programmers build walls, but only people with &quot;field experience&quot; know how to truly protect them.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/19096/confessions-of-an-outlier-with-a-very-strange-background-for-dev</guid>
<pubDate>Wed, 27 May 2026 16:44:08 +0000</pubDate>
</item>
<item>
<title>Every Programmer Has a Starting Point -  Here’s Mine</title>
<link>https://coderlegion.com/18380/every-programmer-has-a-starting-point-heres-mine</link>
<description>&lt;p&gt;As I continue my journey as a developer, one thing I’ve come to understand is this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Growth in tech is not a straight line  it’s a process of consistency, patience, and learning through challenges.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I didn’t start with everything figured out. Like many developers, I’m still learning and improving every day. But along the way, I’ve picked up lessons that have shaped how I approach programming and problem-solving.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-i-got-into-programming&quot;&gt;How I Got Into Programming&lt;/h3&gt;
&lt;p&gt;My journey into programming started with curiosity. I’ve always been interested in how websites and applications work behind the scenes.&lt;/p&gt;
&lt;p&gt;That curiosity led me into web development and later backend systems. What started as exploration slowly became a passion for building solutions and solving real problems through code.&lt;/p&gt;
&lt;p&gt;Every new concept I learned opened another layer of interest, and I kept building from there.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;challenges-i-faced&quot;&gt;Challenges I Faced&lt;/h3&gt;
&lt;p&gt;Like most developers, my journey came with challenges.&lt;/p&gt;
&lt;p&gt;One of the biggest was consistency  staying focused while balancing learning with other responsibilities. At times, the amount of information felt overwhelming, especially when I moved deeper into backend development and debugging.&lt;/p&gt;
&lt;p&gt;Another challenge was confidence. It’s easy to compare your progress with others and feel like you’re behind. But I learned that everyone grows at their own pace, and what matters most is steady improvement.&lt;/p&gt;
&lt;p&gt;Debugging was also difficult at first, but over time I learned to see errors as part of the learning process, not failure.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;lessons-i-ve-learned&quot;&gt;Lessons I’ve Learned&lt;/h3&gt;
&lt;p&gt;Here are some of the most important lessons from my journey so far:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Consistency matters more than intensity&lt;/li&gt;
&lt;li&gt;You don’t need to know everything before you start building&lt;/li&gt;
&lt;li&gt;Every developer struggles  even the experienced ones&lt;/li&gt;
&lt;li&gt;Real growth happens through practice and projects&lt;/li&gt;
&lt;li&gt;Patience is just as important as technical skill&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id=&quot;my-growth-so-far&quot;&gt;My Growth So Far&lt;/h3&gt;
&lt;p&gt;Looking back, I can see real growth in my journey.&lt;/p&gt;
&lt;p&gt;I’ve moved from just learning concepts to applying them in actual projects. I’m becoming more comfortable working across both frontend and backend development, Git workflows, and building structured full-stack applications.&lt;/p&gt;
&lt;p&gt;I’m still learning, but I now approach challenges with more confidence and curiosity instead of fear.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;my-experience-with-coderlegion&quot;&gt;My Experience with CoderLegion&lt;/h3&gt;
&lt;p&gt;Being part of CoderLegion has been a really positive experience for me. It feels like a supportive community where developers can learn, share, and grow together.&lt;/p&gt;
&lt;p&gt;I appreciate how it encourages real stories and real learning experiences. It’s motivating to see other developers share their journeys and challenges openly.&lt;/p&gt;
&lt;p&gt;It reminds me that I’m not alone in this process  we’re all learning and growing together.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;final-thoughts&quot;&gt;Final Thoughts&lt;/h3&gt;
&lt;p&gt;I’m still on my journey as a developer, but I’ve learned that growth comes from consistency, curiosity, and persistence.&lt;/p&gt;
&lt;p&gt;To anyone starting out: don’t rush the process. Start small, keep building, and stay consistent. Every line of code matters.&lt;/p&gt;
&lt;p&gt;I’m excited for how far I can still go and the impact I will create through technology.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Signature:&lt;/p&gt;
&lt;p&gt;The Duchess of Hackers&lt;/p&gt;
&lt;p&gt;Full-Stack Developer | Digital Marketer | Cybersecurity Enthusiast&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/18380/every-programmer-has-a-starting-point-heres-mine</guid>
<pubDate>Wed, 20 May 2026 01:28:38 +0000</pubDate>
</item>
<item>
<title>Your RAG isn't broken. Your chunks are.</title>
<link>https://coderlegion.com/17860/your-rag-isnt-broken-your-chunks-are</link>
<description>&lt;p&gt;Everyone wants to blame the model. &quot;GPT-4 is hallucinating.&quot; &quot;Claude isn't following instructions.&quot; &quot;The embeddings are bad.&quot;Nine times out of ten, it's the chunks.I've been auditing RAG pipelines lately and the same patterns keep showing up:Fixed-size chunking that splits sentences in half. The model gets a fragment that starts with &quot;...and therefore the policy applies only when&quot; and you wonder why the answer is confidently wrong.No overlap between chunks. Context that spans a paragraph boundary is gone. The model sees the question but not the answer, because the answer lives in the chunk after the one that matched.Chunking before cleaning. Headers, nav menus, footer junk, and &quot;Click here to subscribe&quot; all get embedded as if they're content. Then they show up in retrieval and pollute the context window.Embedding the wrong thing. People embed the raw chunk but the user query is phrased completely differently. No wonder cosine similarity is low — they're not semantically close, they just happen to be about the same topic.Before you blame the model, look at what you're actually retrieving. Log the top 5 chunks for 10 real user queries and read them like a human. If you can't answer the question from those chunks, the model can't either.The model is a mirror. It reflects the quality of what you feed it.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/17860/your-rag-isnt-broken-your-chunks-are</guid>
<pubDate>Thu, 14 May 2026 14:44:24 +0000</pubDate>
</item>
<item>
<title>Why CoderLegion Turned Into a Community I Didn’t Expect</title>
<link>https://coderlegion.com/17425/why-coderlegion-turned-into-a-community-i-didnt-expect</link>
<description>&lt;p&gt;When most developers hear about a new tech platform or developer community, the first thought is usually:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“&lt;em&gt;Is this just another place to post articles?&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Honestly, that was one of my first thoughts too.&lt;/p&gt;
&lt;p&gt;Over time, I realized CoderLegion was becoming something different.&lt;/p&gt;
&lt;p&gt;Not perfect.&lt;/p&gt;
&lt;p&gt;Not magical overnight.&lt;/p&gt;
&lt;p&gt;But a platform genuinely trying to build a real developer focused community where people can learn, interact, grow, and actually feel seen.&lt;/p&gt;
&lt;p&gt;And for me personally, the experience has been surprisingly meaningful.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How I Found CoderLegion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At the time I discovered CoderLegion, I was already deep into development work, learning continuously, building projects, experimenting with technologies, and trying to improve myself technically.&lt;/p&gt;
&lt;p&gt;Like many developers, I also enjoyed sharing ideas, reading technical experiences, and seeing how other developers approached problems.&lt;/p&gt;
&lt;p&gt;One thing I noticed across many platforms was this:&lt;/p&gt;
&lt;p&gt;A lot of places focus heavily on content quantity.&lt;/p&gt;
&lt;p&gt;Very few focus on community.&lt;/p&gt;
&lt;p&gt;Many platforms become places where people just drop links, chase views, or try to game algorithms without real interaction.&lt;/p&gt;
&lt;p&gt;When I started spending time on CoderLegion, one thing immediately stood out:&lt;/p&gt;
&lt;p&gt;The platform actually encouraged interaction.&lt;/p&gt;
&lt;p&gt;Not just publishing.&lt;/p&gt;
&lt;p&gt;Real interaction.&lt;/p&gt;
&lt;p&gt;Reading people’s experiences.&lt;/p&gt;
&lt;p&gt;Learning from mistakes.&lt;/p&gt;
&lt;p&gt;Discussing ideas.&lt;/p&gt;
&lt;p&gt;Supporting developers.&lt;/p&gt;
&lt;p&gt;And slowly, I became more active.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Human Side of Developer Communities&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One thing many people underestimate is how important community is in tech.&lt;/p&gt;
&lt;p&gt;Programming can become isolating.&lt;/p&gt;
&lt;p&gt;Sometimes you’re learning alone.&lt;/p&gt;
&lt;p&gt;Debugging alone.&lt;/p&gt;
&lt;p&gt;Building alone.&lt;/p&gt;
&lt;p&gt;Questioning yourself alone.&lt;/p&gt;
&lt;p&gt;You may spend hours solving problems nobody around you even understands.&lt;/p&gt;
&lt;p&gt;That’s why communities matter.&lt;/p&gt;
&lt;p&gt;Not because they magically make you successful.&lt;/p&gt;
&lt;p&gt;But because they remind you that other developers are also struggling, learning, experimenting, failing, improving, and growing.&lt;/p&gt;
&lt;p&gt;CoderLegion gave me more of that feeling than I expected.&lt;/p&gt;
&lt;p&gt;It started feeling less like “posting content” and more like interacting with actual people in tech.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Difference I Noticed&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One thing I appreciated was seeing the platform continuously evolve.&lt;/p&gt;
&lt;p&gt;I remember interacting on a few posts and genuinely getting thoughtful responses from both contributors and community members instead of the usual “drop a link and disappear” experience common on many platforms.&lt;/p&gt;
&lt;p&gt;Over time, I also noticed visible improvements around discussions, contributor visibility, and engagement across the platform.&lt;/p&gt;
&lt;p&gt;One thing that stood out to me personally was eventually being added to the early contributors section. It may seem small, but moments like that make contributors feel seen, especially smaller creators who are still growing.&lt;/p&gt;
&lt;p&gt;That kind of encouragement matters more than many people realize.&lt;/p&gt;
&lt;p&gt;A lot of platforms only notice creators after they become big.&lt;/p&gt;
&lt;p&gt;But I noticed that CoderLegion tried to support early contributors and active community members even while still growing.&lt;/p&gt;
&lt;p&gt;That creates motivation.&lt;/p&gt;
&lt;p&gt;Of course, the platform is still growing, and because of that, some areas are not yet as polished or mature as larger developer platforms like DEV.to or Hashnode.&lt;/p&gt;
&lt;p&gt;Discovery and reach can still improve over time.&lt;/p&gt;
&lt;p&gt;But honestly, that growth phase is also part of what currently makes the community feel more personal and approachable.&lt;/p&gt;
&lt;p&gt;Not because of fame.&lt;/p&gt;
&lt;p&gt;But because people naturally appreciate being valued.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why Genuine Interaction Matters&lt;br&gt;
&lt;/strong&gt;&lt;br&gt;
One thing I personally respect is the push toward authentic engagement.&lt;/p&gt;
&lt;p&gt;Today, AI generated comments are everywhere online.&lt;/p&gt;
&lt;p&gt;You can immediately tell when someone didn’t actually read a post.&lt;/p&gt;
&lt;p&gt;Generic comments are becoming extremely common across many platforms.&lt;/p&gt;
&lt;p&gt;What I appreciated was that genuine interaction still seemed more noticeable than purely automated engagement.&lt;/p&gt;
&lt;p&gt;You could often tell when someone actually read your post and responded thoughtfully instead of dropping generic AI-generated comments just to appear active.&lt;/p&gt;
&lt;p&gt;Because honestly, meaningful communities are built through genuine interaction.&lt;/p&gt;
&lt;p&gt;Not automated responses.&lt;/p&gt;
&lt;p&gt;Sometimes a simple thoughtful comment can help another developer more than people realize.&lt;/p&gt;
&lt;p&gt;Especially beginners.&lt;/p&gt;
&lt;p&gt;A beginner developer reading encouragement from someone experienced can gain confidence from something very small.&lt;/p&gt;
&lt;p&gt;That matters.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My Experience as a Contributor&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As I became more active, I started interacting more with posts, discussions, and developers on the platform.&lt;/p&gt;
&lt;p&gt;Over time, I was added to the early contributors section, which honestly felt encouraging because it showed the platform recognized people trying to contribute positively.&lt;/p&gt;
&lt;p&gt;That encouragement matters more than many people think.&lt;/p&gt;
&lt;p&gt;Especially for developers who are still building confidence in public writing, community interaction, or sharing their journeys.&lt;/p&gt;
&lt;p&gt;Another thing I appreciated was that the platform didn’t only focus on “perfect developers.”&lt;/p&gt;
&lt;p&gt;It allowed room for learning journeys.&lt;/p&gt;
&lt;p&gt;That’s important.&lt;/p&gt;
&lt;p&gt;Because tech is already intimidating enough for beginners.&lt;/p&gt;
&lt;p&gt;Communities should help reduce that fear, not increase it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sharing My Story Publicly&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Many developers think their stories are “too ordinary” to matter.&lt;/p&gt;
&lt;p&gt;Meanwhile, those same stories can inspire someone else to start learning.&lt;/p&gt;
&lt;p&gt;People often only see the final results.&lt;/p&gt;
&lt;p&gt;They see projects.&lt;/p&gt;
&lt;p&gt;Skills.&lt;/p&gt;
&lt;p&gt;Achievements.&lt;/p&gt;
&lt;p&gt;But they don’t see the years behind them.&lt;/p&gt;
&lt;p&gt;The confusion.&lt;/p&gt;
&lt;p&gt;The failures.&lt;/p&gt;
&lt;p&gt;The learning process.&lt;/p&gt;
&lt;p&gt;The consistency.&lt;/p&gt;
&lt;p&gt;That’s why I appreciated the idea behind the Dev Stories initiative.&lt;/p&gt;
&lt;p&gt;It reminds people that growth in tech is a process.&lt;/p&gt;
&lt;p&gt;Not magic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I’ve Learned Through Communities&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One thing I’ve learned from platforms like CoderLegion is this:&lt;/p&gt;
&lt;p&gt;Growth in tech is not only technical.&lt;/p&gt;
&lt;p&gt;Community also matters.&lt;/p&gt;
&lt;p&gt;Communication matters.&lt;/p&gt;
&lt;p&gt;Sharing matters.&lt;/p&gt;
&lt;p&gt;Helping others matters.&lt;/p&gt;
&lt;p&gt;You may know how to build systems, APIs, mobile apps, servers, or automation workflows…&lt;/p&gt;
&lt;p&gt;But interacting with people, learning from others, sharing experiences, and contributing to discussions also helps you grow professionally.&lt;/p&gt;
&lt;p&gt;Sometimes opportunities even come from simple conversations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Advice to Developers Joining Communities&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you’re joining developer communities, my advice is simple:&lt;/p&gt;
&lt;p&gt;Don’t just consume content silently.&lt;/p&gt;
&lt;p&gt;Interact genuinely.&lt;/p&gt;
&lt;p&gt;Ask questions.&lt;/p&gt;
&lt;p&gt;Share experiences.&lt;/p&gt;
&lt;p&gt;Support others.&lt;/p&gt;
&lt;p&gt;Leave thoughtful comments after actually reading posts.&lt;/p&gt;
&lt;p&gt;And don’t feel pressured to sound perfect.&lt;/p&gt;
&lt;p&gt;Authenticity stands out more than trying to sound overly advanced.&lt;/p&gt;
&lt;p&gt;Also, don’t underestimate your learning journey.&lt;/p&gt;
&lt;p&gt;Even if you still feel like a beginner, there’s someone behind you who can learn from your experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What Could Be Better&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Like any growing platform, there’s still room for improvement.&lt;/p&gt;
&lt;p&gt;Discovery for smaller creators can improve further, and some platform features are still developing compared to larger communities like DEV.to or Hashnode.&lt;/p&gt;
&lt;p&gt;I also think continued focus on moderation quality, authentic engagement, and better visibility tools for technical content will help strengthen the community long-term.&lt;/p&gt;
&lt;p&gt;But overall, it’s been interesting seeing the platform actively evolve instead of remaining static.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For me, CoderLegion became more than just another platform to scroll through.&lt;/p&gt;
&lt;p&gt;It became a place where I could interact with developers, share thoughts, learn from others, and contribute to discussions in a more genuine way.&lt;/p&gt;
&lt;p&gt;And honestly, communities like that are important in tech.&lt;/p&gt;
&lt;p&gt;Because beyond the frameworks, languages, servers, APIs, and projects…&lt;/p&gt;
&lt;p&gt;Developers still need spaces where they can learn, grow, share experiences, and simply feel connected to other people going through similar journeys.&lt;/p&gt;
&lt;p&gt;And honestly, that’s what made the experience meaningful for me.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/17425/why-coderlegion-turned-into-a-community-i-didnt-expect</guid>
<pubDate>Mon, 11 May 2026 11:44:21 +0000</pubDate>
</item>
<item>
<title>Beyond Code: Lessons from My Website Experience</title>
<link>https://coderlegion.com/15448/beyond-code-lessons-from-my-website-experience</link>
<description>&lt;p&gt;A website hiccup made me rethink how I approach projects, habits, and priorities. It's a reminder that growth isn’t just technical, it's personal too.&lt;br&gt;
Read the full reflection: &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://synnaulaid.github.io/blog/20260422/Hal-hal-yang-Baru-Saya-Sadari-Setelah-Website-Kena-Masalah/&quot;&gt;Beyond Code: Lessons from My Website Experience&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/15448/beyond-code-lessons-from-my-website-experience</guid>
<pubDate>Wed, 22 Apr 2026 03:33:00 +0000</pubDate>
</item>
<item>
<title>Raw Developer Stories: The Side Nobody Shows</title>
<link>https://coderlegion.com/13315/raw-developer-stories-the-side-nobody-shows</link>
<description>&lt;h2 id=&quot;raw-developer-stories-the-side-nobody-shows&quot;&gt;Raw Developer Stories: The Side Nobody Shows&lt;/h2&gt;
&lt;p&gt;I thought learning to code would fix my life.&lt;/p&gt;
&lt;p&gt;Instead, it confused me.&lt;/p&gt;
&lt;p&gt;Hours of tutorials.&lt;br&gt;
Endless scrolling.&lt;br&gt;
Starting things… never finishing them.  &lt;/p&gt;
&lt;p&gt;At some point, I realized —&lt;br&gt;
I wasn’t alone.&lt;/p&gt;
&lt;p&gt;There are thousands of people trying to become developers…&lt;br&gt;
but silently struggling.&lt;/p&gt;
&lt;p&gt;Not posting.&lt;br&gt;
Not sharing.&lt;br&gt;
Just figuring things out alone.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;so-i-decided-to-do-something-&quot;&gt;So I decided to do something.&lt;/h3&gt;
&lt;p&gt;I’m starting a series:&lt;/p&gt;
&lt;h3 id=&quot;raw-developer-stories-the-side-nobody-shows-1&quot;&gt;&lt;strong&gt;Raw Developer Stories: The Side Nobody Shows&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Not success stories.&lt;br&gt;
Not “I learned coding in 30 days.”&lt;/p&gt;
&lt;p&gt;Just real journeys:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;confusion  &lt;/li&gt;
&lt;li&gt;self-doubt  &lt;/li&gt;
&lt;li&gt;failures  &lt;/li&gt;
&lt;li&gt;and the moments that changed everything  &lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-this-series-&quot;&gt;Why this series?&lt;/h3&gt;
&lt;p&gt;Because most content shows the highlight reel.&lt;/p&gt;
&lt;p&gt;Very few talk about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;feeling stuck for months  &lt;/li&gt;
&lt;li&gt;not understanding anything despite trying  &lt;/li&gt;
&lt;li&gt;questioning if you're even meant for this  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But that’s the real journey.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;i-want-to-hear-your-story&quot;&gt;I want to hear your story&lt;/h3&gt;
&lt;p&gt;If you're a developer (or trying to become one)&lt;br&gt;
and you've ever felt lost—&lt;/p&gt;
&lt;p&gt;I’d love to share your experience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It can be anonymous  &lt;/li&gt;
&lt;li&gt;No perfect writing needed  &lt;/li&gt;
&lt;li&gt;Just honesty  &lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-to-participate&quot;&gt;How to participate&lt;/h3&gt;
&lt;p&gt;Send me a message with:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How you started coding  &lt;/li&gt;
&lt;li&gt;Your hardest phase  &lt;/li&gt;
&lt;li&gt;A moment you almost quit  &lt;/li&gt;
&lt;li&gt;What changed things for you  &lt;/li&gt;
&lt;li&gt;One truth about coding nobody talks about  &lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Let’s show the side nobody talks about.&lt;/p&gt;
&lt;p&gt;Because someone out there needs to hear it.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/13315/raw-developer-stories-the-side-nobody-shows</guid>
<pubDate>Sun, 22 Mar 2026 06:19:56 +0000</pubDate>
</item>
</channel>
</rss>