<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hieu Louis</title>
    <description>The latest articles on DEV Community by Hieu Louis (@hieulouis).</description>
    <link>https://dev.to/hieulouis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4061615%2F4e33e4c8-28e4-4e66-99cf-8ec5d289d77a.gif</url>
      <title>DEV Community: Hieu Louis</title>
      <link>https://dev.to/hieulouis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hieulouis"/>
    <language>en</language>
    <item>
      <title>I Cut My Prompt by 90% and the AI Suddenly Got Twice as Smart</title>
      <dc:creator>Hieu Louis</dc:creator>
      <pubDate>Tue, 15 Sep 2026 05:54:19 +0000</pubDate>
      <link>https://dev.to/hieulouis/i-cut-my-prompt-by-90-and-the-ai-suddenly-got-twice-as-smart-2gfj</link>
      <guid>https://dev.to/hieulouis/i-cut-my-prompt-by-90-and-the-ai-suddenly-got-twice-as-smart-2gfj</guid>
      <description>&lt;p&gt;I used to write long prompts with step by step instructions, examples, constraints, and then cap it off with "if you're not sure, just ask me" because I thought that was the safe approach, and the result was always the same, 30 minutes in it would time out, loop its reasoning, forget the original request, fix a couple of bugs, and declare itself done.&lt;/p&gt;

&lt;p&gt;I switched models and got the same thing. Split the task into smaller pieces and got the same thing. Thought my machine was too weak so I upgraded the hardware and nothing changed.&lt;/p&gt;

&lt;p&gt;Then one day I was exhausted and just typed out a short blunt prompt with no explanations, no examples, just the job, the authority, and a couple of constraints.&lt;/p&gt;

&lt;p&gt;I'm working on &lt;strong&gt;Halis&lt;/strong&gt;, a self-hosting systems programming language where the compiler is written in itself. The codebase is around 224,000 lines and has been through 30 stages of development.&lt;/p&gt;

&lt;p&gt;I handed the AI the repo link with a token, told it to scan everything for bugs and keep fixing until scanning found nothing left, no asking, and to commit under my name.&lt;/p&gt;

&lt;p&gt;It ran for &lt;strong&gt;5 hours&lt;/strong&gt;, found &lt;strong&gt;14 real bugs&lt;/strong&gt;, fixed them all, never timed out, never looped, never forgot a thing.&lt;/p&gt;

&lt;p&gt;I sat there staring at the screen for a while before a few things clicked.&lt;/p&gt;




&lt;h2&gt;
  
  
  The more authority you give, the more stable it becomes
&lt;/h2&gt;

&lt;p&gt;That line about "if you're not sure, ask me" sounds responsible but it actually kills everything because every question chops up the context, and by the twentieth question the AI is exhausted while the original task drifted out of its head long ago.&lt;/p&gt;

&lt;p&gt;I banned it from asking. It stopped seeking permission. It started making its own calls, and reasoning flowed where it was actually needed instead of being spread thin across trivia.&lt;/p&gt;




&lt;h2&gt;
  
  
  The shorter the prompt, the cleaner the context
&lt;/h2&gt;

&lt;p&gt;A 2000 word prompt eats &lt;strong&gt;3000 tokens&lt;/strong&gt; before I've typed a single character. Add in the system prompt and a pile of tool descriptions and I've burned &lt;strong&gt;15,000 tokens&lt;/strong&gt; before the work even starts.&lt;/p&gt;

&lt;p&gt;A million token context sounds like a lot but attention is not infinite. The more junk tokens you pile in, the more distracted it gets from the code.&lt;/p&gt;

&lt;p&gt;A short prompt hands almost all of the context back to the code. It focuses, and the quality jumps.&lt;/p&gt;




&lt;h2&gt;
  
  
  The stopping condition has to be dynamic
&lt;/h2&gt;

&lt;p&gt;"Fix the bugs" means it fixes a few, declares victory, and stops.&lt;/p&gt;

&lt;p&gt;But "keep fixing until scanning finds nothing left" means it can't declare victory early. It has to scan, fix, scan again, repeat, and it becomes its own critic.&lt;/p&gt;

&lt;p&gt;That's why my sessions ran through &lt;strong&gt;25 scan passes&lt;/strong&gt;, and each one dug up bugs the previous pass had missed.&lt;/p&gt;




&lt;h2&gt;
  
  
  This isn't me making things up
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stanford&lt;/strong&gt; ran 100,000 prompts and found that long prompts hurt performance in &lt;strong&gt;73%&lt;/strong&gt; of cases&lt;/li&gt;
&lt;li&gt;Another study across &lt;strong&gt;144 microservices&lt;/strong&gt; showed that with the same agent, a minimal prompt hit &lt;strong&gt;75.9%&lt;/strong&gt; test pass while a detailed prompt only managed &lt;strong&gt;50.3%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Just this past &lt;strong&gt;September&lt;/strong&gt;, OpenAI themselves admitted in a post that all the accumulated instructions from older model generations were wrecking the performance of the new one&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  A long prompt is a sign you don't trust the model
&lt;/h2&gt;

&lt;p&gt;When you write 2000 words explaining how to fix one bug, you're telling it it's dumb. It hears that, and it turns into a command follower.&lt;/p&gt;

&lt;p&gt;But when you write &lt;strong&gt;110 words&lt;/strong&gt; and say I trust you to handle it, it becomes an engineer, and it comes up with things you never would have thought of.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it actually did in that 5 hour session
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Wrote its own scanner because the standard linters weren't good enough&lt;/li&gt;
&lt;li&gt;Ran &lt;strong&gt;18 layers of checks in parallel&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Found a &lt;strong&gt;segfault&lt;/strong&gt; that had been sitting there for over a year&lt;/li&gt;
&lt;li&gt;Found a &lt;strong&gt;security hole&lt;/strong&gt; in the ZIP parser of the archive library&lt;/li&gt;
&lt;li&gt;Caught &lt;strong&gt;65 places&lt;/strong&gt; with the same broken pattern in the SIMD emitter&lt;/li&gt;
&lt;li&gt;Rewrote the test harness because the test itself was broken&lt;/li&gt;
&lt;li&gt;Fixed an &lt;strong&gt;LTO regression&lt;/strong&gt; that a previous stage had quietly introduced&lt;/li&gt;
&lt;li&gt;Verified everything again&lt;/li&gt;
&lt;li&gt;Committed each fix individually&lt;/li&gt;
&lt;li&gt;Pushed it all with my username instead of the sandbox's default identity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I didn't ask for any of that. It did it all on its own.&lt;/p&gt;




&lt;h2&gt;
  
  
  Strong models need freedom
&lt;/h2&gt;

&lt;p&gt;If I handed that same workload to &lt;strong&gt;Claude Fable 5.1&lt;/strong&gt;, the strongest model in the world right now, along with a long detailed prompt, the result would actually be worse.&lt;/p&gt;

&lt;p&gt;Not because it's weak. It's not. It's strong. But a long prompt chains down any model no matter how powerful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fable 5.1 with a short prompt would be terrifying. Fable 5.1 with a long prompt is just on par with a mid-tier model given a short one, maybe even worse.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've tested it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Strong models need freedom. Freedom means clean context. Clean context means good results. That's it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;If you're still writing long prompts and wondering why your agent keeps timing out or looping or forgetting what it was doing, try cutting it by &lt;strong&gt;90%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You might be surprised.&lt;/p&gt;




&lt;p&gt;&lt;code&gt;#AI&lt;/code&gt; &lt;code&gt;#PromptEngineering&lt;/code&gt; &lt;code&gt;#LLM&lt;/code&gt; &lt;code&gt;#Developer&lt;/code&gt; &lt;code&gt;#Coding&lt;/code&gt; &lt;code&gt;#Productivity&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Email That Almost Fooled a Developer: A Story About Open Source, Trust, and Scams</title>
      <dc:creator>Hieu Louis</dc:creator>
      <pubDate>Sun, 06 Sep 2026 13:09:29 +0000</pubDate>
      <link>https://dev.to/hieulouis/the-email-that-almost-fooled-a-developer-a-story-about-open-source-trust-and-scams-1136</link>
      <guid>https://dev.to/hieulouis/the-email-that-almost-fooled-a-developer-a-story-about-open-source-trust-and-scams-1136</guid>
      <description>&lt;p&gt;I am a developer. For months, I have poured almost all of my free time into Halis, a systems programming language that I believe can change how people think about safety in software. I have written thousands of lines of code. I have fixed my own compiler errors, my own security bugs, my own infinite loops. I am at stage 30 out of 150. There is still a long road ahead, but I am proud of what I have built.&lt;/p&gt;

&lt;p&gt;Then one morning, I opened my inbox and found a strange email.&lt;/p&gt;

&lt;p&gt;The sender called himself Joshua. He wrote in English, with a confident and direct tone. He said he knew my project was underexposed, but that was a fixable problem. He said he noticed I had been committing recently, and that mattered more than people thought. He said the core work was already done, and what was missing was distribution, getting Halis in front of the right communities, the right people. He offered to rewrite the README, find four or five channels that fit my audience, and build a sustained presence. At the end, he invited me to a short call, no obligation, no pitch.&lt;/p&gt;

&lt;p&gt;I sat there for a moment. My first feeling was joy. Someone cared about what I was building. Someone saw value in the code I had stayed up late to write. But then an uneasy feeling crept in. I did not reply right away. I read the email again, slower this time, line by line, and I started to see the cracks.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Artificial Directness
&lt;/h2&gt;

&lt;p&gt;His opening line was a perfect example.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I will be direct, since you probably get plenty of vague emails."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It sounded sincere. But any scammer can write that sentence. He was trying to separate himself from the spam, trying to lower my defenses in the first few seconds. A real person who genuinely wants to help does not need to convince me that he is not a scammer. He just needs to show me that he understands my project.&lt;/p&gt;

&lt;p&gt;This is a classic psychological trick. By acknowledging that I probably get spam, he is implying that his email is not spam. But the truth is that any scammer can write this exact sentence. It requires no knowledge, no skill, and no real intention to help. It is a canned line designed to lower my defenses in the first three seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Obvious Weakness
&lt;/h2&gt;

&lt;p&gt;Then he said Halis was underexposed. That was true, but anyone who opens my GitHub can see it. He did not need to read my code or understand what Halis does. He just needed to look at the number next to the star.&lt;/p&gt;

&lt;p&gt;He called it &lt;strong&gt;a fixable problem&lt;/strong&gt; and positioned himself as the one with the solution. This is how he creates dependence. He wanted me to think I needed him.&lt;/p&gt;

&lt;p&gt;Think about what that phrase does. It tells me that I have a weakness, and he has the solution. He is creating a problem in my mind and positioning himself as the only person who can solve it. This is manipulation, pure and simple.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Public Information
&lt;/h2&gt;

&lt;p&gt;He said he noticed my recent commits. But I had just published an article about Halis on dev.to a few days earlier. Anyone who read that article would know I was actively working on the project.&lt;/p&gt;

&lt;p&gt;He did not need to follow my GitHub. He only needed to read a public post. He used public information to create the illusion that he was paying close attention. In reality, he just repeated what he had read.&lt;/p&gt;

&lt;p&gt;He is using publicly available information to create the illusion that he is paying close attention to my work. He wants me to believe that he is genuinely interested in Halis, that he has been watching my progress. But the truth is simpler. He read a blog post and repeated what he saw.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Lie About My Project
&lt;/h2&gt;

&lt;p&gt;Then came the sentence that stopped me cold.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"From what I can tell, the core work is already done."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If he had actually read my ROADMAP, he would know Halis is at &lt;strong&gt;stage 30 out of 150&lt;/strong&gt;. If he had looked at the repository, he would have seen the long list of features still missing. He did not read. He did not know. He just guessed, and he guessed wrong. That told me he had not spent any time understanding my project. He just wanted to sell me something.&lt;/p&gt;

&lt;p&gt;This was the moment I realized something was very wrong. A real consultant would spend time understanding the project before offering advice. This man did not do that. He just wanted to convince me that everything was ready and that all I needed was his help to "distribute" it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Vague Promises
&lt;/h2&gt;

&lt;p&gt;He talked about finding the right communities, introducing the project without being flagged as promotion, keeping momentum after the initial spike. It sounded intelligent. But he mentioned &lt;strong&gt;no specific community&lt;/strong&gt;. He offered &lt;strong&gt;no strategy&lt;/strong&gt;. He did not say how to write a post, how to approach admins, how to create value for readers. These are basic marketing principles anyone can write without knowing anything about Halis.&lt;/p&gt;

&lt;p&gt;He promised to rewrite my README. But rewrite it how? Focus on what features? Emphasize what points? He did not say.&lt;/p&gt;

&lt;p&gt;He promised to find four or five channels. But which ones? Reddit? Hacker News? Dev.to? He did not say.&lt;/p&gt;

&lt;p&gt;He promised sustained presence. But for how long? How many posts? How much engagement? He did not say.&lt;/p&gt;

&lt;p&gt;He was selling me a service with promises that had &lt;strong&gt;no concrete commitments&lt;/strong&gt;. This is a hallmark of scammers. They use vague language so they can never be held accountable for failing to deliver.&lt;/p&gt;




&lt;h2&gt;
  
  
  The "No Obligation" Call
&lt;/h2&gt;

&lt;p&gt;Then he invited me to a short call. No obligation. No pitch.&lt;/p&gt;

&lt;p&gt;But this was the trap. Over the phone, he would use his voice, his speed, and psychological pressure to make me agree to pay. He would say this opportunity only comes once. He would say he was busy with other clients. He would push me to decide fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"No obligation" was just bait to make me say yes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The phrase "no obligation" is another psychological trick. He wants me to feel safe so I will say yes. But once I am on the call, he will create urgency. He will tell me that this opportunity is limited. He will say that he is busy with other clients. He will push me to make a decision quickly, before I have time to think. This is high-pressure sales disguised as a friendly conversation.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Wrong Frame
&lt;/h2&gt;

&lt;p&gt;He called Halis a &lt;strong&gt;product&lt;/strong&gt;. He called it a &lt;strong&gt;service&lt;/strong&gt;. But Halis is an open source programming language. I do not sell it. I do not make money from it.&lt;/p&gt;

&lt;p&gt;If he had actually read the repo, he would know that. He was trying to frame my project as merchandise and me as a customer in need of help. He did not want to contribute. He wanted to sell.&lt;/p&gt;

&lt;p&gt;He is trying to frame my project as a commercial thing and me as a customer who needs help selling it. This is a tactic to turn a potential contributor into a paying client. He does not want to help Halis grow. He wants to sell me a service.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Ghost
&lt;/h2&gt;

&lt;p&gt;He used a generic email address. A professional marketer usually has a company email, or at least a verifiable online presence.&lt;/p&gt;

&lt;p&gt;He had no LinkedIn. No GitHub. No blog. No portfolio. I could not find any trace of this person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;He was a ghost.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;He wanted me to trust a person who did not exist.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Kind of Scam Is This?
&lt;/h2&gt;

&lt;p&gt;This is a &lt;strong&gt;marketing consulting scam&lt;/strong&gt;. It works like this.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The scammer finds active open source projects on GitHub.&lt;/li&gt;
&lt;li&gt;He sends personalized emails to build trust.&lt;/li&gt;
&lt;li&gt;He offers marketing services for a fee.&lt;/li&gt;
&lt;li&gt;If the developer pays, he does very little or nothing.&lt;/li&gt;
&lt;li&gt;Sometimes he asks for repository access, then disappears with the code.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After the payment is made, the scammer vanishes. The developer loses money, and the project gets nothing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Did
&lt;/h2&gt;

&lt;p&gt;I did not reply. I marked the email as spam. I reported the account. I went back to building Halis.&lt;/p&gt;

&lt;p&gt;And I realized something important. If someone genuinely cared about my project, they would read the ROADMAP. They would know what stage I am at. They would not call Halis a product. They would not send a vague email. They would start by contributing code, or at least opening a specific issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joshua did none of that. Joshua wanted to sell me something.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I did not buy.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Should Look Out For
&lt;/h2&gt;

&lt;p&gt;If you are building an open source project, a personal product, or anything you pour your heart into, let me say this honestly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be careful with emails like this.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They are not always obvious scams. They are often written with great skill, soft and precise, aimed directly at the psychology of a builder who longs to be seen. A scammer does not need you to be stupid. They only need you to be lonely, tired, and wishing someone would acknowledge your work.&lt;/p&gt;

&lt;p&gt;Here is what to watch for.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fake directness.&lt;/strong&gt; A sentence designed to sound honest is not proof of honesty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploiting an obvious weakness.&lt;/strong&gt; Anyone can see a public repo with few stars. That does not mean they understand your work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Praising public information.&lt;/strong&gt; They are building false familiarity by repeating what they read.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lying about the state of your project.&lt;/strong&gt; If they cannot be bothered to read your documentation, their advice is worthless.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vague language.&lt;/strong&gt; Real experts give specific, actionable advice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "no obligation" call.&lt;/strong&gt; It is much easier to pressure you when you can hear their voice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treating your project like a product.&lt;/strong&gt; Not everyone who offers help wants to help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No verifiable identity.&lt;/strong&gt; Trust is earned, not requested.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Always verify the sender. Read every line slowly. Ask yourself: does this person truly understand my project, or are they just repeating what is visible from the outside?&lt;/p&gt;

&lt;p&gt;Do not let excitement cloud your judgment. Someone who genuinely wants to walk beside you will not rush. They will take time to understand. They will ask specific questions. They will not need you to answer this week.&lt;/p&gt;

&lt;p&gt;And above all, remember that your worth is not measured by how many people notice you. It lives in the code you write, the problems you solve, and the patience you keep when no one is watching.&lt;/p&gt;

&lt;p&gt;Do not let a strange email shake that.&lt;/p&gt;

</description>
      <category>scam</category>
      <category>developer</category>
      <category>startup</category>
      <category>security</category>
    </item>
    <item>
      <title>Halis: The Side Project That Became My Life's Largest Ambition</title>
      <dc:creator>Hieu Louis</dc:creator>
      <pubDate>Sun, 06 Sep 2026 01:47:11 +0000</pubDate>
      <link>https://dev.to/hieulouis/halis-the-side-project-that-became-my-lifes-largest-ambition-524b</link>
      <guid>https://dev.to/hieulouis/halis-the-side-project-that-became-my-lifes-largest-ambition-524b</guid>
      <description>&lt;p&gt;I never intended to build a programming language.&lt;/p&gt;

&lt;p&gt;It began as an idle thought, a question I could not shake during a quiet evening. I had spent enough time writing software to feel the friction that every developer knows: the constant negotiation between performance and safety, between control and convenience, between trusting the programmer and trusting the runtime. I started wondering what a language would look like if it simply refused to accept those compromises. Not as a theoretical exercise, but as a real system that a person could actually run.&lt;/p&gt;

&lt;p&gt;What started as a random experiment slowly became something far larger. It became the most ambitious project I have ever undertaken.&lt;/p&gt;

&lt;p&gt;That project is called Halis.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Halis?
&lt;/h2&gt;

&lt;p&gt;Halis is a compiled, self-hosting systems programming language where safety is the default state, not an afterthought. The compiler, called &lt;code&gt;hlc&lt;/code&gt;, is written entirely in Halis itself. Two compilation passes produce byte-identical output, a fact that is verified by the bootstrap chain on every build.&lt;/p&gt;

&lt;p&gt;The language is still under active development and has not been publicly announced until now. But the repository is open, the code is available, and the work speaks for itself.&lt;/p&gt;

&lt;p&gt;This is not a toy language built for a weekend hackathon. This is a serious attempt to answer a serious question: can a systems language be built so that safety is not a feature, not a checklist, but the very foundation everything else is built upon?&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Started
&lt;/h2&gt;

&lt;p&gt;I did not have a grand plan. I did not have funding, a team, or a deadline. I had a question that refused to leave me alone.&lt;/p&gt;

&lt;p&gt;The more I thought about it, the more I realized that most languages treat safety as something you can add later. You can enable warnings. You can run static analysis. You can adopt best practices. But the language itself does not stop you from writing unsafe code. It allows the mistakes to exist and then asks you to find them yourself.&lt;/p&gt;

&lt;p&gt;I wanted something different. I wanted a language where the compiler says no. Where dangerous patterns are rejected before they ever become bugs. Where the default state is safety, not risk.&lt;/p&gt;

&lt;p&gt;So I started building. At first, it was pure curiosity. Could I write a lexer? A parser? A type checker? Each small success made the next step seem possible. But somewhere along the way, the curiosity turned into conviction. The experiment turned into a mission. And the mission turned into the largest undertaking of my life.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Kept Going
&lt;/h2&gt;

&lt;p&gt;Most systems languages force a false choice: raw speed with the risk of memory bugs, or protection with runtime overhead you cannot always afford. Halis rejects that trade-off outright. Safety and performance are not opposites. A language should not ask its users to sacrifice one to gain the other.&lt;/p&gt;

&lt;p&gt;That belief is not a marketing slogan. It is enforced by the compiler at the deepest possible level. Halis implements seven core guarantees that every program must respect, not because a style guide recommends them, but because the compiler refuses to build anything that violates them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Seven Core Guarantees
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. I/O is a Declared Effect
&lt;/h3&gt;

&lt;p&gt;In most languages, any function can silently read a file, write to disk, or print to the screen. You cannot know what a function does just by looking at its signature.&lt;/p&gt;

&lt;p&gt;In Halis, if a function wants to perform I/O, it must declare it. If a function calls another function that performs I/O, even indirectly through five layers of calls, and that outer function does not declare the effect, compilation fails.&lt;/p&gt;

&lt;p&gt;A function without a &lt;code&gt;uses&lt;/code&gt; clause is guaranteed pure. It cannot touch the outside world. It cannot surprise you. What you see in the type signature is exactly what you get.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Every Operation is Checked
&lt;/h3&gt;

&lt;p&gt;Integer overflow, divide-by-zero, out-of-bounds array access, invalid string indexing. In most systems languages, these are sources of undefined behavior. They are the bugs that turn into security vulnerabilities.&lt;/p&gt;

&lt;p&gt;In Halis, they halt safely. There is no switch to disable these checks. There is no escape hatch that turns off safety in the name of performance. The checks stay on, always.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. No Null, No Uninitialised Variables, No Hidden Globals
&lt;/h3&gt;

&lt;p&gt;These three things are responsible for an enormous fraction of real-world bugs. They are not allowed to exist in Halis.&lt;/p&gt;

&lt;p&gt;Everything is explicit. Everything can be audited. You never have to wonder whether a value might be missing, because the type system makes missing values explicit and forces you to handle them.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Memory Safety Without Garbage Collection
&lt;/h3&gt;

&lt;p&gt;Use-after-move is a compile error. &lt;code&gt;clone()&lt;/code&gt; deep-copies every owned type. The generated runtime uses reference counting with exact free at scope exit.&lt;/p&gt;

&lt;p&gt;This is verified in CI with a memory-stress program that runs with a flat RSS under a 256 MB address-space limit. The memory footprint does not grow. It stays flat. That is the kind of proof I care about.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Fine-Grained Effects and Capabilities
&lt;/h3&gt;

&lt;p&gt;The single IO effect is split into eight capabilities: &lt;code&gt;IO&lt;/code&gt;, &lt;code&gt;Fs&lt;/code&gt;, &lt;code&gt;Clock&lt;/code&gt;, &lt;code&gt;Args&lt;/code&gt;, &lt;code&gt;Exit&lt;/code&gt;, &lt;code&gt;Net&lt;/code&gt;, &lt;code&gt;Rand&lt;/code&gt;, &lt;code&gt;Proc&lt;/code&gt;, and &lt;code&gt;Conc&lt;/code&gt;. Each is individually declared and statically verified through the entire call graph.&lt;/p&gt;

&lt;p&gt;A function that only needs to read the system clock cannot secretly open a network connection. A function that needs to read command-line arguments cannot silently spawn a process. The compiler knows what every function is allowed to do, and it enforces that boundary.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Taint Tracking
&lt;/h3&gt;

&lt;p&gt;The built-in generic type &lt;code&gt;tainted[T]&lt;/code&gt; wraps any value as potentially attacker-controlled. The compiler statically rejects passing a tainted value to any sink, including &lt;code&gt;print&lt;/code&gt;, &lt;code&gt;println&lt;/code&gt;, &lt;code&gt;write_file&lt;/code&gt;, &lt;code&gt;read_file&lt;/code&gt;, &lt;code&gt;file_exists&lt;/code&gt;, &lt;code&gt;exit&lt;/code&gt;, &lt;code&gt;net_lookup&lt;/code&gt;, and &lt;code&gt;proc_exec&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You must sanitize first using the standard library helpers like &lt;code&gt;sanitize_html&lt;/code&gt;, &lt;code&gt;sanitize_path&lt;/code&gt;, &lt;code&gt;sanitize_sql_identifier&lt;/code&gt;, or &lt;code&gt;sanitize_command&lt;/code&gt;. If you need to bypass it, there is an explicit &lt;code&gt;taint_unwrap()&lt;/code&gt; escape hatch. But it is explicit. It is visible. It cannot happen by accident.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Data-Race Freedom by Construction
&lt;/h3&gt;

&lt;p&gt;The Send rule set and the ownership-boundary rule mean sharing a variable with a task outside a channel is a compile error. The type system rejects every data race at compile time.&lt;/p&gt;

&lt;p&gt;Concurrency is hard enough without having to worry about two threads silently corrupting the same memory. Halis makes that entire class of bugs impossible.&lt;/p&gt;




&lt;h2&gt;
  
  
  Self-Hosting: Proof, Not Promise
&lt;/h2&gt;

&lt;p&gt;The compiler source is written in Halis. The Stage-0 seed, written in Python, produces the first native compiler. That compiler then recompiles its own source.&lt;/p&gt;

&lt;p&gt;The output of pass one and pass two are compared, and they must be identical, byte for byte. If they are not, the bootstrap fails.&lt;/p&gt;

&lt;p&gt;This is how the language grows in itself. It is not bootstrapped by accident. It is bootstrapped by design.&lt;/p&gt;

&lt;p&gt;Every time I run the bootstrap and see that diff of zero bytes, I am reminded why this matters. It is not enough to claim that a language is self-hosting. You have to prove it, every single time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Formal Verification
&lt;/h2&gt;

&lt;p&gt;One of the things I am most proud of is the verification layer. Halis supports formal verification through &lt;code&gt;requires&lt;/code&gt; and &lt;code&gt;ensures&lt;/code&gt; contracts. The &lt;code&gt;hlprove&lt;/code&gt; tool generates proof reports and interfaces with the z3 SMT solver to verify properties about your code. The &lt;code&gt;hlmodel&lt;/code&gt; tool performs finite-state model checking.&lt;/p&gt;

&lt;p&gt;This is not a toy. These are serious tools for proving that your code does what you say it does, before you ever run it.&lt;/p&gt;

&lt;p&gt;In a world where software failures can cost millions of dollars or human lives, this matters more than we like to admit.&lt;/p&gt;




&lt;h2&gt;
  
  
  Looking Ahead to v1.0-pre
&lt;/h2&gt;

&lt;p&gt;As Halis moves toward v1.0-pre, I am preparing two significant changes that I believe will make the project far more accessible to the community.&lt;/p&gt;

&lt;p&gt;First, I will be adding comprehensive documentation. Right now, much of the language's design and behavior lives in the source code, the specification, and my own notes. That is not good enough for a language that I want others to read, understand, and eventually contribute to. By the time v1.0-pre arrives, I intend to have clear, structured documentation covering the language syntax, the core guarantees, the standard library, the tooling, and the security model.&lt;/p&gt;

&lt;p&gt;The goal is simple: someone new to Halis should be able to sit down, read the documentation from start to finish, and understand exactly what the language is, how it works, and why it was built this way. No guessing. No digging through commit history. Just clear, honest documentation.&lt;/p&gt;

&lt;p&gt;Second, I will be breaking up the large source files into smaller, more focused modules. The compiler currently lives in a relatively small number of large files, which is natural for an early-stage project where the priority was getting the bootstrap working. But as the language grows and more people begin to look at the code, that structure becomes a barrier. Large files are harder to navigate, harder to review, and harder to contribute to.&lt;/p&gt;

&lt;p&gt;By the time v1.0-pre is ready, I want the codebase to be split into logical, manageable pieces that make it easier for a new contributor to find what they need, understand how it fits into the whole, and make a meaningful change without being overwhelmed.&lt;/p&gt;

&lt;p&gt;These two changes share the same underlying goal: to make Halis not just a language that works, but a project that people can genuinely participate in. A language is not just a compiler. It is a community of people who share a set of ideas about how software should be built. That community cannot grow if the barrier to entry is too high. Documentation and code structure are how we lower that barrier.&lt;/p&gt;




&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;p&gt;Halis is at version v0.47.0-alpha. The test suite includes over seven hundred tests covering interpreter execution, native compilation, differential output, and bootstrap determinism. Bootstrap is deterministic. The language is stable enough to be studied, tested, and challenged, but it is not yet production-ready.&lt;/p&gt;

&lt;p&gt;I expect v1.0-pre to arrive in 2027, with v1.0 LTS following in 2029.&lt;/p&gt;

&lt;p&gt;Those dates are not deadlines. They are commitments.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters to Me
&lt;/h2&gt;

&lt;p&gt;I did not build this to chase a trend. I did not build this to add another line to my resume. I built this because I believe the next generation of systems programming needs stronger foundations, and because I wanted to prove that a serious language can be built from first principles with discipline and patience.&lt;/p&gt;

&lt;p&gt;This project has demanded years of careful thought, and it will demand many more. There were nights when nothing worked and the bootstrap failed and I questioned whether it was all worth it. But every time I came back, because the question that started this journey still matters to me.&lt;/p&gt;

&lt;p&gt;Can we build a language where safety is not an afterthought?&lt;/p&gt;

&lt;p&gt;I believe the answer is yes. Halis is my proof.&lt;/p&gt;




&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;p&gt;The repository is open. The specification is available. The security model is written down. The code is there to be read, compiled, tested, and criticized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/mhieuhonda/halis-lang" rel="noopener noreferrer"&gt;github.com/mhieuhonda/halis-lang&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything is there. The SPEC. The SECURITY file. The compiler source. The standard library. The examples. The test suite.&lt;/p&gt;

&lt;p&gt;Read it. Build it. Challenge it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Words
&lt;/h2&gt;

&lt;p&gt;I am not asking you to use Halis in production today. I am asking you to look at it with honest eyes and see whether the foundation is sound. I am asking you to consider whether a language built this way, with safety as the default, with proof as the standard, with discipline as the method, is worth paying attention to.&lt;/p&gt;

&lt;p&gt;I believe it is. I believe it deeply.&lt;/p&gt;

&lt;p&gt;What started as a random thought has become the largest undertaking of my life. And I am only getting started.&lt;/p&gt;

</description>
      <category>systemsprogramming</category>
      <category>security</category>
      <category>opensource</category>
    </item>
    <item>
      <title>GPT-6 Astra: What’s Actually New in OpenAI’s New Frontier Model</title>
      <dc:creator>Hieu Louis</dc:creator>
      <pubDate>Sun, 06 Sep 2026 01:22:18 +0000</pubDate>
      <link>https://dev.to/hieulouis/gpt-6-astra-whats-actually-new-in-openais-new-frontier-model-2obe</link>
      <guid>https://dev.to/hieulouis/gpt-6-astra-whats-actually-new-in-openais-new-frontier-model-2obe</guid>
      <description>&lt;p&gt;OpenAI has released GPT-6 Astra, its newest frontier model, less than a week after Anthropic’s Claude Fable 5.1. OpenAI calls Astra the world’s most intelligent and aligned model yet.&lt;/p&gt;




&lt;h2&gt;
  
  
  What actually makes Astra different?
&lt;/h2&gt;

&lt;p&gt;The simplest way to put it is this: &lt;strong&gt;Astra is built to do more, not just answer more.&lt;/strong&gt; It can use a computer to complete tasks instead of telling you how to do them. It can create finished documents instead of giving you a rough first draft. During long coding sessions, Astra can also remember what happened earlier instead of starting from scratch. And it’s better at knowing when to take action and when to stop and ask.&lt;/p&gt;

&lt;p&gt;The bigger shift isn’t just smarter answers. AI is getting closer to actually getting the work done.&lt;/p&gt;

&lt;p&gt;Some important caveats remain, though. Astra doesn’t beat every competing model, and some of its biggest benchmark numbers come with asterisks.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Actually Changed in GPT-6 Astra
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Drive a Computer End-to-end
&lt;/h3&gt;

&lt;p&gt;Astra can fill out forms, update CRM records, run frontend QA checks on a website, and troubleshoot software by watching what happens on screen, without step-by-step hand-holding. OpenAI reports a score of &lt;strong&gt;72.6% on OSWorld 2.0&lt;/strong&gt;, narrowly ahead of Claude Opus 5’s 70.2% and well ahead of GPT-5.6 Sol’s 65.7%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; GPT-6 Astra can extract information from a W-2 and enter the relevant details into a Form 1040, helping automate routine tax-preparation work while leaving the final return for human review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Knows When to Ask and When to Guess
&lt;/h3&gt;

&lt;p&gt;Earlier models tended to either guess wrong on ambiguous instructions or interrupt with unnecessary questions. Astra is trained to fill in routine gaps on its own and pause only when the answer would meaningfully change the outcome.&lt;/p&gt;

&lt;p&gt;OpenAI’s own side-by-side demo shows the difference: GPT-5.6 Sol built a personal career website on its own in about 13 minutes. Astra paused after 20 seconds to ask what career the user was actually moving into. That’s a small moment, but it illustrates the difference between a model that acts and a model that uses judgment about when to act.&lt;/p&gt;

&lt;h3&gt;
  
  
  Produces Finished Documents
&lt;/h3&gt;

&lt;p&gt;Astra is trained to match your existing templates, tone, and structure, and to pull in only the context that’s relevant rather than padding the output with everything it knows.&lt;/p&gt;

&lt;p&gt;Astra builds a slide deck from just a handful of template slides while keeping the tone and layout consistent throughout.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remembers Across Long Coding Sessions
&lt;/h3&gt;

&lt;p&gt;In Codex, Astra can now keep searchable notes across context windows instead of repeatedly compressing long debugging sessions into a single summary, preserving details that compaction tends to lose, like why an earlier fix failed. It’s opt-in for now through Codex’s config file, and OpenAI says it will become the default in the coming weeks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cybersecurity
&lt;/h3&gt;

&lt;p&gt;Astra’s biggest jump isn’t a productivity feature at all. OpenAI reports Astra reaches the &lt;strong&gt;"Critical" threshold&lt;/strong&gt; for cybersecurity under its own Preparedness Framework, its highest risk tier, meaning the model can independently identify and develop working exploits for previously unknown vulnerabilities. OpenAI reports a &lt;strong&gt;100% score on ExploitBench&lt;/strong&gt; and says Astra solved 88% of SRE-Bench reverse-engineering tasks on the first attempt.&lt;/p&gt;

&lt;p&gt;Because of that risk tier, OpenAI is gating the more dangerous parts of this capability at launch. Astra will help with defensive work like secure code review and patch validation, but it refuses to create proof-of-concept exploits until OpenAI expands access through its Daybreak program.&lt;/p&gt;




&lt;h2&gt;
  
  
  GPT-6 Astra Benchmarks
&lt;/h2&gt;

&lt;p&gt;All figures are self-reported by OpenAI in its launch materials.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;GPT-6 Astra&lt;/th&gt;
&lt;th&gt;GPT-5.6 Sol&lt;/th&gt;
&lt;th&gt;Claude Fable 5.1&lt;/th&gt;
&lt;th&gt;Claude Opus 5&lt;/th&gt;
&lt;th&gt;Gemini 3.8 Flash&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OSWorld 2.0 (computer use)&lt;/td&gt;
&lt;td&gt;72.6%&lt;/td&gt;
&lt;td&gt;65.7%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;td&gt;70.2%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FrontierMath Tier 4&lt;/td&gt;
&lt;td&gt;97.6%&lt;/td&gt;
&lt;td&gt;83.0%&lt;/td&gt;
&lt;td&gt;87.8%&lt;/td&gt;
&lt;td&gt;73.2%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPQA Diamond&lt;/td&gt;
&lt;td&gt;96.0%&lt;/td&gt;
&lt;td&gt;94.6%&lt;/td&gt;
&lt;td&gt;93.7%&lt;/td&gt;
&lt;td&gt;93.7%&lt;/td&gt;
&lt;td&gt;95.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 4.0 (coding)&lt;/td&gt;
&lt;td&gt;57.7%&lt;/td&gt;
&lt;td&gt;37.3%&lt;/td&gt;
&lt;td&gt;55.8%&lt;/td&gt;
&lt;td&gt;52.3%&lt;/td&gt;
&lt;td&gt;19.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExploitBench&lt;/td&gt;
&lt;td&gt;100.0%&lt;/td&gt;
&lt;td&gt;78.5%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;td&gt;70.0%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Humanity’s Last Exam (w/ tools)&lt;/td&gt;
&lt;td&gt;57.2%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;td&gt;65.0%&lt;/td&gt;
&lt;td&gt;63.6%&lt;/td&gt;
&lt;td&gt;–&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What this actually tells us:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Astra’s clearest strength is computer use.&lt;/strong&gt; It leads Claude Opus 5 on OSWorld 2.0 and does it in meaningfully less time per task.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Its coding scores have improved substantially&lt;/strong&gt; over its own predecessor, though the lead over Claude Fable 5.1 on Terminal-Bench 4.0 is narrow rather than decisive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is not universally ahead of Claude.&lt;/strong&gt; On Humanity’s Last Exam with tools, Astra scores 57.2%, behind both Claude Fable 5.1 (65.0%) and Claude Opus 5 (63.6%).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Some headline numbers rely on evaluation setups that don’t reflect normal usage.&lt;/strong&gt; Astra’s marketed 99.9% on ARC-AGI-3 depends on an expensive, stateful evaluation harness. Independent testing by the ARC Prize Foundation found that a standard, stateless API call scores far lower, somewhere between 17% and 63% depending on the reasoning tier used.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  GPT-6 Astra vs Claude Fable 5.1 Comparison
&lt;/h2&gt;

&lt;p&gt;As neither model is publicly available yet, early access users on X have been sharing interesting examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building a 3D Villa from a Single Prompt
&lt;/h3&gt;

&lt;p&gt;Developer Karan Kendre posted a head-to-head Blender comparison, asking both models to build the same villa scene. &lt;strong&gt;Astra comes out ahead&lt;/strong&gt;, with a more polished and realistic-looking result, particularly in interior details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Designing a Travel App from the Same Prompt
&lt;/h3&gt;

&lt;p&gt;Both models were prompted to design an app with the same goal. Fable went sky-themed, while Astra took an astro-inspired approach. &lt;strong&gt;Astra comes out ahead&lt;/strong&gt;, with a more distinctive visual identity and stronger thematic consistency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Prompt Generation
&lt;/h3&gt;

&lt;p&gt;Both models generated a prompt for the same video concept, then created using Higgsfield AI. &lt;strong&gt;Astra comes out ahead&lt;/strong&gt;, with a more coherent sequence and stronger visual storytelling.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cost of GPT Astra
&lt;/h2&gt;

&lt;p&gt;GPT-6 Astra is rolling out in stages: limited organizations first, then all ChatGPT Plus, Pro, Business, and Enterprise users over the following days.&lt;/p&gt;

&lt;p&gt;For developers, Astra is available as &lt;code&gt;gpt-6-astra&lt;/code&gt; through the OpenAI API, Microsoft Azure, and Amazon Bedrock.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API pricing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: $10 per million tokens&lt;/li&gt;
&lt;li&gt;Output: $50 per million tokens&lt;/li&gt;
&lt;li&gt;Fast mode: roughly 2.5x the speed at 2x the price&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s well above GPT-5.6 Terra’s $2/$12 rates and Claude Opus 5’s $5/$25 rates. The pricing is a signal: this is built for high-value autonomous work, not routine bulk-text generation.&lt;/p&gt;

&lt;p&gt;The model also supports zero data retention for eligible API customers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The real test for Astra won’t be whether it can top another benchmark. It will be whether companies can hand it a messy, multi-step task and trust it to get the job done with minimal supervision.&lt;/p&gt;

&lt;p&gt;On paper, Astra looks like a significant step forward, particularly in computer use, coding, and agentic workflows. But it doesn’t lead everywhere. Claude’s models still have an edge on broader reasoning benchmarks.&lt;/p&gt;

&lt;p&gt;The bigger question is what happens outside the leaderboard. Once Astra is widely available, real-world testing will show whether its strengths translate into reliable, everyday workflows. That’s the test that matters most.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gpt6astra</category>
      <category>frontiermodel</category>
    </item>
    <item>
      <title>🦀 Learn Rust - From Zero to Master</title>
      <dc:creator>Hieu Louis</dc:creator>
      <pubDate>Tue, 04 Aug 2026 05:50:37 +0000</pubDate>
      <link>https://dev.to/hieulouis/learn-rust-from-zero-to-master-1mp2</link>
      <guid>https://dev.to/hieulouis/learn-rust-from-zero-to-master-1mp2</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/hieulouisdev/learn-rust.git" rel="noopener noreferrer"&gt;https://github.com/hieulouisdev/learn-rust.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repository is a complete, self-contained journey through the Rust programming language. It is designed for absolute beginners who have never written a line of code, all the way to advanced Rustaceans who want to understand unsafe code, macros, and async internals.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>rust</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
