<?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: Md Jamilur Rahman</title>
    <description>The latest articles on DEV Community by Md Jamilur Rahman (@jamilxt).</description>
    <link>https://dev.to/jamilxt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F167939%2Fe9f79c11-0d2b-4558-89b3-4c0ff54e8821.jpg</url>
      <title>DEV Community: Md Jamilur Rahman</title>
      <link>https://dev.to/jamilxt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jamilxt"/>
    <language>en</language>
    <item>
      <title>25 Years of Headaches. Zero Doctors Found the Cause. One AI Conversation Did.</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Fri, 03 Jul 2026 21:12:54 +0000</pubDate>
      <link>https://dev.to/jamilxt/25-years-of-headaches-zero-doctors-found-the-cause-one-ai-conversation-did-2j10</link>
      <guid>https://dev.to/jamilxt/25-years-of-headaches-zero-doctors-found-the-cause-one-ai-conversation-did-2j10</guid>
      <description>&lt;p&gt;A 62-year-old man in India. Kidney failure, on dialysis three times a week. Diabetes. Hypertension. A stroke six years ago. And one symptom nobody could explain: severe headaches, but only when lying down to sleep.&lt;/p&gt;

&lt;p&gt;For 25 years, specialists came up empty.&lt;/p&gt;

&lt;p&gt;Then his nephew uploaded everything into Claude. And the AI asked one question that changed everything: "Does he snore?"&lt;/p&gt;

&lt;p&gt;The answer was yes. Loudly. For 25 years.&lt;/p&gt;

&lt;p&gt;That was the clue. The sleep study confirmed severe sleep apnea: 119 breathing stops per night, oxygen dropping to 78%, 47 oxygen desaturations per hour. CPAP treatment started. Headaches gone. (&lt;a href="https://www.indiatoday.in/trending-news/story/man-claims-ai-bot-helped-uncover-his-uncles-decades-old-undiagnosed-condition-in-viral-post-2888334-2026-03-28" rel="noopener noreferrer"&gt;India Today&lt;/a&gt;, &lt;a href="https://www.ndtv.com/offbeat/25-years-zero-answers-man-claims-claude-ai-identified-the-cause-of-his-uncles-chronic-headaches-11281229" rel="noopener noreferrer"&gt;NDTV&lt;/a&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  What Actually Happened
&lt;/h2&gt;

&lt;p&gt;The story was posted on Reddit's r/ClaudeAI community by user u/the_kuka in March 2026. It went viral immediately, covered by India Today, NDTV, Hindustan Times, Economic Times, and Times of India within days.&lt;/p&gt;

&lt;p&gt;Here's the timeline:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;25 years of symptoms.&lt;/strong&gt; The uncle had loud snoring, daytime exhaustion, and severe positional headaches (only when lying down). Every doctor attributed the fatigue to "dialysis fatigue" or "age." The snoring was something the family joked about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple specialists, zero connections.&lt;/strong&gt; He saw neurologists. He saw nephrologists. He had brain MRIs and blood work. Each specialist looked at their domain. Nobody stepped back and asked what connected everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One conversation with Claude.&lt;/strong&gt; The nephew compiled all medical records, MRI notes, and symptom history, and uploaded them. Over several days, Claude did three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identified the positional pattern&lt;/strong&gt; as the key clue. Headaches triggered by lying down is not random. It points to something that happens during sleep.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pulled research&lt;/strong&gt; showing 40-57% of dialysis patients have undiagnosed sleep apnea. This is a published statistic, not a guess.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Asked about snoring.&lt;/strong&gt; This is the question no specialist had asked in 25 years. The answer was immediate and obvious in hindsight. (&lt;a href="https://chetanpujari.substack.com/p/25-years-zero-answers-one-claude" rel="noopener noreferrer"&gt;Substack - Chetan Pujari&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The sleep study confirmed it.&lt;/strong&gt; Severe obstructive sleep apnea. CPAP treatment resolved the headaches.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Doctors Missed It
&lt;/h2&gt;

&lt;p&gt;This is not a story about doctors being incompetent. It is a story about how medical systems work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specialists work in silos.&lt;/strong&gt; Nephrology looks at kidneys. Neurology looks at the brain. Pulmonology looks at lungs. When a patient has symptoms that cross domains, nobody owns the full picture. The positional headache was a neurological symptom. The snoring was a pulmonary symptom. The dialysis fatigue was a nephrological symptom. Each specialist saw their piece.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nobody asked about snoring.&lt;/strong&gt; This is the detail that a doctor commenting on the Reddit thread confirmed: "As a doctor I'll say, this is not common. You'd have to ask about snoring and apnoeic episodes in the first place, which often doesn't happen." (&lt;a href="https://www.ndtv.com/offbeat/25-years-zero-answers-man-claims-claude-ai-identified-the-cause-of-his-uncles-chronic-headaches-11281229" rel="noopener noreferrer"&gt;NDTV&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time pressure.&lt;/strong&gt; Doctors in India see 40-60 patients a day. There is no 45-minute holistic intake. The system is not built for cross-domain reasoning on complex cases.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Claude Actually Did
&lt;/h2&gt;

&lt;p&gt;Let's be precise about what happened, because the "AI replaces doctors" narrative is wrong here.&lt;/p&gt;

&lt;p&gt;Claude did not diagnose the uncle. Claude connected dots across domains, suggested a possibility, and recommended a sleep study. A doctor ordered the study. A doctor confirmed the diagnosis. A doctor prescribed the CPAP machine.&lt;/p&gt;

&lt;p&gt;What Claude specifically did:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Analyzed the MRI report&lt;/strong&gt; and flagged findings that had not been emphasised&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculated a STOP-BANG score&lt;/strong&gt; of 6-7 out of 8 (extremely high risk for sleep apnea)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Created a diagnostic roadmap&lt;/strong&gt;: which specialist to see first, what tests to request, what questions to ask&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Helped with CPAP setup&lt;/strong&gt;: picked the right machine, explained settings, wrote maintenance instructions in Gujarati (the family's native language)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI did not replace the doctors. It helped the family advocate. It helped them walk into the pulmonologist's office prepared with the right questions.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Takeaway
&lt;/h2&gt;

&lt;p&gt;Sleep apnea affects an estimated 936 million adults worldwide, and roughly 80% of moderate-to-severe cases go undiagnosed. (&lt;a href="https://aasm.org/" rel="noopener noreferrer"&gt;American Academy of Sleep Medicine, 2018 study&lt;/a&gt;) In dialysis patients specifically, the 40-57% undiagnosed rate that Claude cited is from published research.&lt;/p&gt;

&lt;p&gt;The question this story raises is not whether AI is smarter than doctors. It is whether our medical systems are structured to catch cross-domain conditions. Right now, they are not.&lt;/p&gt;

&lt;p&gt;A tool that can take unlimited time, reason across specialties, and ask simple follow-up questions filled a gap that the system created. Not by being intelligent. By being thorough.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Caveats
&lt;/h2&gt;

&lt;p&gt;One story is not a clinical trial. Important things to keep in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confirmation bias.&lt;/strong&gt; We hear about the AI success story. We do not hear about the thousands of times AI suggested wrong diagnoses that led to wasted tests or anxiety.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No medical license.&lt;/strong&gt; AI cannot practice medicine. It should not be your first stop for medical advice. It is a tool, not a doctor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data privacy.&lt;/strong&gt; Uploading medical records to an AI chatbot raises serious privacy concerns. Health data is sensitive, and chatbot companies' data handling policies vary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The diagnosis was obvious in hindsight.&lt;/strong&gt; Snoring for 25 years. Daytime exhaustion. Positional headaches. Any doctor who asked the right question would have caught it. The problem was not medical complexity. It was a system that did not ask.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;For 25 years, the answer was hiding in plain sight. In the snoring the family joked about. In the afternoon naps everyone thought were normal. In a simple question nobody asked.&lt;/p&gt;

&lt;p&gt;Does he snore?&lt;/p&gt;

&lt;p&gt;Sometimes breakthroughs do not require new medicine. They require connecting obvious dots. And sometimes, the tool that helps you do that is AI.&lt;/p&gt;

&lt;p&gt;Not because it is brilliant. Because it is patient enough to ask.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.indiatoday.in/trending-news/story/man-claims-ai-bot-helped-uncover-his-uncles-decades-old-undiagnosed-condition-in-viral-post-2888334-2026-03-28" rel="noopener noreferrer"&gt;India Today - Man claims AI bot helped uncover uncle's undiagnosed condition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ndtv.com/offbeat/25-years-zero-answers-man-claims-claude-ai-identified-the-cause-of-his-uncles-chronic-headaches-11281229" rel="noopener noreferrer"&gt;NDTV - "25 Years, Zero Answers": Man Claims Claude AI Identified The Cause&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chetanpujari.substack.com/p/25-years-zero-answers-one-claude" rel="noopener noreferrer"&gt;Substack - Chetan Pujari: 25 Years. Zero Answers. One Claude Conversation Changed Everything&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/ClaudeAI/comments/1s41fny/25_years_multiple_specialists_zero_answers_one/" rel="noopener noreferrer"&gt;Reddit - r/ClaudeAI: Original post by u/the_kuka&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>medical</category>
      <category>claude</category>
    </item>
    <item>
      <title>Someone dumped 20 zero-days on open source tools with no warning. The fuzzing was run by AI.</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sun, 28 Jun 2026 02:06:52 +0000</pubDate>
      <link>https://dev.to/jamilxt/someone-dumped-20-zero-days-on-open-source-tools-with-no-warning-the-fuzzing-was-run-by-ai-l3m</link>
      <guid>https://dev.to/jamilxt/someone-dumped-20-zero-days-on-open-source-tools-with-no-warning-the-fuzzing-was-run-by-ai-l3m</guid>
      <description>&lt;p&gt;Last week an anonymous GitHub account called &lt;code&gt;bikini&lt;/code&gt; pushed a repository named &lt;code&gt;exploitarium&lt;/code&gt; and, in the space of a few days, dropped more than twenty proof-of-concept exploits against popular open source software. nmap, Ghidra, FFmpeg, VLC, Firefox, libssh2, c-ares, OpenVPN, Docker, PHP, ImageMagick. None of the bugs had been reported to the maintainers beforehand. None were patched. The README said so plainly: at the time of posting, none had been reported, and you were free to file them yourself and "take credit for the CVE."&lt;/p&gt;

&lt;p&gt;It hit the top of Hacker News and the thread filled up fast, and the argument that broke out underneath is more interesting than the exploits themselves.&lt;/p&gt;

&lt;p&gt;This is worth paying attention to if you build, ship, or rely on open source infrastructure. Which is most of us.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually got dropped
&lt;/h2&gt;

&lt;p&gt;The repository is a single consolidated archive. Twenty-three folders, each one a self-contained proof of concept against a different target. Some are network plumbing you probably run without thinking about it: c-ares (the DNS resolver library behind curl and a long list of other tools), libssh2, nghttp2, OpenVPN. Some are tools developers use directly: Ghidra and objdump for reverse engineering, nmap for scanning, Wireshark-adjacent dissectors in spirit if not in this specific repo. Several are media decoders, which is a category that has been quietly dangerous for two decades: FFmpeg, VLC, ImageMagick, 7-Zip's RAR5 handling.&lt;/p&gt;

&lt;p&gt;A few of the entries already carry CVE numbers. &lt;code&gt;libssh2-cve-2026-55200&lt;/code&gt; is in there by name. Others read like serious findings: use-after-free bugs, RCE candidates, a privilege escalation in MyBB, a local privilege escalation in SystemInformer. The nmap one targets IPv6 extension-length parsing, and several people in the thread flagged it as potentially high severity because it sits in parser code, which is exactly where remote code execution tends to hide.&lt;/p&gt;

&lt;p&gt;So this is not one researcher responsibly nudging one vendor. It is someone emptying a notebook onto the public internet, all at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some of these are real. Some are not.
&lt;/h2&gt;

&lt;p&gt;Here is where the story gets complicated, and why the Hacker News thread turned into a forensic argument rather than a victory lap.&lt;/p&gt;

&lt;p&gt;People who actually know these codebases went digging, and the verdict was mixed. A Ghidra user pointed out that one of the three Ghidra findings requires you to already have the ability to overwrite binaries in the Swift tool directory. If you can overwrite the binaries a program runs, yes, you get code execution. That is not a vulnerability. That is how computers work. Someone else called the Docker entry "just a weird bug" rather than an exploitable flaw, and the VLC proof of concept landed as a straight crash with no path to running arbitrary code.&lt;/p&gt;

&lt;p&gt;But not everything was dismissed. The same person who brushed off Ghidra checked c-ares, libssh2, and FFmpeg and said the bugs there "seem to all work as of the latest upstream commit." The nmap parser bug drew serious concern. The Firefox one, which involves the private-data and untrusted-input flags, sounded plausible to people who don't work on Firefox internals but couldn't fully rule it in or out.&lt;/p&gt;

&lt;p&gt;This is the messy reality of a drop like this. No single person is an expert on every codebase. A maintainer of FFmpeg is not also a maintainer of OpenVPN. So when twenty bugs land at once, the entire security community has to scramble to triage them in parallel, and a lot of that triage happens in public, badly, on a forum, while the clock runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fuzzing was run by AI
&lt;/h2&gt;

&lt;p&gt;This is the part I keep coming back to.&lt;/p&gt;

&lt;p&gt;After the initial wave of criticism, the account posted a statement, and it is unusually honest about method. The fuzzing workflow was automated. All of it. They used GPT-5.5-3-Codex-Spark to run the fuzzing against a strict harness, and the AI flagged candidate bugs that a human then investigated and confirmed.&lt;/p&gt;

&lt;p&gt;Two things in that statement stood out. First, the author pushes back hard on the idea that you need a frontier model to find these. "You do not need a SOTA model to help you identify these issues," they wrote. Their data, they claim, shows that the model choice is marginal once you pair decent human oversight with a good harness. Second, they are explicit about what was and was not AI-generated: the proofs of concept were hand-typed, except RustDesk, where they leaned on AI because they are less fluent in the language. The README writeups, they admit, are "very clearly entirely AI," because an LLM formats Markdown well and they reviewed the output for accuracy.&lt;/p&gt;

&lt;p&gt;Read that again. The discovery was AI-assisted and scaled. The writeups were AI-generated. The actual exploit code was human. That division of labor is probably the template for the next few years of security research, and it is a little unsettling how productive it is.&lt;/p&gt;

&lt;p&gt;We are used to thinking of AI as either a coding autocomplete or a threat that writes malware. This is neither. It is an analyst that never sleeps, pointing a human at the exact lines of C where an integer wraps or a buffer gets reused after free. The human still has to write the exploit and confirm it lands. But the finding, the part that used to take weeks of manual auditing, got compressed into an automated loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full disclosure, the brutal kind
&lt;/h2&gt;

&lt;p&gt;The ethical question underneath all of this is older than the internet, and it never gets resolved. It just gets re-litigated every time someone drops a batch of bugs.&lt;/p&gt;

&lt;p&gt;There are two camps, and both have a real point.&lt;/p&gt;

&lt;p&gt;Coordinated disclosure says you tell the maintainer first, give them a reasonable window, usually sixty to ninety days, to ship a fix, and only then publish. The argument is simple: publishing a working exploit for an unpatched bug puts every user at risk the moment it goes public, and the people who get hurt first are not the maintainers. They are the admins and end users who had no say in the matter.&lt;/p&gt;

&lt;p&gt;Full disclosure says the opposite. Publish immediately. The argument has a few forms, but the core one is that secret bugs are not safe. They sit in the code whether or not they are public, and the only people who benefit from them staying quiet are attackers who already know. Public pressure, the full-disclosure crowd argues, is the only reliable way to get things fixed. Vendors drag their feet. ninety-day windows stretch into years. Silence protects nobody.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;bikini&lt;/code&gt; account took the most extreme version of full disclosure. No private report. No window. No warning. The bugs went straight to GitHub, working exploits attached, and the author invited the community to do the responsible reporting themselves.&lt;/p&gt;

&lt;p&gt;In the Hacker News thread the split was visible in real time. One commenter said flatly that they prefer these being public over sitting in "some government or corporate toolbox." Another countered that disclosure still enables better software to exist, even if nobody follows through. A third, the one I found most honest, said the whole situation just sucks: we are apparently going to need every open source project in the world to stop and audit this one repository on the off chance that their codebase is in it.&lt;/p&gt;

&lt;p&gt;I do not have a clean answer here. Coordinated disclosure is the grown-up choice and I lean toward it, but I also cannot pretend the full-disclosure argument is wrong. What I am certain of is that this model, one person emptying twenty bugs onto GitHub with no warning, is going to get copied. The cost of doing it just dropped, because of the AI fuzzing part.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why parsers keep losing
&lt;/h2&gt;

&lt;p&gt;Step back from this specific drop and a pattern is obvious, and it is not new.&lt;/p&gt;

&lt;p&gt;Almost every target in the repo parses untrusted input in C. Network protocol parsers. Container formats. Image and video decoders. DNS messages. SSH handshakes. The reason Wireshark dissectors came up repeatedly in the discussion, even though Wireshark is not directly in this repo, is that dissectors are protocol decoders written almost entirely in C, and anyone who can send packets can pick which decoder runs. The same is true of media players: hand VLC a malformed VP9 stream and you are exercising C code that was never formally verified, written under deadline pressure, handling a format specification that runs hundreds of pages.&lt;/p&gt;

&lt;p&gt;C is not the enemy. A lot of the most important software in the world is written in it. But C does not check your bounds, and it does not refuse to use memory after you free it, and it does not tell you when you have wrapped an integer past its maximum. Every parser written in C is a standing invitation to exactly the class of bug that fills this repository: use-after-free, out-of-bounds write, integer overflow that becomes a memory corruption.&lt;/p&gt;

&lt;p&gt;This is why the Rust rewrite movement exists. It is why curl now ships an optional Rust-based DNS resolver. It is why people keep trying to move parsers into memory-safe languages. The bugs in &lt;code&gt;exploitarium&lt;/code&gt; are not exotic. They are the same bugs we have been shipping for forty years, found faster, by a loop that runs while the human sleeps.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you should actually do
&lt;/h2&gt;

&lt;p&gt;If you maintain or operate any of the affected software, the practical moves are unglamorous.&lt;/p&gt;

&lt;p&gt;Patch as fixes land. The maintainers are going to be triaging in public over the coming weeks, and the responsible thing for everyone else is to follow their advisories and update promptly. Do not pull proof-of-concept code from a random GitHub repository onto a production machine to "test" it. Several commenters joked about the irony of security hobbyists rushing to download exploits and compromising themselves in the process. It is not really a joke.&lt;/p&gt;

&lt;p&gt;If you run services that accept untrusted input, and you probably do, sandbox the parser. Run your media decoders and protocol parsers in containers or seccomp-restricted processes. Network parsers like nmap and protocol dissectors belong behind a trust boundary, not on a laptop that also holds your SSH keys.&lt;/p&gt;

&lt;p&gt;And if you are a maintainer of C-based parsing code, this is a good week to look at property-based testing and continuous fuzzing of your own. The author of this drop built an AI-assisted harness in their spare time. Organizations with actual budgets can do the same thing before someone else does it for them and publishes the results without warning.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that stays with me
&lt;/h2&gt;

&lt;p&gt;I keep thinking about the asymmetry. One anonymous person, an AI fuzzing loop, a GitHub account, and suddenly twenty open source projects have to drop everything and figure out whether they are on fire. The maintainer of a small library does not have a security team. They have evenings and weekends and a day job. Multiply that across twenty-three codebases and you get a meaningful slice of the open source world burning cycles it does not have.&lt;/p&gt;

&lt;p&gt;The bugs are real, or some of them are. The disclosure ethics are debatable, and reasonable people land on different sides. But the part that feels new is the speed and the scale, and the fact that the loop behind it is going to get cheaper, not more expensive, from here. The next drop will be bigger. It will probably also be messier.&lt;/p&gt;

&lt;p&gt;We have been treating memory bugs in parsers as a background fact of computing for decades. That background hum is about to get louder.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>news</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>Setting Up VS Code for Java Development</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sat, 27 Jun 2026 02:04:51 +0000</pubDate>
      <link>https://dev.to/jamilxt/setting-up-vs-code-for-java-development-cmp</link>
      <guid>https://dev.to/jamilxt/setting-up-vs-code-for-java-development-cmp</guid>
      <description>&lt;p&gt;VS Code is the most popular code editor on the planet. It's fast, free, and runs everywhere. But out of the box, it knows nothing about Java. Open a &lt;code&gt;.java&lt;/code&gt; file and you get syntax highlighting. That's it. No autocomplete for your imports, no "click to run" button, no debugger.&lt;/p&gt;

&lt;p&gt;The fix takes about two minutes. You install a Java extension, point it at a JDK, and you're writing real Java with a real debugger. Let me walk through the whole thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install the Java extension
&lt;/h2&gt;

&lt;p&gt;VS Code calls everything an "extension." For Java, you have a couple of options. This guide follows the one Oracle maintains, called the &lt;strong&gt;Oracle Java Platform&lt;/strong&gt; extension. (Microsoft also publishes an "Extension Pack for Java" that bundles several tools together. Both get you up and running. Pick whichever you like.)&lt;/p&gt;

&lt;p&gt;To install it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open VS Code.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Code &amp;gt; Settings &amp;gt; Extensions&lt;/strong&gt; (or press &lt;code&gt;Ctrl+Shift+X&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Search for "Oracle Java Platform" and click &lt;strong&gt;Install&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the setup. The extension handles compiling, running, debugging, and project management under the hood.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make sure you have a JDK
&lt;/h2&gt;

&lt;p&gt;A JDK (Java Development Kit) is what actually compiles and runs your code. VS Code can't do Java without one.&lt;/p&gt;

&lt;p&gt;Here's the nice part: if you don't have a JDK installed, the extension can download one for you. Open the command palette (&lt;code&gt;Ctrl+Shift+P&lt;/code&gt;, or &lt;code&gt;Cmd+Shift+P&lt;/code&gt; on Mac) and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Download, install, and Use JDK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pick a version from the list. 17 and 21 are both good choices for new projects. The extension downloads it and saves the path in your settings, so you never have to wrestle with environment variables.&lt;/p&gt;

&lt;p&gt;Already have a JDK? The extension finds it automatically by checking &lt;code&gt;JAVA_HOME&lt;/code&gt; and &lt;code&gt;JDK_HOME&lt;/code&gt;, then your system PATH. You can override it later in settings under &lt;code&gt;jdk.jdkhome&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;One thing to keep in mind: the extension needs JDK 11 or newer. If you're stuck on Java 8 for an old project, you can still write code that targets 8. But VS Code itself runs on a newer JDK.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create your first project
&lt;/h2&gt;

&lt;p&gt;Now you can actually build something. Open the command palette again and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Java: New Project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choose &lt;strong&gt;Java with Maven&lt;/strong&gt;. It asks for a folder name (let's say &lt;code&gt;myapp&lt;/code&gt;) and a package name (something like &lt;code&gt;com.example&lt;/code&gt;). Hit Enter.&lt;/p&gt;

&lt;p&gt;The extension generates a basic Maven project: a &lt;code&gt;pom.xml&lt;/code&gt; file, a &lt;code&gt;src/main/java&lt;/code&gt; folder, and a starter class. Maven is a build tool that manages dependencies and packaging. For now, all you need to know is that &lt;code&gt;pom.xml&lt;/code&gt; is where your project configuration lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write some code and run it
&lt;/h2&gt;

&lt;p&gt;Open the generated Java class and replace its contents with something simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="nn"&gt;com.example&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyApp&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello from VS Code!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To run it, look just above the &lt;code&gt;main&lt;/code&gt; method. You'll see two little links: &lt;strong&gt;Run main&lt;/strong&gt; and &lt;strong&gt;Debug main&lt;/strong&gt;. Click &lt;strong&gt;Run main&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Your output appears in the terminal panel at the bottom. No manual compile step, no &lt;code&gt;javac&lt;/code&gt; command. The extension compiles and runs behind the scenes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debug like you mean it
&lt;/h2&gt;

&lt;p&gt;Click &lt;strong&gt;Debug main&lt;/strong&gt; instead, and VS Code drops you into the debugger. Set breakpoints by clicking in the gutter next to line numbers, then step through your code one line at a time.&lt;/p&gt;

&lt;p&gt;The debugger supports what you'd expect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pause and resume&lt;/li&gt;
&lt;li&gt;Step over, step into, step out&lt;/li&gt;
&lt;li&gt;Inspect variables mid-run&lt;/li&gt;
&lt;li&gt;Evaluate expressions on the fly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Need to pass arguments to your program, like a list of numbers? Open the &lt;strong&gt;Run and Debug&lt;/strong&gt; panel, find your launch configuration, and add them to the Program Arguments field. There's a &lt;code&gt;launch.json&lt;/code&gt; file generated for you where all of this lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Refactoring and shortcuts
&lt;/h2&gt;

&lt;p&gt;This is where a real editor earns its keep. The Oracle extension can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate &lt;code&gt;toString()&lt;/code&gt;, &lt;code&gt;hashCode()&lt;/code&gt;, and &lt;code&gt;equals()&lt;/code&gt; for you&lt;/li&gt;
&lt;li&gt;Organize and sort imports automatically (turn on "Organize Imports on Save" in settings and forget about it)&lt;/li&gt;
&lt;li&gt;Rename methods and move classes between packages without breaking references&lt;/li&gt;
&lt;li&gt;Convert &lt;code&gt;.get(0)&lt;/code&gt; to the newer &lt;code&gt;.getFirst()&lt;/code&gt; syntax (Java 21 and up) across your whole project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of these live under the &lt;strong&gt;Source Action&lt;/strong&gt; right-click menu, or the little lightbulb icon that appears next to your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate tests
&lt;/h2&gt;

&lt;p&gt;Right-click a class, pick &lt;strong&gt;Source Action &amp;gt; Create Test Class&lt;/strong&gt;, and the extension scaffolds a test file with empty test methods. Fill them in with your assertions, then use the &lt;strong&gt;Test Explorer&lt;/strong&gt; to run individual tests or the full suite. Green checkmarks mean passing tests, red means something broke. Straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaDoc in two keystrokes
&lt;/h2&gt;

&lt;p&gt;Type &lt;code&gt;/**&lt;/code&gt; above any method and press Enter. The extension generates a JavaDoc comment with placeholders for each parameter and the return value. It sounds minor, but you'll reach for this constantly once you know it's there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install the Oracle Java Platform extension (or Microsoft's Extension Pack for Java) from the VS Code marketplace.&lt;/li&gt;
&lt;li&gt;No JDK? The extension downloads one for you. It needs JDK 11 or newer.&lt;/li&gt;
&lt;li&gt;Create a project through &lt;strong&gt;Java: New Project&lt;/strong&gt; in the command palette.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Run main&lt;/strong&gt; or &lt;strong&gt;Debug main&lt;/strong&gt; above your &lt;code&gt;main&lt;/code&gt; method to execute code.&lt;/li&gt;
&lt;li&gt;The debugger gives you breakpoints, stepping, and live variable inspection.&lt;/li&gt;
&lt;li&gt;Use Source Actions to generate boilerplate, organize imports, and refactor safely.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;/**&lt;/code&gt; above a method to auto-generate JavaDoc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on dev.java/learn — &lt;a href="https://dev.java/learn/vscode-java/" rel="noopener noreferrer"&gt;https://dev.java/learn/vscode-java/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>tooling</category>
      <category>tutorial</category>
      <category>vscode</category>
    </item>
    <item>
      <title>ভালো টিম আর দুর্দান্ত টিমের মধ্যে পার্থক্য কোথায়?</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sat, 27 Jun 2026 02:04:15 +0000</pubDate>
      <link>https://dev.to/jamilxt/bhaalo-ttim-aar-durdaant-ttimer-mdhye-paarthky-kothaay-4e08</link>
      <guid>https://dev.to/jamilxt/bhaalo-ttim-aar-durdaant-ttimer-mdhye-paarthky-kothaay-4e08</guid>
      <description>&lt;p&gt;গত মাসে আমাদের একটা payment system এ বারবার একই সমস্যা আসছিল। Transaction fail হচ্ছে, একজন developer ঠিক করছে, ticket close হচ্ছে। তিনদিন পর আবার একই জিনিস।&lt;/p&gt;

&lt;p&gt;আমি log গুলো দেখলাম। একই মূল কারণ। কিন্তু কেউ সেটা fix করেনি। সবাই শুধু symptom দূর করে চলে গেছে। ভেতরের অসুখটা ধরেনি।&lt;/p&gt;

&lt;p&gt;মাস শেষে হিসাব করলাম। একই সমস্যায় টিম ১০+ ঘণ্টা নষ্ট করেছে। মূল কারণটা fix করতে ৫-৬ ঘণ্টা লাগতো।&lt;/p&gt;

&lt;p&gt;সত্যি বলতে, এটা শুধু আমাদের টিমের সমস্যা না। Brain Station 23, Selise, TigerIT এর মত company গুলোতেও এই জিনিসটা দেখা যায়। প্রায় প্রতিটা software team এ।&lt;/p&gt;

&lt;p&gt;Anton Zaides, Manager.dev newsletter এর লেখক এবং ১৫+ বছরের tech experience নিয়ে কাজ করছেন। তিনি এই বিষয়ে বিস্তারিত লিখেছেন (&lt;a href="https://newsletter.manager.dev/p/okay-vs-excellent-engineering-teams" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। উনার মতে, একটা "ভালো" টিম আর "দুর্দান্ত" টিমের মধ্যে পার্থক্য মোটে ৭টা ছোট অভ্যাসে।&lt;/p&gt;

&lt;p&gt;কাজ দুগুণ করা না। ১০x engineer থাকা না। শুধু কিছু habit।&lt;/p&gt;

&lt;p&gt;আমি উনার ১০টা article পড়েছি। নিজের ৫ বছরের experience মিলিয়ে, এই ৭টা habit, ২টা bonus point, আর FDE এর মত নতুন concept গুলো আমাদের দেশের software company গুলোতে কীভাবে কাজে লাগে, সেটা লিখছি।&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;কিছু শব্দ আগেই বুঝে নিই:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;EM / Team Lead&lt;/strong&gt; = Engineering Manager। আমাদের দেশে একে Team Lead, Project Lead, বা Tech Lead ও বলা হয় (যিনি টিম চালান)&lt;br&gt;
&lt;strong&gt;PM&lt;/strong&gt; = Product Manager (যিনি কী feature বানাবে ঠিক করেন)&lt;br&gt;
&lt;strong&gt;Ticket&lt;/strong&gt; = Jira/Trello তে কাজের একটা item&lt;br&gt;
&lt;strong&gt;PR&lt;/strong&gt; = Pull Request (code review এর জন্য কোড submit করা)&lt;br&gt;
&lt;strong&gt;Deploy&lt;/strong&gt; = code production server এ পাঠানো&lt;br&gt;
&lt;strong&gt;Tech Debt&lt;/strong&gt; = এমন code বা architecture যেটা পরে সমস্যা তৈরি করবে (ঋণের মতো, পরে শোধ করতে হয়)&lt;br&gt;
&lt;strong&gt;Bottleneck&lt;/strong&gt; = এমন একটা জায়গা যেটা পুরো কাজকে ধীর করে দেয়&lt;br&gt;
&lt;strong&gt;AI Coding Tool&lt;/strong&gt; = Cursor, Claude Code, GitHub Copilot এর মত tool যা code লিখতে, review করতে, debug করতে সাহায্য করে&lt;br&gt;
&lt;strong&gt;FDE&lt;/strong&gt; = Forward Deployed Engineer। engineer যিনি client এর কাছে সরাসরি থাকেন, তাদের সমস্যা বোঝেন, আর solution বানান&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  📌 Patch না, Root Cause
&lt;/h2&gt;

&lt;p&gt;ভালো টিম bug fix করে। সামনে এগোয়। কিন্তু একই bug আবার আসে। আবার fix। আবার আসে।&lt;/p&gt;

&lt;p&gt;আবার fix।&lt;/p&gt;

&lt;p&gt;একটা উদাহরণ দিই। ধরুন, আপনার পেট ব্যথা হচ্ছে বারবার। আপনি প্রতিবার painkiller খেয়ে সামলাচ্ছেন। কিন্তু ডাক্তার দেখাচ্ছেন না। এক সময় ব্যথা আরো বড় হবে।&lt;/p&gt;

&lt;p&gt;Software এও একই। bKash বা SSL Commerz integration এ কোনো timeout issue আসছে? alert ignore করছেন। test fail করলে restart দিচ্ছেন। manual কাজটা প্রতিদিন হাতে করছেন।&lt;/p&gt;

&lt;p&gt;সবই patch। আর patch জমতে থাকে।&lt;/p&gt;

&lt;p&gt;এখন যদি AI tool (Cursor, Copilot) ব্যবহার করেন? সেকেন্ডে bug ঠিক হয়ে যাচ্ছে। কিন্তু root cause? AI ও শুধু symptom ঠিক করছে। ভালো টিম এই trap এ পড়ে। দুর্দান্ত টিম প্রশ্ন করে, "AI কেন এটা ঠিক করলো? মূল সমস্যাটা কী?"&lt;/p&gt;

&lt;p&gt;xkcd এর একটা famous table আছে। যে কাজে আপনার সপ্তাহে ১৫ মিনিট যায়, সেটা fix করতে ২ দিন লাগলেও ৫ বছরে সেটা লাভের।&lt;/p&gt;

&lt;p&gt;একটু ভেবে দেখুন। আপনার টিমে কতগুলো এমন ছোট ছোট patch চলছে?&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম এই decision টা ভেবে নেয়। কতবার হচ্ছে, fix করতে কত সময়, সব হিসাব করে একটা clear decision। চুপচাপ মেনে নেওয়া না।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 কাজ করা না, Own করা
&lt;/h2&gt;

&lt;p&gt;ভালো টিমে engineer কাজ করে। Team Lead decide করে কে কী করবে, engineer execute করে।&lt;/p&gt;

&lt;p&gt;সোজা কথায়, Team Lead হয়ে যায় একটা "task routing machine।" টিকিট ঢুকছে, Lead assign করছে, engineer কাজ শেষ করছে। আবার নতুন ticket।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিমে engineer কাজ own করে। Anton একে বলেছেন "kingdom" (&lt;a href="https://newsletter.manager.dev/p/give-your-engineers-a-kingdom" rel="noopener noreferrer"&gt;source&lt;/a&gt;)।&lt;/p&gt;

&lt;p&gt;ধরুন, আপনার টিমে একটা notification service আছে। কে সেটার owner? যে engineer সেটা own করছে, সে-ই সেই service এর সব decision নেয়। কীভাবে চলবে, কখন update হবে, সব তার।&lt;/p&gt;

&lt;p&gt;এখন সত্যি কথা হলো, আমাদের দেশের অনেক company তে hierarchy খুব strong। Junior বা Mid-level engineer কে decision দেওয়া খুব rare। Senior বা Lead সব নেন।&lt;/p&gt;

&lt;p&gt;কিন্তু ছোট পরিসরে শুরু করা যায়। "তুমি এই module টা দেখো, তোমার decision" শুধু এটুকু বললেও একটা পরিবর্তন আসে।&lt;/p&gt;

&lt;p&gt;AI যুগে এটা আরো বেশি গুরুত্বপূর্ণ। AI যখন boilerplate code লিখে দিচ্ছে, তখন engineer এর মূল কাজ হলো decision নেওয়া। "কোন architecture, কোন design pattern," এসব decision এখন মানুষের।&lt;/p&gt;

&lt;p&gt;Anton আরেকটা article এ বলেছেন, developer রা কেন চাকরি ছাড়ে (&lt;a href="https://newsletter.manager.dev/p/why-developers-quit" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। প্রথম কারণটা salary না। প্রথম কারণ হলো, তারা মনে করছে আর নতুন কিছু শিখছে না।&lt;/p&gt;

&lt;p&gt;মানে, ownership দেওয়া শুধু ভালো কাজের জন্য না। ভালো engineer ধরে রাখার জন্যও।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 নিজেকে না, অন্যকে আগে
&lt;/h2&gt;

&lt;p&gt;আমাদের দেশের company গুলোতে একটা জিনিস খুব বেশি দেখি। এক টিম আরেক টিমের code review তে সপ্তাহ খানেক সময় নেয়। যে টিম review চেয়েছে, তারা অপেক্ষা করতে করতে হতাশ। শেষে নিজেরাই merge করে ফেলে।&lt;/p&gt;

&lt;p&gt;Anton এর নিজের একই experience আছে (&lt;a href="https://newsletter.manager.dev/p/the-delayed-opinions-givers-engineering" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। ঐ টিমের EM review তে ২ সপ্তাহ সময় নিয়েছেন। তারা হতাশায় নিজেরাই merge করে ফেলেছেন।&lt;/p&gt;

&lt;p&gt;খেয়াল করুন, review নিয়ে actual data কী বলে। Weave (৪০০+ company এর data analyze করে) এর research (&lt;a href="https://newsletter.manager.dev/p/the-price-of-mandatory-code-reviews" rel="noopener noreferrer"&gt;source&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;যে টিম ৩ ঘণ্টার মধ্যে review করে, তারা ৮+ ঘণ্টা নেওয়া টিমের চেয়ে &lt;strong&gt;২.১ গুণ বেশি productive&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;আর এখন AI reviewer আছে। Sumanyu এর টিম (Hamming AI) একসাথে কয়েকটা AI reviewer ব্যবহার করে (&lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। AI প্রথমে সব comment করে, engineer সেগুলো triage করে, তারপর human review আসে। ফলে PR merge এ সময় লাগে মাত্র ১-২ ঘণ্টা।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম ৯০% ক্ষেত্রে অন্য টিমের কাজ আগে করে। খুব কঠিন, বিশেষ করে আমাদের দেশে যেখানে টিমগুলোর মধ্যে "এটা আমার কাজ না" মানসিকতা বেশি। কিন্তু যে টিম এটা করে, পুরো company তে তার নাম হয়ে যায়।&lt;/p&gt;

&lt;p&gt;Anton, Adam Grant এর "Give and Take" book থেকে একটা জিনিস share করেছেন। মানুষ তিন রকমের হয়:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taker:&lt;/strong&gt; যারা শুধু নিজের সুবিধা চিন্তা করে।&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Matcher:&lt;/strong&gt; যারা help করে কিন্তু ভাবে, "আমি কালকে সাহায্য করলাম, আজকে সে আমাকে করবে।"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giver:&lt;/strong&gt; যারা কোনো শর্ত ছাড়াই help করে।&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;খেয়াল করুন, সবচেয়ে কম perform করে কারা? Giver। কারণ তারা সবাইকে help করে নিজের কাজ করতে পারে না।&lt;/p&gt;

&lt;p&gt;কিন্তু সবচেয়ে বেশি perform করে কারা?&lt;/p&gt;

&lt;p&gt;আবার Giver।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Execute না, Shape
&lt;/h2&gt;

&lt;p&gt;ভালো টিম PM বা client এর roadmap execute করে। PM decide করে কী হবে, engineer বানায়।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম roadmap বানাতে সাহায্য করে। Customer এর সাথে কথা বলে। Business বোঝে। যে feature টা make sense করে না, সেটায় push back করে।&lt;/p&gt;

&lt;p&gt;খেয়াল করুন, আমাদের দেশের সংস্কৃতিতে senior বা manager কে question করা "disrespect" মনে হয়। Power distance বেশি। কিন্তু push back মানে fight করা না। push back মানে হলো, "এই feature টার পরিবর্তে যদি এটা করি, customer আরো বেশি happy হবে।" Data দিয়ে কথা বলা।&lt;/p&gt;

&lt;p&gt;Anton নিজে একবার এই trap এ পড়েছিলেন। PM তাকে না জানিয়ে একটা deadline promise করেছিলেন। Anton রেগে যাওয়ার পরিবর্তে PM কে call করলেন। শান্তভাবে জিজ্ঞেস করলেন কেন। জানলেন PM ও ৩ জন executive এর pressure এ ছিলেন। তারপর দুজন মিলে plan বানালেন।&lt;/p&gt;

&lt;p&gt;মানে, সমস্যার দিকে না তাকিয়ে, সমাধানের দিকে তাকালে অনেক সমস্যা ছোট হয়ে যায়।&lt;/p&gt;

&lt;p&gt;Hamming AI এর CEO Sumanyu একটা দারুণ experiment করেছিলেন (&lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। তিনি আগে customer এর সাথে নিজে কথা বলতেন, তারপর engineer দের বুঝিয়ে বলতেন। Engineer রা customer এর আসল সমস্যা feel করতো না।&lt;/p&gt;

&lt;p&gt;তিনি engineer দের সরাসরি customer এর Slack channel এ যুক্ত করলেন। এখন engineer রা নিজে কথা বলে, নিজে সমস্যা বোঝে, আর অনেক সময় সেই দিনেই solution deploy করে দেয়।&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Maximize the bandwidth between the person who has the problem, and the person who can solve it।"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;আমাদের দেশে offshore project এ এটা আরো বেশি relevant। Client এর সাথে engineer এর direct communication না থাকলে কাজ দ্রুত হবে না।&lt;/p&gt;

&lt;p&gt;Palantir এর মত company গুলো এজন্য একটা role popularize করেছে, নাম &lt;strong&gt;Forward Deployed Engineer বা FDE&lt;/strong&gt;। FDE টিমে বসে code লেখে না। সরাসরি client এর কাছে যায়। তাদের workflow বোঝে, আসল সমস্যা দেখে, তারপর solution বানায়। অর্ধেক engineer, অর্ধেক business analyst।&lt;/p&gt;

&lt;p&gt;আমাদের দেশে এটা খুব কম দেখা যায়। অধিকাংশ offshore company তে engineer শুধু requirement document পায়। Client কে, তার business, তার আসল সমস্যা, কিছুই জানে না।&lt;/p&gt;

&lt;p&gt;ধরুন, bKash এর মত একটা fintech কোম্পানিতে কাজ করছেন। Client বললেন, "আমাদের একটা report dashboard দরকার।" আপনি বসে বানালেন। ২ সপ্তাহ পর deliver করলেন। Client দেখে বললেন, "এটা তো আমার দরকার না, আমি তো চেয়েছিলাম transaction summary।"&lt;/p&gt;

&lt;p&gt;FDE হলে কী হতো? আপনি client এর সাথে ১ ঘণ্টা কথা বলতেন। বুঝতেন তার আসল কী দরকার। তারপর ৩ দিনে সেটা বানিয়ে দিতেন। সময় বাঁচতো, client happy হতো, আপনিও frustrated হতেন না।&lt;/p&gt;

&lt;p&gt;AI যুগে কোড লেখা cheap হয়ে গেছে, কিন্তু "সঠিক সমস্যা চিনে নেওয়া" এখনো দামি skill। FDE টাইপ engineer রা এখন সবচেয়ে বেশি valuable।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Plan মেনে চলা না, Plan বাতিল করা
&lt;/h2&gt;

&lt;p&gt;Roadmap বানানো হলো। Phase ১, ২, ৩। Phase ১ এর পর customer feedback এলো, negative।&lt;/p&gt;

&lt;p&gt;কিন্তু Phase ২ এর কাজ শুরু হয়ে গেলো। কেউ থামতে চায় না।&lt;/p&gt;

&lt;p&gt;কেন? কারণ engineer রা শুনতেই চায় না যে কোড তারা লিখেছে সেটা বাদ দিতে হবে।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম শুরুতেই প্রশ্ন করে। কীভাবে measure করবো? Phase ১ success এর definition কী? লক্ষ্য পূরণ না হলে কী হবে? কী হলে আমরা feature টাই বাদ দেবো?&lt;/p&gt;

&lt;p&gt;শেষের প্রশ্নটা সবচেয়ে কঠিন। বেশিরভাগ company তে এর উত্তর নেই।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Launch না, Land
&lt;/h2&gt;

&lt;p&gt;ভালো টিম feature deploy করে। Production এ গেছে, PR merged, ticket closed। উৎসব।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম deploy কে অর্ধেক পথ মনে করে।&lt;/p&gt;

&lt;p&gt;কেউ কি আসলে use করছে? সংখ্যা কি এগোলো? কোনো সমস্যা আছে?&lt;/p&gt;

&lt;p&gt;আমি নিজে দেখেছি, feature এর পর feature ship হচ্ছে। প্রতিটা "done।" কিন্তু product তে কোনো improvement হচ্ছে না।&lt;/p&gt;

&lt;p&gt;Feature launch হলো। কিন্তু কাজে লাগলো না।&lt;/p&gt;

&lt;p&gt;offshore project এ এটা সবচেয়ে বেশি। Client feature চায়, টিম deliver করে, ticket close হয়। কেউ চেক করে না যে এটা আসলে কাজে লাগলো কি না।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Tech Debt কে অবহেলা না, Business Case
&lt;/h2&gt;

&lt;p&gt;ভালো টিমে দুটো backlog থাকে। Product backlog আর tech backlog। Tech এর জিনিসগুলো সবসময় পিছিয়ে যায় যখনই কিছু "urgent" আসে।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম tech এর প্রতিটা কাজ কে business value দিয়ে explain করে। "Monolith refactor করতে হবে" না। "এই logic টা আলাদা service এ নিলে আমরা ৩x দ্রুত feature ship করতে পারবো, অন্য টিমের জন্য অপেক্ষা করতে হবে না।"&lt;/p&gt;

&lt;p&gt;এখন AI যুগে এটা সবচেয়ে বড় ঝুঁকি। Pragmatic Engineer এর data বলছে (&lt;a href="https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when" rel="noopener noreferrer"&gt;source&lt;/a&gt;), developer রা এখন ৬ মাস আগের চেয়ে &lt;strong&gt;২ গুণ বেশি code&lt;/strong&gt; generate করছে। মানে ২ গুণ দ্রুত tech debt জমছে। যদি কেউ root cause না ভাবে, শুধু AI এর output accept করে, ৬ মাস পর সেই codebase এ কাজ করা দুঃস্বপ্ন হবে।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 যেটা দেখা যায় না
&lt;/h2&gt;

&lt;p&gt;Anton এর আরেকটা article পড়লে একটা অদ্ভুত জিনিস জানা যায় (&lt;a href="https://newsletter.manager.dev/p/the-shadow-work-in-engineering-teams" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। একজন senior engineer এর ৪০% সময় এমন কাজে যায় যেটা কোনো ticket এ নেই।&lt;/p&gt;

&lt;p&gt;Code review। Junior দের সাহায্য করা। হঠাৎ support এর request।&lt;/p&gt;

&lt;p&gt;এসব কেউ দেখে না। Promotion এর সময় কেউ count করে না।&lt;/p&gt;

&lt;p&gt;এটা আমাদেশে আরো বেশি খাটে। আমাদের অনেক company তে engineer এর performance evaluate করা হয় কতটা ticket close করলো, সেটা দিয়ে। Code review, mentorship, knowledge sharing, এসব কেউ count করে না।&lt;/p&gt;

&lt;p&gt;মানে, যে কাজ টিমকে একসাথে ধরে রাখে, সেটাই সবচেয়ে কম দেখা যায়।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 সবচেয়ে বড় Bottleneck টা খুঁজুন
&lt;/h2&gt;

&lt;p&gt;Sumanyu একটা সহজ framework দিয়েছেন (&lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। আপনার টিমকে একটা প্রশ্ন করুন। "তোমরা সময় সবচেয়ে বেশি কোথায় নষ্ট করো?"&lt;/p&gt;

&lt;p&gt;উত্তরটা আপনার roadmap হবে। সবচেয়ে বড় bottleneck টা fix করুন। তারপর পরেরটা।&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"The goal isn't to optimize everything. It's to remove the biggest source of waste, then move to the next one।"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sumanyu এর টিম ১০,০০০+ unit test লিখেছে। এটা শুনে হয়তো ভাবছেন, "আমার company তে তো ১০০ test ও নেই।" সেটাও ঠিক আছে। শূন্য থেকে শুরু করুন। AI দিয়ে দ্রুত ship করলে bug ও দ্রুত আসে, তাই test লেখা এখন আগের চেয়ে বেশি দরকারী।&lt;/p&gt;

&lt;h2&gt;
  
  
  আজই কী করবেন?
&lt;/h2&gt;

&lt;p&gt;একটু ভেবে দেখুন, এই habit গুলোর কোনটা আপনার টিমে নেই?&lt;/p&gt;

&lt;p&gt;১. একটা বারবার আসা issue খুঁজুন। হিসাব করুন। যদি লাভ হয়, আজই root cause fix করার কথা টিমে রাখুন।&lt;/p&gt;

&lt;p&gt;২. একজনকে একটা module বা service এর দায়িত্ব দিন। ছোট হলেও ঠিক আছে। Decision তার।&lt;/p&gt;

&lt;p&gt;৩. একটা feature identify করুন যেটা সম্প্রতি launch হয়েছে। সেটা আসলে কেউ use করছে কি না, data চেক করুন।&lt;/p&gt;

&lt;p&gt;৪. Tech debt কে business impact দিয়ে explain করুন। "এতে feature delivery ৩x slow হচ্ছে।"&lt;/p&gt;

&lt;p&gt;৫. টিমকে প্রশ্ন করুন। "সময় সবচেয়ে বেশি কোথায় নষ্ট হয়?" সবচেয়ে বড় bottleneck টা এই সপ্তাহে fix করুন।&lt;/p&gt;

&lt;p&gt;৬. FDE mindset নিয়ে কাজ শুরু করুন। পরের বার client কে কিছু ask করলে, শুধু requirement না নিয়ে তার সাথে ১৫ মিনিট কথা বলুন। "আপনি এটা কেন চাচ্ছেন, আপনার আসল সমস্যাটা কী?" এই একটা প্রশ্ন পুরো কাজ বদলে দিতে পারে।&lt;/p&gt;

&lt;p&gt;শেষ করি সেই payment gateway issue এর কথা দিয়ে। আমরা সেই মাসেই root cause fix করলাম। ৬ ঘণ্টা লাগলো। এরপর থেকে সেই issue আর কখনো আসেনি।&lt;/p&gt;

&lt;p&gt;৬ ঘণ্টা। ১০+ ঘণ্টার বারবার নষ্ট হওয়া সময়ের বদলে।&lt;/p&gt;

&lt;p&gt;প্রশ্ন হলো, আপনার টিমে কোন patch টা আজই root cause fix করার দরকার? আর সবচেয়ে গুরুত্বপূর্ণ, আপনি নিজে কোন দিকে যাচ্ছেন, ভালো নাকি দুর্দান্ত?&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Okay vs Excellent Engineering Teams" - &lt;a href="https://newsletter.manager.dev/p/okay-vs-excellent-engineering-teams" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Give Your Engineers a Kingdom" - &lt;a href="https://newsletter.manager.dev/p/give-your-engineers-a-kingdom" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Shadow Work in Engineering Teams" - &lt;a href="https://newsletter.manager.dev/p/the-shadow-work-in-engineering-teams" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Why Developers Quit" + "The Victim Engineering Manager" - &lt;a href="https://newsletter.manager.dev/p/why-developers-quit" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "When Your PM Drives You Crazy" + "The Delayed Opinions Givers" - &lt;a href="https://newsletter.manager.dev/p/working-with-your-pm" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "The Best Engineering Manager I Know" (Give and Take) - &lt;a href="https://newsletter.manager.dev/p/the-story-of-the-best-engineering" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides &amp;amp; Sumanyu Sharma&lt;/strong&gt; - "Engineering Velocity on Steroids (10x Team)" - &lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "The Price of Mandatory Code Reviews" - &lt;a href="https://newsletter.manager.dev/p/the-price-of-mandatory-code-reviews" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gergely Orosz&lt;/strong&gt; - "Slow Down to Speed Up with AI Agents" (Pragmatic Engineer) - &lt;a href="https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when" rel="noopener noreferrer"&gt;newsletter.pragmaticengineer.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peopleware&lt;/strong&gt; by Tom DeMarco &amp;amp; Timothy Lister + &lt;strong&gt;Give and Take&lt;/strong&gt; by Adam Grant (book references)&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>management</category>
      <category>productivity</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>GLM-5.2 vs Claude Opus: What the Numbers Actually Say for Developers</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sat, 27 Jun 2026 02:03:39 +0000</pubDate>
      <link>https://dev.to/jamilxt/glm-52-vs-claude-opus-what-the-numbers-actually-say-for-developers-19o4</link>
      <guid>https://dev.to/jamilxt/glm-52-vs-claude-opus-what-the-numbers-actually-say-for-developers-19o4</guid>
      <description>&lt;p&gt;GLM-5.2 from Z.ai dropped recently and the reaction was loud. Some called it the end of closed models. Others dismissed it as benchmark gaming. This article cuts through the noise with data from an independent hands-on test, benchmark numbers, and community discussion.&lt;/p&gt;

&lt;p&gt;To be clear upfront: I did not run my own head-to-head test. This article synthesizes work by James Daniel Whitford at TechStackups, independent benchmarks from Artificial Analysis, and community discussion from Hacker News. All sources are cited at the end. The goal is to help you decide which model fits your workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is GLM-5.2?
&lt;/h2&gt;

&lt;p&gt;GLM-5.2 is Z.ai's latest flagship model, released under an MIT license as open weights. You can download it, run it locally, or call it through Z.ai's API. It ships with a 1 million token context window and is designed for long-horizon agentic tasks, the kind of multi-hour coding work that coding agents do.&lt;/p&gt;

&lt;p&gt;One key limitation: GLM-5.2 is &lt;strong&gt;text-only&lt;/strong&gt;. It cannot read images, parse screenshots, or understand diagrams. Claude Opus is multimodal. This difference turns out to matter a lot in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Price Gap
&lt;/h2&gt;

&lt;p&gt;Per 1 million tokens (source: TechStackups, citing Z.ai and Anthropic pricing):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Claude Opus 4.8&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$1.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache read&lt;/td&gt;
&lt;td&gt;$0.50&lt;/td&gt;
&lt;td&gt;$0.26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;td&gt;$4.40&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On output tokens, GLM-5.2 costs roughly &lt;strong&gt;one-fifth&lt;/strong&gt; of what Opus charges. If you run coding agents for hours every day, that difference compounds fast.&lt;/p&gt;

&lt;p&gt;A Hacker News commenter raised a valid counterpoint: if you are on a $100/month Claude Max subscription and use it fully, the per-token cost difference shrinks considerably. Subscription pricing changes the math for heavy daily users.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Test: Build a 3D Game From Scratch
&lt;/h2&gt;

&lt;p&gt;James Daniel Whitford at TechStackups ran both models with the same one-shot prompt: build a third-person 3D platformer in raw WebGL with no libraries. The game needed a character controller, collision detection, a follow camera, a GLB model loader, GLSL shaders, and skinned animation.&lt;/p&gt;

&lt;p&gt;This is not a "make me a landing page" test. A 3D engine in raw WebGL has layers of interdependent systems. If one piece is wrong, the whole thing breaks visibly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Results at a Glance
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;th&gt;Claude Opus 4.8&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build time&lt;/td&gt;
&lt;td&gt;1h 10m 40s&lt;/td&gt;
&lt;td&gt;33m 30s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output tokens&lt;/td&gt;
&lt;td&gt;131,000&lt;/td&gt;
&lt;td&gt;216,809&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;$5.39&lt;/td&gt;
&lt;td&gt;~$21.92 (estimated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool calls&lt;/td&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;153&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Opus finished in half the time. GLM-5.2 cost a fraction of the price.&lt;/p&gt;

&lt;h3&gt;
  
  
  Game Quality
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Opus&lt;/strong&gt; shipped a cleaner game. The character had textures applied correctly. The spike hazard killed the player. There was a working win condition. The camera and controls felt right. Bugs were minor edge cases, like standing on thin air near platforms due to an overly generous coyote-time grace period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GLM-5.2&lt;/strong&gt; shipped a rougher game. The character rendered as flat gray with missing textures. The spike hazard did nothing when you touched it. There was no win condition. The character model faced backwards the entire time. These were fundamental issues, not polish problems.&lt;/p&gt;

&lt;p&gt;GLM-5.2 did nail one thing: a spring launch mechanic that let you bounce up to higher platforms. So it is not that the model cannot code. It struggles to hold a complex multi-file build together at the same level as Opus.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Multimodal Gap
&lt;/h3&gt;

&lt;p&gt;Both models were told to verify their work before stopping. Opus took a screenshot of the rendered game, looked at it, noticed it had left debug overlays on screen, and cleaned them up. It could see the result and catch visual problems.&lt;/p&gt;

&lt;p&gt;GLM-5.2 cannot read images. Instead of looking at a screenshot, it wrote scripts to sample pixel colors from the saved frame. It checked whether the colors matched expectations: grass green, dirt brown, coin gold. The colors were there, so it declared the game finished.&lt;/p&gt;

&lt;p&gt;But the character was gray with missing textures, and the debug overlay was still visible. GLM-5.2 never saw those problems because it was reading numbers instead of looking at the image.&lt;/p&gt;

&lt;p&gt;On visual tasks, this is a real disadvantage. An agent that can inspect its own output catches bugs that a text-only model will ship blind.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Benchmarks Say
&lt;/h2&gt;

&lt;p&gt;The table below shows numbers from Z.ai's model card. An asterisk (*) marks self-reported scores (each vendor reports its own numbers). Independent results from Artificial Analysis broadly agree with these rankings.&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;GLM-5.2&lt;/th&gt;
&lt;th&gt;Opus 4.8*&lt;/th&gt;
&lt;th&gt;GPT-5.5*&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro*&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AIME 2026&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;99.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;95.7&lt;/td&gt;
&lt;td&gt;98.3&lt;/td&gt;
&lt;td&gt;98.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPQA-Diamond&lt;/td&gt;
&lt;td&gt;91.2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;93.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;93.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-bench Pro&lt;/td&gt;
&lt;td&gt;62.1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;69.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;58.6&lt;/td&gt;
&lt;td&gt;54.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal Bench (Terminus-2)&lt;/td&gt;
&lt;td&gt;81.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;85&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-Marathon&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;26.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GLM-5.2 actually beats Opus on AIME 2026 (math competition). But Opus dominates the coding and long-horizon agentic benchmarks, especially SWE-Marathon where it doubles GLM-5.2's score. GPT-5.5 trails GLM-5.2 on coding benchmarks like SWE-bench Pro (58.6 vs 62.1) and SWE-Marathon (12.0 vs 13.0), but edges ahead on Terminal Bench (84 vs 81).&lt;/p&gt;

&lt;p&gt;Independent benchmarking from Artificial Analysis ranks GLM-5.2 as the leading open-weights model with an Intelligence Index score of 51, ahead of MiniMax-M3 (44) and DeepSeek V4 Pro (44). They note it is token-hungry, using about 43k output tokens per task, more than any other leading open model.&lt;/p&gt;

&lt;p&gt;Simon Willison, who has reviewed nearly every major model release, called GLM-5.2 "probably the most powerful text-only open weights LLM" on X. Nathan Lambert from the Allen Institute for AI noted that Chinese labs are reaching these scores on less compute, and the open-closed gap is closing faster than many expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What HN Commenters Added
&lt;/h2&gt;

&lt;p&gt;The Hacker News discussion (170+ points, 149 comments) added practical ground truth:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One developer found GLM-5.2 solved a 3D fluid dynamics rendering problem that both Opus and GPT-5.5 struggled with&lt;/li&gt;
&lt;li&gt;Another noted GLM-5.2 takes its time before generating code and sometimes hallucinates plans it does not follow&lt;/li&gt;
&lt;li&gt;Several pushed back on one-shot testing as not representative of real collaborative agent workflows&lt;/li&gt;
&lt;li&gt;One commenter claimed "Chinese models optimize for benchmarks and do poorly in real-world tasks" (others disputed this)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Developers
&lt;/h2&gt;

&lt;p&gt;The WebGL test is one data point from one prompt. Real development work is different. Here is how to think about the tradeoffs for everyday use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For boilerplate and standard CRUD code&lt;/strong&gt;, GLM-5.2 is likely sufficient. Writing a JPA repository, a REST controller, or a Kafka consumer configuration is well-trodden territory. At one-fifth the cost of Opus, GLM-5.2 makes economic sense for these tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For debugging complex issues&lt;/strong&gt;, Opus pulls ahead. When you have a Kafka rebalance storm caused by a subtle consumer group configuration issue, or a Redis cache invalidation race condition, the difference between SWE-bench Pro 69.2 and 62.1 could matter. Correctness matters more than cost when you are chasing a production bug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The multimodal gap depends on your work.&lt;/strong&gt; If you build UIs, run visual regression tests, or work with screenshots, Opus can inspect its own output. If your work is mostly text (stack traces, log files, SQL queries, configuration), GLM-5.2's text-only limitation is less of a problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real value of open weights is operational.&lt;/strong&gt; A closed model can have an outage, change its pricing, or restrict access. We saw Claude outages hit HN's front page multiple times already this year. GLM-5.2 running on your own hardware has none of those risks.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Try Both Models
&lt;/h3&gt;

&lt;p&gt;Both models are accessible through their official platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GLM-5.2&lt;/strong&gt;: Available via Z.ai's API at &lt;a href="https://open.bigmodel.cn" rel="noopener noreferrer"&gt;open.bigmodel.cn&lt;/a&gt;, or through OpenRouter. The weights are on Hugging Face under MIT license if you want to self-host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Opus&lt;/strong&gt;: Available via Anthropic's API at &lt;a href="https://platform.claude.com" rel="noopener noreferrer"&gt;platform.claude.com&lt;/a&gt;, or through AWS Bedrock and Google Vertex AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Z.ai's platform supports an OpenAI-compatible SDK, so if you already use the OpenAI Python library, migration is minimal. Anthropic provides its own Python SDK. Both have free tiers or trial credits to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Takeaway
&lt;/h2&gt;

&lt;p&gt;Neither model wins everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Claude Opus when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need visual verification (screenshots, UI testing, image analysis)&lt;/li&gt;
&lt;li&gt;Correctness and polish matter more than cost&lt;/li&gt;
&lt;li&gt;You are debugging complex, multi-file issues&lt;/li&gt;
&lt;li&gt;You want the best coding benchmarks available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use GLM-5.2 when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost is a primary concern (it is 4-5x cheaper)&lt;/li&gt;
&lt;li&gt;You need open weights that cannot be taken away or restricted&lt;/li&gt;
&lt;li&gt;The work is primarily text and logic, not visual&lt;/li&gt;
&lt;li&gt;You want to run it locally on your own hardware&lt;/li&gt;
&lt;li&gt;You need a fallback when closed models have outages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The smartest approach is to keep both in your toolkit. Use GLM-5.2 for the bulk of text-heavy work where the cost savings add up. Switch to Opus when you need visual judgment, maximum coding reliability, or the kind of long-horizon reasoning where it clearly leads.&lt;/p&gt;

&lt;p&gt;The open weights gap is real, but it is narrowing. GLM-5.2 proves you no longer need to pay premium prices to get a genuinely capable coding model. It does not beat Opus yet, but it does not need to. It just needs to be good enough for most tasks, and cheap enough that the math works.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;James Daniel Whitford / TechStackups&lt;/strong&gt; - "GLM-5.2 vs Claude Opus" (June 18, 2026) - &lt;a href="https://techstackups.com/comparisons/glm-5.2-vs-opus/" rel="noopener noreferrer"&gt;techstackups.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hacker News Discussion&lt;/strong&gt; (170 pts, 149 comments) - &lt;a href="https://news.ycombinator.com/item?id=48626866" rel="noopener noreferrer"&gt;news.ycombinator.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artificial Analysis&lt;/strong&gt; - Intelligence Index v4.1 rankings (via X)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simon Willison&lt;/strong&gt; - Model review (via X)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nathan Lambert&lt;/strong&gt; - Allen Institute for AI commentary (via X)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Z.ai&lt;/strong&gt; - Model card and pricing (referenced via TechStackups; not independently verified by author)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic&lt;/strong&gt; - API documentation at &lt;a href="https://platform.claude.com" rel="noopener noreferrer"&gt;platform.claude.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>llm</category>
      <category>opensource</category>
    </item>
    <item>
      <title>"ভালো টিম" আর "দুর্দান্ত টিম" এর মধ্যে পার্থক্য কোথায়?</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Mon, 22 Jun 2026 18:27:56 +0000</pubDate>
      <link>https://dev.to/jamilxt/bhaalo-ttim-aar-durdaant-ttimer-mdhye-paarthky-kothaay-4fi1</link>
      <guid>https://dev.to/jamilxt/bhaalo-ttim-aar-durdaant-ttimer-mdhye-paarthky-kothaay-4fi1</guid>
      <description>&lt;p&gt;গত মাসে আমাদের একটা payment system এ বারবার একই সমস্যা আসছিল। Transaction fail হচ্ছে, একজন developer ঠিক করছে, ticket close হচ্ছে। তিনদিন পর আবার একই জিনিস।&lt;/p&gt;

&lt;p&gt;আমি log গুলো দেখলাম। একই মূল কারণ। কিন্তু কেউ সেটা fix করেনি। সবাই শুধু symptom দূর করে চলে গেছে। ভেতরের অসুখটা ধরেনি।&lt;/p&gt;

&lt;p&gt;মাস শেষে হিসাব করলাম। একই সমস্যায় টিম ১০+ ঘণ্টা নষ্ট করেছে। মূল কারণটা fix করতে ৫-৬ ঘণ্টা লাগতো।&lt;/p&gt;

&lt;p&gt;সত্যি বলতে, এটা শুধু আমাদের টিমের সমস্যা না। Brain Station 23, Selise, TigerIT এর মত company গুলোতেও এই জিনিসটা দেখা যায়। প্রায় প্রতিটা software team এ।&lt;/p&gt;

&lt;p&gt;Anton Zaides, Manager.dev newsletter এর লেখক এবং ১৫+ বছরের tech experience নিয়ে কাজ করছেন। তিনি এই বিষয়ে বিস্তারিত লিখেছেন (&lt;a href="https://newsletter.manager.dev/p/okay-vs-excellent-engineering-teams" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। উনার মতে, একটা "ভালো" টিম আর "দুর্দান্ত" টিমের মধ্যে পার্থক্য মোটে ৭টা ছোট অভ্যাসে।&lt;/p&gt;

&lt;p&gt;কাজ দুগুণ করা না। ১০x engineer থাকা না। শুধু কিছু habit।&lt;/p&gt;

&lt;p&gt;আমি উনার ১০টা article পড়েছি। নিজের ৫ বছরের experience মিলিয়ে, এই ৭টা habit, ২টা bonus point, আর FDE এর মত নতুন concept গুলো আমাদের দেশের software company গুলোতে কীভাবে কাজে লাগে, সেটা লিখছি।&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;কিছু শব্দ আগেই বুঝে নিই:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;EM / Team Lead&lt;/strong&gt; = Engineering Manager। আমাদের দেশে একে Team Lead, Project Lead, বা Tech Lead ও বলা হয় (যিনি টিম চালান)&lt;br&gt;
&lt;strong&gt;PM&lt;/strong&gt; = Product Manager (যিনি কী feature বানাবে ঠিক করেন)&lt;br&gt;
&lt;strong&gt;Ticket&lt;/strong&gt; = Jira/Trello তে কাজের একটা item&lt;br&gt;
&lt;strong&gt;PR&lt;/strong&gt; = Pull Request (code review এর জন্য কোড submit করা)&lt;br&gt;
&lt;strong&gt;Deploy&lt;/strong&gt; = code production server এ পাঠানো&lt;br&gt;
&lt;strong&gt;Tech Debt&lt;/strong&gt; = এমন code বা architecture যেটা পরে সমস্যা তৈরি করবে (ঋণের মতো, পরে শোধ করতে হয়)&lt;br&gt;
&lt;strong&gt;Bottleneck&lt;/strong&gt; = এমন একটা জায়গা যেটা পুরো কাজকে ধীর করে দেয়&lt;br&gt;
&lt;strong&gt;AI Coding Tool&lt;/strong&gt; = Cursor, Claude Code, GitHub Copilot এর মত tool যা code লিখতে, review করতে, debug করতে সাহায্য করে&lt;br&gt;
&lt;strong&gt;FDE&lt;/strong&gt; = Forward Deployed Engineer। engineer যিনি client এর কাছে সরাসরি থাকেন, তাদের সমস্যা বোঝেন, আর solution বানান&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  📌 Patch না, Root Cause
&lt;/h2&gt;

&lt;p&gt;ভালো টিম bug fix করে। সামনে এগোয়। কিন্তু একই bug আবার আসে। আবার fix। আবার আসে।&lt;/p&gt;

&lt;p&gt;আবার fix।&lt;/p&gt;

&lt;p&gt;একটা উদাহরণ দিই। ধরুন, আপনার পেট ব্যথা হচ্ছে বারবার। আপনি প্রতিবার painkiller খেয়ে সামলাচ্ছেন। কিন্তু ডাক্তার দেখাচ্ছেন না। এক সময় ব্যথা আরো বড় হবে।&lt;/p&gt;

&lt;p&gt;Software এও একই। bKash বা SSL Commerz integration এ কোনো timeout issue আসছে? alert ignore করছেন। test fail করলে restart দিচ্ছেন। manual কাজটা প্রতিদিন হাতে করছেন।&lt;/p&gt;

&lt;p&gt;সবই patch। আর patch জমতে থাকে।&lt;/p&gt;

&lt;p&gt;এখন যদি AI tool (Cursor, Copilot) ব্যবহার করেন? সেকেন্ডে bug ঠিক হয়ে যাচ্ছে। কিন্তু root cause? AI ও শুধু symptom ঠিক করছে। ভালো টিম এই trap এ পড়ে। দুর্দান্ত টিম প্রশ্ন করে, "AI কেন এটা ঠিক করলো? মূল সমস্যাটা কী?"&lt;/p&gt;

&lt;p&gt;xkcd এর একটা famous table আছে। যে কাজে আপনার সপ্তাহে ১৫ মিনিট যায়, সেটা fix করতে ২ দিন লাগলেও ৫ বছরে সেটা লাভের।&lt;/p&gt;

&lt;p&gt;একটু ভেবে দেখুন। আপনার টিমে কতগুলো এমন ছোট ছোট patch চলছে?&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম এই decision টা ভেবে নেয়। কতবার হচ্ছে, fix করতে কত সময়, সব হিসাব করে একটা clear decision। চুপচাপ মেনে নেওয়া না।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 কাজ করা না, Own করা
&lt;/h2&gt;

&lt;p&gt;ভালো টিমে engineer কাজ করে। Team Lead decide করে কে কী করবে, engineer execute করে।&lt;/p&gt;

&lt;p&gt;সোজা কথায়, Team Lead হয়ে যায় একটা "task routing machine।" টিকিট ঢুকছে, Lead assign করছে, engineer কাজ শেষ করছে। আবার নতুন ticket।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিমে engineer কাজ own করে। Anton একে বলেছেন "kingdom" (&lt;a href="https://newsletter.manager.dev/p/give-your-engineers-a-kingdom" rel="noopener noreferrer"&gt;source&lt;/a&gt;)।&lt;/p&gt;

&lt;p&gt;ধরুন, আপনার টিমে একটা notification service আছে। কে সেটার owner? যে engineer সেটা own করছে, সে-ই সেই service এর সব decision নেয়। কীভাবে চলবে, কখন update হবে, সব তার।&lt;/p&gt;

&lt;p&gt;এখন সত্যি কথা হলো, আমাদের দেশের অনেক company তে hierarchy খুব strong। Junior বা Mid-level engineer কে decision দেওয়া খুব rare। Senior বা Lead সব নেন।&lt;/p&gt;

&lt;p&gt;কিন্তু ছোট পরিসরে শুরু করা যায়। "তুমি এই module টা দেখো, তোমার decision" শুধু এটুকু বললেও একটা পরিবর্তন আসে।&lt;/p&gt;

&lt;p&gt;AI যুগে এটা আরো বেশি গুরুত্বপূর্ণ। AI যখন boilerplate code লিখে দিচ্ছে, তখন engineer এর মূল কাজ হলো decision নেওয়া। "কোন architecture, কোন design pattern," এসব decision এখন মানুষের।&lt;/p&gt;

&lt;p&gt;Anton আরেকটা article এ বলেছেন, developer রা কেন চাকরি ছাড়ে (&lt;a href="https://newsletter.manager.dev/p/why-developers-quit" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। প্রথম কারণটা salary না। প্রথম কারণ হলো, তারা মনে করছে আর নতুন কিছু শিখছে না।&lt;/p&gt;

&lt;p&gt;মানে, ownership দেওয়া শুধু ভালো কাজের জন্য না। ভালো engineer ধরে রাখার জন্যও।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 নিজেকে না, অন্যকে আগে
&lt;/h2&gt;

&lt;p&gt;আমাদের দেশের company গুলোতে একটা জিনিস খুব বেশি দেখি। এক টিম আরেক টিমের code review তে সপ্তাহ খানেক সময় নেয়। যে টিম review চেয়েছে, তারা অপেক্ষা করতে করতে হতাশ। শেষে নিজেরাই merge করে ফেলে।&lt;/p&gt;

&lt;p&gt;Anton এর নিজের একই experience আছে (&lt;a href="https://newsletter.manager.dev/p/the-delayed-opinions-givers-engineering" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। ঐ টিমের EM review তে ২ সপ্তাহ সময় নিয়েছেন। তারা হতাশায় নিজেরাই merge করে ফেলেছেন।&lt;/p&gt;

&lt;p&gt;খেয়াল করুন, review নিয়ে actual data কী বলে। Weave (৪০০+ company এর data analyze করে) এর research (&lt;a href="https://newsletter.manager.dev/p/the-price-of-mandatory-code-reviews" rel="noopener noreferrer"&gt;source&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;যে টিম ৩ ঘণ্টার মধ্যে review করে, তারা ৮+ ঘণ্টা নেওয়া টিমের চেয়ে &lt;strong&gt;২.১ গুণ বেশি productive&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;আর এখন AI reviewer আছে। Sumanyu এর টিম (Hamming AI) একসাথে কয়েকটা AI reviewer ব্যবহার করে (&lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। AI প্রথমে সব comment করে, engineer সেগুলো triage করে, তারপর human review আসে। ফলে PR merge এ সময় লাগে মাত্র ১-২ ঘণ্টা।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম ৯০% ক্ষেত্রে অন্য টিমের কাজ আগে করে। খুব কঠিন, বিশেষ করে আমাদের দেশে যেখানে টিমগুলোর মধ্যে "এটা আমার কাজ না" মানসিকতা বেশি। কিন্তু যে টিম এটা করে, পুরো company তে তার নাম হয়ে যায়।&lt;/p&gt;

&lt;p&gt;Anton, Adam Grant এর "Give and Take" book থেকে একটা জিনিস share করেছেন। মানুষ তিন রকমের হয়:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taker:&lt;/strong&gt; যারা শুধু নিজের সুবিধা চিন্তা করে।&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Matcher:&lt;/strong&gt; যারা help করে কিন্তু ভাবে, "আমি কালকে সাহায্য করলাম, আজকে সে আমাকে করবে।"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giver:&lt;/strong&gt; যারা কোনো শর্ত ছাড়াই help করে।&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;খেয়াল করুন, সবচেয়ে কম perform করে কারা? Giver। কারণ তারা সবাইকে help করে নিজের কাজ করতে পারে না।&lt;/p&gt;

&lt;p&gt;কিন্তু সবচেয়ে বেশি perform করে কারা?&lt;/p&gt;

&lt;p&gt;আবার Giver।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Execute না, Shape
&lt;/h2&gt;

&lt;p&gt;ভালো টিম PM বা client এর roadmap execute করে। PM decide করে কী হবে, engineer বানায়।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম roadmap বানাতে সাহায্য করে। Customer এর সাথে কথা বলে। Business বোঝে। যে feature টা make sense করে না, সেটায় push back করে।&lt;/p&gt;

&lt;p&gt;খেয়াল করুন, আমাদের দেশের সংস্কৃতিতে senior বা manager কে question করা "disrespect" মনে হয়। Power distance বেশি। কিন্তু push back মানে fight করা না। push back মানে হলো, "এই feature টার পরিবর্তে যদি এটা করি, customer আরো বেশি happy হবে।" Data দিয়ে কথা বলা।&lt;/p&gt;

&lt;p&gt;Anton নিজে একবার এই trap এ পড়েছিলেন। PM তাকে না জানিয়ে একটা deadline promise করেছিলেন। Anton রেগে যাওয়ার পরিবর্তে PM কে call করলেন। শান্তভাবে জিজ্ঞেস করলেন কেন। জানলেন PM ও ৩ জন executive এর pressure এ ছিলেন। তারপর দুজন মিলে plan বানালেন।&lt;/p&gt;

&lt;p&gt;মানে, সমস্যার দিকে না তাকিয়ে, সমাধানের দিকে তাকালে অনেক সমস্যা ছোট হয়ে যায়।&lt;/p&gt;

&lt;p&gt;Hamming AI এর CEO Sumanyu একটা দারুণ experiment করেছিলেন (&lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। তিনি আগে customer এর সাথে নিজে কথা বলতেন, তারপর engineer দের বুঝিয়ে বলতেন। Engineer রা customer এর আসল সমস্যা feel করতো না।&lt;/p&gt;

&lt;p&gt;তিনি engineer দের সরাসরি customer এর Slack channel এ যুক্ত করলেন। এখন engineer রা নিজে কথা বলে, নিজে সমস্যা বোঝে, আর অনেক সময় সেই দিনেই solution deploy করে দেয়।&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Maximize the bandwidth between the person who has the problem, and the person who can solve it।"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;আমাদের দেশে offshore project এ এটা আরো বেশি relevant। Client এর সাথে engineer এর direct communication না থাকলে কাজ দ্রুত হবে না।&lt;/p&gt;

&lt;p&gt;Palantir এর মত company গুলো এজন্য একটা role popularize করেছে, নাম &lt;strong&gt;Forward Deployed Engineer বা FDE&lt;/strong&gt;। FDE টিমে বসে code লেখে না। সরাসরি client এর কাছে যায়। তাদের workflow বোঝে, আসল সমস্যা দেখে, তারপর solution বানায়। অর্ধেক engineer, অর্ধেক business analyst।&lt;/p&gt;

&lt;p&gt;আমাদের দেশে এটা খুব কম দেখা যায়। অধিকাংশ offshore company তে engineer শুধু requirement document পায়। Client কে, তার business, তার আসল সমস্যা, কিছুই জানে না।&lt;/p&gt;

&lt;p&gt;ধরুন, bKash এর মত একটা fintech কোম্পানিতে কাজ করছেন। Client বললেন, "আমাদের একটা report dashboard দরকার।" আপনি বসে বানালেন। ২ সপ্তাহ পর deliver করলেন। Client দেখে বললেন, "এটা তো আমার দরকার না, আমি তো চেয়েছিলাম transaction summary।"&lt;/p&gt;

&lt;p&gt;FDE হলে কী হতো? আপনি client এর সাথে ১ ঘণ্টা কথা বলতেন। বুঝতেন তার আসল কী দরকার। তারপর ৩ দিনে সেটা বানিয়ে দিতেন। সময় বাঁচতো, client happy হতো, আপনিও frustrated হতেন না।&lt;/p&gt;

&lt;p&gt;AI যুগে কোড লেখা cheap হয়ে গেছে, কিন্তু "সঠিক সমস্যা চিনে নেওয়া" এখনো দামি skill। FDE টাইপ engineer রা এখন সবচেয়ে বেশি valuable।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Plan মেনে চলা না, Plan বাতিল করা
&lt;/h2&gt;

&lt;p&gt;Roadmap বানানো হলো। Phase ১, ২, ৩। Phase ১ এর পর customer feedback এলো, negative।&lt;/p&gt;

&lt;p&gt;কিন্তু Phase ২ এর কাজ শুরু হয়ে গেলো। কেউ থামতে চায় না।&lt;/p&gt;

&lt;p&gt;কেন? কারণ engineer রা শুনতেই চায় না যে কোড তারা লিখেছে সেটা বাদ দিতে হবে।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম শুরুতেই প্রশ্ন করে। কীভাবে measure করবো? Phase ১ success এর definition কী? লক্ষ্য পূরণ না হলে কী হবে? কী হলে আমরা feature টাই বাদ দেবো?&lt;/p&gt;

&lt;p&gt;শেষের প্রশ্নটা সবচেয়ে কঠিন। বেশিরভাগ company তে এর উত্তর নেই।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Launch না, Land
&lt;/h2&gt;

&lt;p&gt;ভালো টিম feature deploy করে। Production এ গেছে, PR merged, ticket closed। উৎসব।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম deploy কে অর্ধেক পথ মনে করে।&lt;/p&gt;

&lt;p&gt;কেউ কি আসলে use করছে? সংখ্যা কি এগোলো? কোনো সমস্যা আছে?&lt;/p&gt;

&lt;p&gt;আমি নিজে দেখেছি, feature এর পর feature ship হচ্ছে। প্রতিটা "done।" কিন্তু product তে কোনো improvement হচ্ছে না।&lt;/p&gt;

&lt;p&gt;Feature launch হলো। কিন্তু কাজে লাগলো না।&lt;/p&gt;

&lt;p&gt;offshore project এ এটা সবচেয়ে বেশি। Client feature চায়, টিম deliver করে, ticket close হয়। কেউ চেক করে না যে এটা আসলে কাজে লাগলো কি না।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Tech Debt কে অবহেলা না, Business Case
&lt;/h2&gt;

&lt;p&gt;ভালো টিমে দুটো backlog থাকে। Product backlog আর tech backlog। Tech এর জিনিসগুলো সবসময় পিছিয়ে যায় যখনই কিছু "urgent" আসে।&lt;/p&gt;

&lt;p&gt;দুর্দান্ত টিম tech এর প্রতিটা কাজ কে business value দিয়ে explain করে। "Monolith refactor করতে হবে" না। "এই logic টা আলাদা service এ নিলে আমরা ৩x দ্রুত feature ship করতে পারবো, অন্য টিমের জন্য অপেক্ষা করতে হবে না।"&lt;/p&gt;

&lt;p&gt;এখন AI যুগে এটা সবচেয়ে বড় ঝুঁকি। Pragmatic Engineer এর data বলছে (&lt;a href="https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when" rel="noopener noreferrer"&gt;source&lt;/a&gt;), developer রা এখন ৬ মাস আগের চেয়ে &lt;strong&gt;২ গুণ বেশি code&lt;/strong&gt; generate করছে। মানে ২ গুণ দ্রুত tech debt জমছে। যদি কেউ root cause না ভাবে, শুধু AI এর output accept করে, ৬ মাস পর সেই codebase এ কাজ করা দুঃস্বপ্ন হবে।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 যেটা দেখা যায় না
&lt;/h2&gt;

&lt;p&gt;Anton এর আরেকটা article পড়লে একটা অদ্ভুত জিনিস জানা যায় (&lt;a href="https://newsletter.manager.dev/p/the-shadow-work-in-engineering-teams" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। একজন senior engineer এর ৪০% সময় এমন কাজে যায় যেটা কোনো ticket এ নেই।&lt;/p&gt;

&lt;p&gt;Code review। Junior দের সাহায্য করা। হঠাৎ support এর request।&lt;/p&gt;

&lt;p&gt;এসব কেউ দেখে না। Promotion এর সময় কেউ count করে না।&lt;/p&gt;

&lt;p&gt;এটা আমাদেশে আরো বেশি খাটে। আমাদের অনেক company তে engineer এর performance evaluate করা হয় কতটা ticket close করলো, সেটা দিয়ে। Code review, mentorship, knowledge sharing, এসব কেউ count করে না।&lt;/p&gt;

&lt;p&gt;মানে, যে কাজ টিমকে একসাথে ধরে রাখে, সেটাই সবচেয়ে কম দেখা যায়।&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 সবচেয়ে বড় Bottleneck টা খুঁজুন
&lt;/h2&gt;

&lt;p&gt;Sumanyu একটা সহজ framework দিয়েছেন (&lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;source&lt;/a&gt;)। আপনার টিমকে একটা প্রশ্ন করুন। "তোমরা সময় সবচেয়ে বেশি কোথায় নষ্ট করো?"&lt;/p&gt;

&lt;p&gt;উত্তরটা আপনার roadmap হবে। সবচেয়ে বড় bottleneck টা fix করুন। তারপর পরেরটা।&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"The goal isn't to optimize everything. It's to remove the biggest source of waste, then move to the next one।"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sumanyu এর টিম ১০,০০০+ unit test লিখেছে। এটা শুনে হয়তো ভাবছেন, "আমার company তে তো ১০০ test ও নেই।" সেটাও ঠিক আছে। শূন্য থেকে শুরু করুন। AI দিয়ে দ্রুত ship করলে bug ও দ্রুত আসে, তাই test লেখা এখন আগের চেয়ে বেশি দরকারী।&lt;/p&gt;

&lt;h2&gt;
  
  
  আজই কী করবেন?
&lt;/h2&gt;

&lt;p&gt;একটু ভেবে দেখুন, এই habit গুলোর কোনটা আপনার টিমে নেই?&lt;/p&gt;

&lt;p&gt;১. একটা বারবার আসা issue খুঁজুন। হিসাব করুন। যদি লাভ হয়, আজই root cause fix করার কথা টিমে রাখুন।&lt;/p&gt;

&lt;p&gt;২. একজনকে একটা module বা service এর দায়িত্ব দিন। ছোট হলেও ঠিক আছে। Decision তার।&lt;/p&gt;

&lt;p&gt;৩. একটা feature identify করুন যেটা সম্প্রতি launch হয়েছে। সেটা আসলে কেউ use করছে কি না, data চেক করুন।&lt;/p&gt;

&lt;p&gt;৪. Tech debt কে business impact দিয়ে explain করুন। "এতে feature delivery ৩x slow হচ্ছে।"&lt;/p&gt;

&lt;p&gt;৫. টিমকে প্রশ্ন করুন। "সময় সবচেয়ে বেশি কোথায় নষ্ট হয়?" সবচেয়ে বড় bottleneck টা এই সপ্তাহে fix করুন।&lt;/p&gt;

&lt;p&gt;৬. FDE mindset নিয়ে কাজ শুরু করুন। পরের বার client কে কিছু ask করলে, শুধু requirement না নিয়ে তার সাথে ১৫ মিনিট কথা বলুন। "আপনি এটা কেন চাচ্ছেন, আপনার আসল সমস্যাটা কী?" এই একটা প্রশ্ন পুরো কাজ বদলে দিতে পারে।&lt;/p&gt;

&lt;p&gt;শেষ করি সেই payment gateway issue এর কথা দিয়ে। আমরা সেই মাসেই root cause fix করলাম। ৬ ঘণ্টা লাগলো। এরপর থেকে সেই issue আর কখনো আসেনি।&lt;/p&gt;

&lt;p&gt;৬ ঘণ্টা। ১০+ ঘণ্টার বারবার নষ্ট হওয়া সময়ের বদলে।&lt;/p&gt;

&lt;p&gt;প্রশ্ন হলো, আপনার টিমে কোন patch টা আজই root cause fix করার দরকার? আর সবচেয়ে গুরুত্বপূর্ণ, আপনি নিজে কোন দিকে যাচ্ছেন, ভালো নাকি দুর্দান্ত?&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Okay vs Excellent Engineering Teams" - &lt;a href="https://newsletter.manager.dev/p/okay-vs-excellent-engineering-teams" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Give Your Engineers a Kingdom" - &lt;a href="https://newsletter.manager.dev/p/give-your-engineers-a-kingdom" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Shadow Work in Engineering Teams" - &lt;a href="https://newsletter.manager.dev/p/the-shadow-work-in-engineering-teams" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "Why Developers Quit" + "The Victim Engineering Manager" - &lt;a href="https://newsletter.manager.dev/p/why-developers-quit" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "When Your PM Drives You Crazy" + "The Delayed Opinions Givers" - &lt;a href="https://newsletter.manager.dev/p/working-with-your-pm" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "The Best Engineering Manager I Know" (Give and Take) - &lt;a href="https://newsletter.manager.dev/p/the-story-of-the-best-engineering" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides &amp;amp; Sumanyu Sharma&lt;/strong&gt; - "Engineering Velocity on Steroids (10x Team)" - &lt;a href="https://newsletter.manager.dev/p/what-a-10x-team-looks-like" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anton Zaides&lt;/strong&gt; - "The Price of Mandatory Code Reviews" - &lt;a href="https://newsletter.manager.dev/p/the-price-of-mandatory-code-reviews" rel="noopener noreferrer"&gt;newsletter.manager.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gergely Orosz&lt;/strong&gt; - "Slow Down to Speed Up with AI Agents" (Pragmatic Engineer) - &lt;a href="https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when" rel="noopener noreferrer"&gt;newsletter.pragmaticengineer.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peopleware&lt;/strong&gt; by Tom DeMarco &amp;amp; Timothy Lister + &lt;strong&gt;Give and Take&lt;/strong&gt; by Adam Grant (book references)&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>GLM-5.2 vs Claude Opus: What the Numbers Actually Say for Developers</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Mon, 22 Jun 2026 15:33:48 +0000</pubDate>
      <link>https://dev.to/jamilxt/glm-52-vs-claude-opus-what-the-numbers-actually-say-for-developers-egd</link>
      <guid>https://dev.to/jamilxt/glm-52-vs-claude-opus-what-the-numbers-actually-say-for-developers-egd</guid>
      <description>&lt;p&gt;GLM-5.2 from Z.ai dropped recently and the reaction was loud. Some called it the end of closed models. Others dismissed it as benchmark gaming. This article cuts through the noise with data from an independent hands-on test, benchmark numbers, and community discussion.&lt;/p&gt;

&lt;p&gt;To be clear upfront: I did not run my own head-to-head test. This article synthesizes work by James Daniel Whitford at TechStackups, independent benchmarks from Artificial Analysis, and community discussion from Hacker News. All sources are cited at the end. The goal is to help you decide which model fits your workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is GLM-5.2?
&lt;/h2&gt;

&lt;p&gt;GLM-5.2 is Z.ai's latest flagship model, released under an MIT license as open weights. You can download it, run it locally, or call it through Z.ai's API. It ships with a 1 million token context window and is designed for long-horizon agentic tasks, the kind of multi-hour coding work that coding agents do.&lt;/p&gt;

&lt;p&gt;One key limitation: GLM-5.2 is &lt;strong&gt;text-only&lt;/strong&gt;. It cannot read images, parse screenshots, or understand diagrams. Claude Opus is multimodal. This difference turns out to matter a lot in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Price Gap
&lt;/h2&gt;

&lt;p&gt;Per 1 million tokens (source: TechStackups, citing Z.ai and Anthropic pricing):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Claude Opus 4.8&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$1.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache read&lt;/td&gt;
&lt;td&gt;$0.50&lt;/td&gt;
&lt;td&gt;$0.26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;td&gt;$4.40&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On output tokens, GLM-5.2 costs roughly &lt;strong&gt;one-fifth&lt;/strong&gt; of what Opus charges. If you run coding agents for hours every day, that difference compounds fast.&lt;/p&gt;

&lt;p&gt;A Hacker News commenter raised a valid counterpoint: if you are on a $100/month Claude Max subscription and use it fully, the per-token cost difference shrinks considerably. Subscription pricing changes the math for heavy daily users.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Test: Build a 3D Game From Scratch
&lt;/h2&gt;

&lt;p&gt;James Daniel Whitford at TechStackups ran both models with the same one-shot prompt: build a third-person 3D platformer in raw WebGL with no libraries. The game needed a character controller, collision detection, a follow camera, a GLB model loader, GLSL shaders, and skinned animation.&lt;/p&gt;

&lt;p&gt;This is not a "make me a landing page" test. A 3D engine in raw WebGL has layers of interdependent systems. If one piece is wrong, the whole thing breaks visibly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Results at a Glance
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;GLM-5.2&lt;/th&gt;
&lt;th&gt;Claude Opus 4.8&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build time&lt;/td&gt;
&lt;td&gt;1h 10m 40s&lt;/td&gt;
&lt;td&gt;33m 30s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output tokens&lt;/td&gt;
&lt;td&gt;131,000&lt;/td&gt;
&lt;td&gt;216,809&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;$5.39&lt;/td&gt;
&lt;td&gt;~$21.92 (estimated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool calls&lt;/td&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;153&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Opus finished in half the time. GLM-5.2 cost a fraction of the price.&lt;/p&gt;

&lt;h3&gt;
  
  
  Game Quality
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Opus&lt;/strong&gt; shipped a cleaner game. The character had textures applied correctly. The spike hazard killed the player. There was a working win condition. The camera and controls felt right. Bugs were minor edge cases, like standing on thin air near platforms due to an overly generous coyote-time grace period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GLM-5.2&lt;/strong&gt; shipped a rougher game. The character rendered as flat gray with missing textures. The spike hazard did nothing when you touched it. There was no win condition. The character model faced backwards the entire time. These were fundamental issues, not polish problems.&lt;/p&gt;

&lt;p&gt;GLM-5.2 did nail one thing: a spring launch mechanic that let you bounce up to higher platforms. So it is not that the model cannot code. It struggles to hold a complex multi-file build together at the same level as Opus.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Multimodal Gap
&lt;/h3&gt;

&lt;p&gt;Both models were told to verify their work before stopping. Opus took a screenshot of the rendered game, looked at it, noticed it had left debug overlays on screen, and cleaned them up. It could see the result and catch visual problems.&lt;/p&gt;

&lt;p&gt;GLM-5.2 cannot read images. Instead of looking at a screenshot, it wrote scripts to sample pixel colors from the saved frame. It checked whether the colors matched expectations: grass green, dirt brown, coin gold. The colors were there, so it declared the game finished.&lt;/p&gt;

&lt;p&gt;But the character was gray with missing textures, and the debug overlay was still visible. GLM-5.2 never saw those problems because it was reading numbers instead of looking at the image.&lt;/p&gt;

&lt;p&gt;On visual tasks, this is a real disadvantage. An agent that can inspect its own output catches bugs that a text-only model will ship blind.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Benchmarks Say
&lt;/h2&gt;

&lt;p&gt;The table below shows numbers from Z.ai's model card. An asterisk (*) marks self-reported scores (each vendor reports its own numbers). Independent results from Artificial Analysis broadly agree with these rankings.&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;GLM-5.2&lt;/th&gt;
&lt;th&gt;Opus 4.8*&lt;/th&gt;
&lt;th&gt;GPT-5.5*&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro*&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AIME 2026&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;99.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;95.7&lt;/td&gt;
&lt;td&gt;98.3&lt;/td&gt;
&lt;td&gt;98.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPQA-Diamond&lt;/td&gt;
&lt;td&gt;91.2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;93.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;93.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-bench Pro&lt;/td&gt;
&lt;td&gt;62.1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;69.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;58.6&lt;/td&gt;
&lt;td&gt;54.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal Bench (Terminus-2)&lt;/td&gt;
&lt;td&gt;81.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;85&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-Marathon&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;26.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GLM-5.2 actually beats Opus on AIME 2026 (math competition). But Opus dominates the coding and long-horizon agentic benchmarks, especially SWE-Marathon where it doubles GLM-5.2's score. GPT-5.5 trails GLM-5.2 on coding benchmarks like SWE-bench Pro (58.6 vs 62.1) and SWE-Marathon (12.0 vs 13.0), but edges ahead on Terminal Bench (84 vs 81).&lt;/p&gt;

&lt;p&gt;Independent benchmarking from Artificial Analysis ranks GLM-5.2 as the leading open-weights model with an Intelligence Index score of 51, ahead of MiniMax-M3 (44) and DeepSeek V4 Pro (44). They note it is token-hungry, using about 43k output tokens per task, more than any other leading open model.&lt;/p&gt;

&lt;p&gt;Simon Willison, who has reviewed nearly every major model release, called GLM-5.2 "probably the most powerful text-only open weights LLM" on X. Nathan Lambert from the Allen Institute for AI noted that Chinese labs are reaching these scores on less compute, and the open-closed gap is closing faster than many expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What HN Commenters Added
&lt;/h2&gt;

&lt;p&gt;The Hacker News discussion (170+ points, 149 comments) added practical ground truth:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One developer found GLM-5.2 solved a 3D fluid dynamics rendering problem that both Opus and GPT-5.5 struggled with&lt;/li&gt;
&lt;li&gt;Another noted GLM-5.2 takes its time before generating code and sometimes hallucinates plans it does not follow&lt;/li&gt;
&lt;li&gt;Several pushed back on one-shot testing as not representative of real collaborative agent workflows&lt;/li&gt;
&lt;li&gt;One commenter claimed "Chinese models optimize for benchmarks and do poorly in real-world tasks" (others disputed this)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Developers
&lt;/h2&gt;

&lt;p&gt;The WebGL test is one data point from one prompt. Real development work is different. Here is how to think about the tradeoffs for everyday use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For boilerplate and standard CRUD code&lt;/strong&gt;, GLM-5.2 is likely sufficient. Writing a JPA repository, a REST controller, or a Kafka consumer configuration is well-trodden territory. At one-fifth the cost of Opus, GLM-5.2 makes economic sense for these tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For debugging complex issues&lt;/strong&gt;, Opus pulls ahead. When you have a Kafka rebalance storm caused by a subtle consumer group configuration issue, or a Redis cache invalidation race condition, the difference between SWE-bench Pro 69.2 and 62.1 could matter. Correctness matters more than cost when you are chasing a production bug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The multimodal gap depends on your work.&lt;/strong&gt; If you build UIs, run visual regression tests, or work with screenshots, Opus can inspect its own output. If your work is mostly text (stack traces, log files, SQL queries, configuration), GLM-5.2's text-only limitation is less of a problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real value of open weights is operational.&lt;/strong&gt; A closed model can have an outage, change its pricing, or restrict access. We saw Claude outages hit HN's front page multiple times already this year. GLM-5.2 running on your own hardware has none of those risks.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Try Both Models
&lt;/h3&gt;

&lt;p&gt;Both models are accessible through their official platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GLM-5.2&lt;/strong&gt;: Available via Z.ai's API at &lt;a href="https://open.bigmodel.cn" rel="noopener noreferrer"&gt;open.bigmodel.cn&lt;/a&gt;, or through OpenRouter. The weights are on Hugging Face under MIT license if you want to self-host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Opus&lt;/strong&gt;: Available via Anthropic's API at &lt;a href="https://platform.claude.com" rel="noopener noreferrer"&gt;platform.claude.com&lt;/a&gt;, or through AWS Bedrock and Google Vertex AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Z.ai's platform supports an OpenAI-compatible SDK, so if you already use the OpenAI Python library, migration is minimal. Anthropic provides its own Python SDK. Both have free tiers or trial credits to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Takeaway
&lt;/h2&gt;

&lt;p&gt;Neither model wins everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Claude Opus when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need visual verification (screenshots, UI testing, image analysis)&lt;/li&gt;
&lt;li&gt;Correctness and polish matter more than cost&lt;/li&gt;
&lt;li&gt;You are debugging complex, multi-file issues&lt;/li&gt;
&lt;li&gt;You want the best coding benchmarks available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use GLM-5.2 when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost is a primary concern (it is 4-5x cheaper)&lt;/li&gt;
&lt;li&gt;You need open weights that cannot be taken away or restricted&lt;/li&gt;
&lt;li&gt;The work is primarily text and logic, not visual&lt;/li&gt;
&lt;li&gt;You want to run it locally on your own hardware&lt;/li&gt;
&lt;li&gt;You need a fallback when closed models have outages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The smartest approach is to keep both in your toolkit. Use GLM-5.2 for the bulk of text-heavy work where the cost savings add up. Switch to Opus when you need visual judgment, maximum coding reliability, or the kind of long-horizon reasoning where it clearly leads.&lt;/p&gt;

&lt;p&gt;The open weights gap is real, but it is narrowing. GLM-5.2 proves you no longer need to pay premium prices to get a genuinely capable coding model. It does not beat Opus yet, but it does not need to. It just needs to be good enough for most tasks, and cheap enough that the math works.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;James Daniel Whitford / TechStackups&lt;/strong&gt; - "GLM-5.2 vs Claude Opus" (June 18, 2026) - &lt;a href="https://techstackups.com/comparisons/glm-5.2-vs-opus/" rel="noopener noreferrer"&gt;techstackups.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hacker News Discussion&lt;/strong&gt; (170 pts, 149 comments) - &lt;a href="https://news.ycombinator.com/item?id=48626866" rel="noopener noreferrer"&gt;news.ycombinator.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artificial Analysis&lt;/strong&gt; - Intelligence Index v4.1 rankings (via X)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simon Willison&lt;/strong&gt; - Model review (via X)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nathan Lambert&lt;/strong&gt; - Allen Institute for AI commentary (via X)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Z.ai&lt;/strong&gt; - Model card and pricing (referenced via TechStackups; not independently verified by author)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic&lt;/strong&gt; - API documentation at &lt;a href="https://platform.claude.com" rel="noopener noreferrer"&gt;platform.claude.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>llm</category>
      <category>opensource</category>
    </item>
    <item>
      <title>JShell: Java's Built-In Scratchpad for Trying Code Fast</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sun, 21 Jun 2026 07:08:44 +0000</pubDate>
      <link>https://dev.to/jamilxt/jshell-javas-built-in-scratchpad-for-trying-code-fast-4dd4</link>
      <guid>https://dev.to/jamilxt/jshell-javas-built-in-scratchpad-for-trying-code-fast-4dd4</guid>
      <description>&lt;p&gt;Here's a familiar feeling. You want to test one small thing in Java — maybe how &lt;code&gt;String.substring()&lt;/code&gt; behaves, or whether a regex pattern matches. So you create a file, write a class, add a &lt;code&gt;main&lt;/code&gt; method, type &lt;code&gt;System.out.println&lt;/code&gt;, compile, run. All that ceremony for a one-line answer.&lt;/p&gt;

&lt;p&gt;JShell does away with the ceremony. It's a read-eval-print loop (REPL) that ships with the JDK since Java 9. You type Java code, press Enter, and see the result immediately. No class, no &lt;code&gt;main&lt;/code&gt; method, no compile step. Think of it as a calculator for Java.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting JShell
&lt;/h2&gt;

&lt;p&gt;Open a terminal and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jshell
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your JDK is installed and on your PATH, you'll see a welcome message and the &lt;code&gt;jshell&amp;gt;&lt;/code&gt; prompt. That's it. You're in.&lt;/p&gt;

&lt;p&gt;If you get a "command not found" error, double-check that the JDK (not just the JRE) is installed and the &lt;code&gt;bin&lt;/code&gt; folder is on your PATH.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your First Snippets
&lt;/h2&gt;

&lt;p&gt;In JShell, the bits of code you type are called &lt;strong&gt;snippets&lt;/strong&gt;. A snippet can be an expression, a variable, a method, or even a full class. Let's try a few:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;
&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;

&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;

&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"hello"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toUpperCase&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"HELLO"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice two things. First, no semicolons needed. JShell adds them for you if you forget. Second, when you type an expression without storing it in a variable, JShell creates a &lt;strong&gt;scratch variable&lt;/strong&gt; for you automatically (&lt;code&gt;$2&lt;/code&gt;, &lt;code&gt;$3&lt;/code&gt;, and so on). You can reuse these later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is handy when you're poking around and don't want to name every intermediate result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining Methods and Classes
&lt;/h2&gt;

&lt;p&gt;You can define full methods in JShell, not just expressions. Here's a simple one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;square&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt;     &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;  &lt;span class="n"&gt;created&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="nf"&gt;square&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;square&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;...&amp;gt;&lt;/code&gt; prompt means JShell knows you're in the middle of a multi-line snippet and is waiting for you to finish. Close the braces and press Enter.&lt;/p&gt;

&lt;p&gt;Classes work the same way. You can define a class, instantiate it, and call methods on it, all without leaving the prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changing What You Already Wrote
&lt;/h2&gt;

&lt;p&gt;This is where JShell gets genuinely useful. If you redefine a method or variable, the old version is replaced. No need to start over.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt;     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Pass"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt;     &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Fail"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;  &lt;span class="n"&gt;created&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Fail"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That pass threshold feels too strict. Just retype the method with a change:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt;     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Pass"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt;     &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Fail"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="o"&gt;...&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;  &lt;span class="n"&gt;modified&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Pass"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The method updated in place. Any other methods that called &lt;code&gt;grade&lt;/code&gt; will use the new version automatically. For longer snippets, use the &lt;code&gt;/edit&lt;/code&gt; command to pop open a text editor instead of retyping:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;edit&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make your changes, save, and close the editor. JShell picks up the new version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Slash Commands You'll Actually Use
&lt;/h2&gt;

&lt;p&gt;JShell has about 20 commands, all starting with a forward slash. You won't need all of them. Here are the ones that matter day to day:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/list            &lt;span class="c"&gt;# show everything you've typed, with IDs&lt;/span&gt;
/vars            &lt;span class="c"&gt;# show all variables and their values&lt;/span&gt;
/methods         &lt;span class="c"&gt;# show all methods you've defined&lt;/span&gt;
/types           &lt;span class="c"&gt;# show classes, interfaces, and enums&lt;/span&gt;
/imports         &lt;span class="c"&gt;# show active imports&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To manage your session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/save myfile.jsh   &lt;span class="c"&gt;# save all snippets to a file&lt;/span&gt;
/open myfile.jsh   &lt;span class="c"&gt;# load snippets back in later&lt;/span&gt;
/reset             &lt;span class="c"&gt;# wipe everything and start fresh&lt;/span&gt;
/drop 3            &lt;span class="c"&gt;# remove a specific snippet by ID&lt;/span&gt;
/history           &lt;span class="c"&gt;# see everything typed, in order&lt;/span&gt;
/exit              &lt;span class="c"&gt;# leave JShell&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pro tip: command abbreviations work as long as they're unique. &lt;code&gt;/l&lt;/code&gt; runs &lt;code&gt;/list&lt;/code&gt;. &lt;code&gt;/v&lt;/code&gt; runs &lt;code&gt;/vars&lt;/code&gt;. &lt;code&gt;/sa&lt;/code&gt; runs &lt;code&gt;/save&lt;/code&gt; (since &lt;code&gt;/s&lt;/code&gt; alone is ambiguous between &lt;code&gt;/save&lt;/code&gt; and &lt;code&gt;/set&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Tab Completion and Shortcuts
&lt;/h2&gt;

&lt;p&gt;Press Tab while typing and JShell fills in the rest. This works for commands, class names, and method names. If there's more than one option, Tab shows you all of them.&lt;/p&gt;

&lt;p&gt;A few shortcuts worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tab after a method's opening parenthesis&lt;/strong&gt; shows you the parameter types. Press Tab again for a description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Up/Down arrows&lt;/strong&gt; scroll through your history, just like a regular shell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ctrl+R&lt;/strong&gt; searches backward through what you've typed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/!&lt;/code&gt;&lt;/strong&gt; reruns your last snippet. &lt;strong&gt;&lt;code&gt;/-3&lt;/code&gt;&lt;/strong&gt; reruns the snippet from 3 steps ago.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;Shift+Tab&lt;/code&gt; then &lt;code&gt;V&lt;/code&gt; shortcut is a neat trick: type an expression, hit that combo, and JShell converts it into a variable declaration with the correct type filled in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback Modes
&lt;/h2&gt;

&lt;p&gt;By default, JShell shows a reasonable amount of feedback. But when you're learning, more detail helps. Switch to verbose mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;feedback&lt;/span&gt; &lt;span class="n"&gt;verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verbose mode explains what happened after each snippet — what was created, modified, or dropped, and what type it is. Once you're comfortable, switch back to normal or concise:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;feedback&lt;/span&gt; &lt;span class="n"&gt;normal&lt;/span&gt;
&lt;span class="n"&gt;jshell&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;feedback&lt;/span&gt; &lt;span class="n"&gt;concise&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's also &lt;code&gt;silent&lt;/code&gt; mode if you want zero output (useful when piping JShell into scripts).&lt;/p&gt;

&lt;h2&gt;
  
  
  Saving and Reusing Sessions
&lt;/h2&gt;

&lt;p&gt;One complaint people have about REPLs: you lose everything when you close them. JShell solves this with &lt;code&gt;/save&lt;/code&gt; and &lt;code&gt;/open&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Before you exit, save your work:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/save practice.jsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next time you start JShell, load it back:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/open practice.jsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also pass a file directly when launching:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jshell practice.jsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes JShell practical for more than throwaway experiments. Keep a &lt;code&gt;.jsh&lt;/code&gt; file of helper methods you use often, and load it whenever you start a session.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Reach for JShell
&lt;/h2&gt;

&lt;p&gt;JShell isn't a replacement for your IDE. It's a tool for specific moments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Learning the language.&lt;/strong&gt; Type a construct, see what it does, no friction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing an API.&lt;/strong&gt; Wondering what &lt;code&gt;LocalDate.of(2026, 2, 31)&lt;/code&gt; does? Find out in two seconds instead of writing a test class.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debugging a tricky expression.&lt;/strong&gt; Isolate the line that's misbehaving and poke at it in isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototyping.&lt;/strong&gt; Sketch out a method, iterate on it interactively, then paste the working version into your project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The thing I like most about JShell is that it removes the fear of experimentation. In a normal Java project, trying something feels expensive. In JShell, it costs nothing. You type, you see, you move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;JShell is a REPL that ships with the JDK. Type &lt;code&gt;jshell&lt;/code&gt; to start it.&lt;/li&gt;
&lt;li&gt;Snippets can be expressions, variables, methods, or classes. No &lt;code&gt;main&lt;/code&gt; method required.&lt;/li&gt;
&lt;li&gt;Forgot a semicolon? JShell adds it for you.&lt;/li&gt;
&lt;li&gt;Scratch variables (&lt;code&gt;$1&lt;/code&gt;, &lt;code&gt;$2&lt;/code&gt;, ...) hold results you didn't name.&lt;/li&gt;
&lt;li&gt;Redefine a method to change it. Other code picks up the new version.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/list&lt;/code&gt;, &lt;code&gt;/vars&lt;/code&gt;, &lt;code&gt;/methods&lt;/code&gt;, &lt;code&gt;/save&lt;/code&gt;, &lt;code&gt;/open&lt;/code&gt;, &lt;code&gt;/reset&lt;/code&gt;, and &lt;code&gt;/exit&lt;/code&gt; cover most of what you need.&lt;/li&gt;
&lt;li&gt;Tab completion works for commands and code. &lt;code&gt;/!&lt;/code&gt; reruns your last snippet.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/set feedback verbose&lt;/code&gt; while learning, then dial it back.&lt;/li&gt;
&lt;li&gt;Save sessions with &lt;code&gt;/save&lt;/code&gt; and reload them with &lt;code&gt;/open&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on dev.java/learn — &lt;a href="https://dev.java/learn/jshell-tool/" rel="noopener noreferrer"&gt;JShell: The Java Shell Tool&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Google Paid $2.7B to Keep Its Best AI Researcher. He Left Anyway.</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sun, 21 Jun 2026 07:08:08 +0000</pubDate>
      <link>https://dev.to/jamilxt/google-paid-27b-to-keep-its-best-ai-researcher-he-left-anyway-3771</link>
      <guid>https://dev.to/jamilxt/google-paid-27b-to-keep-its-best-ai-researcher-he-left-anyway-3771</guid>
      <description>&lt;p&gt;In 2024, Google paid $2.7 billion to bring Noam Shazeer back. Shazeer invented the transformer architecture, the foundation behind GPT, Gemini, and Claude. Google said: "We can't lose this person."&lt;/p&gt;

&lt;p&gt;June 2026. Shazeer is leaving Google for OpenAI.&lt;/p&gt;

&lt;p&gt;This isn't one person's story. It's a pattern. Google DeepMind's best researchers are walking out the door to AI startups, one by one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who Left?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Noam Shazeer&lt;/strong&gt; — The man who invented the transformer. Co-lead of Google's Gemini model. Google paid $2.7 billion to buy him back from Character.AI. Now joining OpenAI. (&lt;a href="https://www.reuters.com/technology/artificial-intelligence/google-gemini-co-lead-noam-shazeer-join-ipo-bound-openai-2026-06-19/" rel="noopener noreferrer"&gt;Reuters&lt;/a&gt;, &lt;a href="https://www.cnbc.com/2026/06/19/noam-shazeer-google-openai.html" rel="noopener noreferrer"&gt;CNBC&lt;/a&gt;, &lt;a href="https://www.theinformation.com/articles/star-google-ai-researcher-shazeer-joins-openai" rel="noopener noreferrer"&gt;The Information&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;John Jumper&lt;/strong&gt; — Co-creator of AlphaFold. Won the 2024 Nobel Prize alongside Demis Hassabis for protein structure prediction. Spent nearly nine years at Google DeepMind. Now joining Anthropic. (&lt;a href="https://www.cnbc.com/2026/06/19/john-jumper-google-deepmind-anthropic.html" rel="noopener noreferrer"&gt;CNBC&lt;/a&gt;, &lt;a href="https://www.businessinsider.com/alpha-fold-pioneer-nobel-prize-deepmind-anthropic-leaves-google" rel="noopener noreferrer"&gt;Business Insider&lt;/a&gt;, &lt;a href="https://the-decoder.com/google-deepmind-loses-another-top-ai-researcher-nobel-laureate-john-jumper-leaves-for-anthropic" rel="noopener noreferrer"&gt;the-decoder.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ruoming Pang&lt;/strong&gt; — Meta hired him for $200 million to lead their Superintelligence team. He jumped to OpenAI after just 7 months. (&lt;a href="https://observer.com/2026/06/ruoming-pang-meta-200m-superintelligence-hire-jumps-to-openai" rel="noopener noreferrer"&gt;observer.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4 Apple AI researchers&lt;/strong&gt; — Including Apple's top Siri leader, all departed. (&lt;a href="https://macdailynews.com/2026/06/19/four-ai-researchers-top-siri-leader-depart-apple" rel="noopener noreferrer"&gt;MacDailyNews&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9 of 12 xAI co-founders&lt;/strong&gt; — Left Musk's AI lab. (&lt;a href="https://tech-insider.org/9-of-12-xai-co-founders-have-left-musks-lab" rel="noopener noreferrer"&gt;tech-insider.org&lt;/a&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Are They Leaving?
&lt;/h2&gt;

&lt;p&gt;One thing is clear. The problem isn't pay. Google pays well. The problem is autonomy.&lt;/p&gt;

&lt;p&gt;The Los Angeles Times reported that Google researchers are quitting over a "compute crunch" — internal competition for GPU access that slows down research and frustrates top talent. (&lt;a href="https://latimes.com/technology/story/2026-06-ai-compute-crunch-researchers-quit" rel="noopener noreferrer"&gt;LA Times&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;At startups? Start an experiment today. Fail tomorrow. Try again. Nobody's stopping you.&lt;/p&gt;

&lt;p&gt;OpenAI and Anthropic have another card to play — equity. Google has RSUs, but startup equity can be worth far more. OpenAI has filed for a US IPO, targeting a valuation of up to $1 trillion. Early equity holders could see massive payouts. (&lt;a href="https://www.reuters.com/technology/openai-files-us-ipo-after-anthropic-ai-giants-head-public-markets-2026-06-18/" rel="noopener noreferrer"&gt;Reuters&lt;/a&gt;, &lt;a href="https://cybernews.com/tech/openai-files-ipo-trillion-dollar-ai-boom-anthropic-rivalry/" rel="noopener noreferrer"&gt;Cybernews&lt;/a&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Google Doing?
&lt;/h2&gt;

&lt;p&gt;Google isn't sitting still.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Throwing money at retention&lt;/strong&gt;&lt;br&gt;
They paid $2.7 billion to bring Shazeer back. Two years later, he left again. Money can't hold people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Compute advantage&lt;/strong&gt;&lt;br&gt;
Google has massive GPU clusters. Startups don't. But the LA Times report suggests even Google's compute advantage is causing internal friction — too many teams competing for the same resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Product momentum&lt;/strong&gt;&lt;br&gt;
Despite the exodus, Google's AI products remain strong. Gemini 2.5 is competitive. DeepMind continues publishing breakthrough research. Accenture recently expanded its partnership with Google Cloud for enterprise AI using Gemini. (&lt;a href="https://www.axios.com/google-deepmind-winning-ai-financing-race" rel="noopener noreferrer"&gt;Axios&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;The question is whether product momentum can outlast the talent drain.&lt;/p&gt;




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

&lt;p&gt;Think about it. Noam Shazeer invented the transformer. That's the foundation of the AI revolution. That person is now working at OpenAI.&lt;/p&gt;

&lt;p&gt;John Jumper cracked protein folding. Anthropic just picked him up.&lt;/p&gt;

&lt;p&gt;Google spent billions on their research. When those researchers mature, they leave for other companies. The question is whether this brain drain eventually shows up in Google's products — or whether Google's scale and compute advantage compensate for it.&lt;/p&gt;

&lt;p&gt;Demis Hassabis is still there. But the people around him are thinning out.&lt;/p&gt;




&lt;p&gt;The question is — which path are you on? Big corporate, scrappy startup, or building something of your own? 🙏&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reuters.com/technology/artificial-intelligence/google-gemini-co-lead-noam-shazeer-join-ipo-bound-openai-2026-06-19/" rel="noopener noreferrer"&gt;Reuters — Google Gemini co-lead Noam Shazeer to join IPO-bound OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reuters.com/technology/openai-files-us-ipo-after-anthropic-ai-giants-head-public-markets-2026-06-18/" rel="noopener noreferrer"&gt;Reuters — OpenAI files for US IPO after Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cnbc.com/2026/06/19/john-jumper-google-deepmind-anthropic.html" rel="noopener noreferrer"&gt;CNBC — John Jumper to leave Google DeepMind for Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.businessinsider.com/alpha-fold-pioneer-nobel-prize-deepmind-anthropic-leaves-google" rel="noopener noreferrer"&gt;Business Insider — AlphaFold pioneer leaves DeepMind for Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://the-decoder.com/google-deepmind-loses-another-top-ai-researcher-nobel-laureate-john-jumper-leaves-for-anthropic" rel="noopener noreferrer"&gt;the-decoder.com — DeepMind loses another top AI researcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.theinformation.com/articles/star-google-ai-researcher-shazeer-joins-openai" rel="noopener noreferrer"&gt;The Information — Star Google AI Researcher Shazeer Joins OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://observer.com/2026/06/ruoming-pang-meta-200m-superintelligence-hire-jumps-to-openai" rel="noopener noreferrer"&gt;observer.com — Ruoming Pang Meta $200M hire jumps to OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tech-insider.org/9-of-12-xai-co-founders-have-left-musks-lab" rel="noopener noreferrer"&gt;tech-insider.org — 9 of 12 xAI Co-Founders Have Left&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://macdailynews.com/2026/06/19/four-ai-researchers-top-siri-leader-depart-apple" rel="noopener noreferrer"&gt;MacDailyNews — Four AI researchers, top Siri leader depart Apple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://latimes.com/technology/story/2026-06-ai-compute-crunch-researchers-quit" rel="noopener noreferrer"&gt;LA Times — Inside the AI compute crunch driving Google researchers to quit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.axios.com/google-deepmind-winning-ai-financing-race" rel="noopener noreferrer"&gt;Axios — How Google DeepMind is winning the AI financing race&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cybernews.com/tech/openai-files-ipo-trillion-dollar-ai-boom-anthropic-rivalry/" rel="noopener noreferrer"&gt;Cybernews — OpenAI files for IPO amid trillion-dollar AI boom&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://finimize.com/content/deepminds-alphafold-co-creator-joins-anthropic" rel="noopener noreferrer"&gt;Finimize — DeepMind's AlphaFold Co-Creator Joins Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>google</category>
      <category>news</category>
    </item>
    <item>
      <title>AI জুনিয়র ডেভেলপারদের চাকরি কমাচ্ছে বাংলাদেশের ফ্রেশারদের কী করতে হবে?</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sat, 20 Jun 2026 08:11:52 +0000</pubDate>
      <link>https://dev.to/jamilxt/ai-juniyr-ddebhelpaarder-caakri-kmaacche-baanlaadesher-phreshaarder-kii-krte-hbe-1dp</link>
      <guid>https://dev.to/jamilxt/ai-juniyr-ddebhelpaarder-caakri-kmaacche-baanlaadesher-phreshaarder-kii-krte-hbe-1dp</guid>
      <description>&lt;p&gt;আমার এক ছোট ভাই CSE থেকে সদ্য পাস করেছে। ভালো CGPA, কোড লিখতে পারে, খুব উৎসাহী। সে আমাকে বললো "ভাইয়া, LinkedIn এ গত তিন মাসে শুধু জুনিয়র developer এর চাকরি খুঁজছি। কিন্তু যেখানে আগে ১০০টা posting থাকতো, এখন ৩০টা। বাকিগুলো কোথায় গেল?"&lt;/p&gt;

&lt;p&gt;আমি একটাও উত্তর দিতে পারিনি। কারণ আমিও একই প্রশ্নে হারিয়ে ছিলাম। 😐&lt;/p&gt;




&lt;h2&gt;
  
  
  AI কি সত্যিই চাকরি খাচ্ছে?
&lt;/h2&gt;

&lt;p&gt;ChatGPT, GitHub Copilot এরা কি সেই কাজগুলো করে দিচ্ছে, যেগুলো আগে একজন fresher শিখতো?&lt;/p&gt;

&lt;p&gt;আমি গত কিছুদিন ধরে এই প্রশ্নের উত্তর খুঁজছি। Stanford এর report পড়েছি। BIDA, BASIS, BDPolicyLab সবার report নাড়াচাড়া করেছি। বাংলাদেশের উদ্যোক্তাদের, আন্তর্জাতিক expert দের কথা পড়েছি।&lt;/p&gt;

&lt;p&gt;যা পেয়েছি শেয়ার করছি। আমার ছোট ভাইয়ের যা জানা দরকার, ঠিক তেমনি আপনারও।&lt;/p&gt;




&lt;h2&gt;
  
  
  গল্পটা এখান থেকে শুরু
&lt;/h2&gt;

&lt;p&gt;একটু ভেবে দেখুন ২০২০ সালে আপনার প্রথম চাকরিতে কী করতেন?&lt;/p&gt;

&lt;p&gt;Boilerplate কোড লিখতেন। Basic CRUD endpoints বানাতেন। Documentation লিখতেন। Stack Overflow থেকে error ফিক্স করতেন। দিন শেষে একটু শিখে ফেলতেন। পরের দিন আরেকটু। এভাবেই বড় হয়েছেন।&lt;/p&gt;

&lt;p&gt;এখন কথা হলো এই কাজগুলো AI করে দিচ্ছে। কয়েক সেকেন্ডে। আর সত্যি বলতে, ভালো করে দিচ্ছে।&lt;/p&gt;

&lt;p&gt;Inument এর Co-Founder মঞ্জুরুল আলম মামুন সম্প্রতি Facebook এ লিখেছেন একটা complex software product বানাতে আগে ১০ জন লাগতো। ১ জন PM, ১ জন Designer, ২ জন Frontend, ২ জন Backend, ১ জন QA, ১ জন DevOps, ২ জন Junior।&lt;/p&gt;

&lt;p&gt;এখন? মাত্র ৩ জন AI সহ।&lt;/p&gt;

&lt;p&gt;কারণ একজন skilled senior এখন code review করতে পারে, test লিখতে পারে, documentation বানাতে পারে, architecture review করতে পারে, deployment automate করতে পারে এমনকি design আর project management পর্যন্ত সামলাতে পারে।&lt;/p&gt;

&lt;p&gt;মামুন ভাই একটা প্রশ্ন রেখেছেন &lt;strong&gt;"৭ বছর পর কী হবে?"&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  AI ঠিক কী বদলে দিচ্ছে?
&lt;/h2&gt;

&lt;p&gt;কিন্তু কিছু কাজ আছে AI এখনো পারে না। পুরানো জটিল codebase বুঝে না। Production এ সমস্যা হলে debug করতে পারে না। Code review পারে না। "এই API null return করলে কী হবে?" এরকম প্রশ্ন করতে পারে না। (&lt;a href="https://devshire.ai/blog/junior-developer-roles-ai-impact-2026" rel="noopener noreferrer"&gt;devshire.ai&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;তাহলে যে কাজগুলো দিয়ে developer বড় হতো সেগুলো AI নিয়ে নিলো। আর যে কাজগুলো দরকারে লাগে সেগুলো AI পারে না।&lt;/p&gt;

&lt;p&gt;এটাই আসল সমস্যা।&lt;/p&gt;

&lt;p&gt;মামুন ভাই খুব পরিষ্কার বলেছেন যারা শুধু "execution" এ focus করে (কোড লেখা, bug fix, simple implementation), তারা ঝুঁকিতে। কারণ AI "execution" এ দ্রুত ভালো হচ্ছে।&lt;/p&gt;

&lt;p&gt;এখন value হচ্ছে System Design, Product Judgment, Business Understanding, Architecture Decisions, Leadership, Problem Framing।&lt;/p&gt;

&lt;p&gt;তার ভাষায় &lt;em&gt;"কোড লেখা সহজ। কিন্তু সঠিক জিনিসটা build করা, সঠিক trade-off করা, problem frame করা এগুলোর value অনেক বেশি।"&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Jensen Huang এর গল্প Radiologist এর উদাহরণ
&lt;/h2&gt;

&lt;p&gt;Nvidia এর CEO Jensen Huang সম্প্রতি একটা খুব শক্তিশালী উদাহরণ দিয়েছেন। শুনুন —&lt;/p&gt;

&lt;p&gt;১০-১২ বছর আগে Jeff Hinton বলেছিলেন প্রতিটা radiologist এর চাকরি যাবে। কারণ computer vision এখন superhuman। স্ক্যান পড়ার কাজটা AI করতে পারবে। তিনি সবাইকে বলেছিলেন "radiologist হবেন না। চাকরি শেষ।"&lt;/p&gt;

&lt;p&gt;১০ বছর পর? তিনি একদম সঠিক ছিলেন। Computer vision এখন প্রতিটা radiology department এ আছে। ১০০% penetration।&lt;/p&gt;

&lt;p&gt;কিন্তু সারপ্রাইজ, radiologist এর সংখ্যা &lt;strong&gt;বেড়েছে&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;কেন?&lt;/p&gt;

&lt;p&gt;Jensen বলছেন AI শুধু &lt;strong&gt;কাজের অংশ&lt;/strong&gt; (task) বদলেছে, &lt;strong&gt;কাজের উদ্দেশ্য&lt;/strong&gt; (purpose) না। Radiologist এর কাজ হলো স্ক্যান পড়া সেটা AI করছে। কিন্তু radiologist এর &lt;strong&gt;উদ্দেশ্য&lt;/strong&gt; হলো রোগ নির্ণয় করা, রোগীর সাথে কথা বলা, ডাক্তারদের সাথে সমন্বয় করা, medical compliance মেনে চলা।&lt;/p&gt;

&lt;p&gt;আর যেহেতু AI স্ক্যান পড়া এত দ্রুত করে দিয়েছে এখন আগের চেয়ে অনেক বেশি রোগী স্ক্যান করা যাচ্ছে। বেশি রোগী = বেশি আয় = বেশি radiologist দরকার।&lt;/p&gt;

&lt;p&gt;Jensen এর কথায় &lt;em&gt;"If you watch me do my job, if you have an AI watch me do my job... At the end of the week you say, what is Jensen's job? He's typing. He types. He talks to people. And so then you come to the conclusion that AI can type automatically, then Jensen's job is removed. And so that misses the purpose."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;এই গল্পটা developer দের জন্যও একই।&lt;/strong&gt; AI কোড লিখতে পারছে সেটা task। কিন্তু আপনার &lt;strong&gt;উদ্দেশ্য&lt;/strong&gt; কী? System design করা, problem frame করা, business understand করা, team lead করা এগুলো AI replace করতে পারছে না।&lt;/p&gt;




&lt;h2&gt;
  
  
  সংখ্যাগুলো কী বলছে?
&lt;/h2&gt;

&lt;p&gt;Stanford বলছে AI এর কারণে তরুণ ইঞ্জিনিয়ারদের সুযোগ &lt;strong&gt;১৩% কমছে&lt;/strong&gt;। আর সিনিয়রদের? সেটা বাড়ছে বা অন্তত stable আছে। (&lt;a href="https://digitaleconomy.stanford.edu/wp-content/uploads/2025/08/Canaries_BrynjolfssonChandarChen.pdf" rel="noopener noreferrer"&gt;Stanford Digital Economy Lab&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;২০২২ থেকে ২০২৬ চার বছরে জুনিয়র চাকরির posting &lt;strong&gt;৬৭% কমেছে&lt;/strong&gt;। IT তে নতুন নিয়োগের মাত্র &lt;strong&gt;৭%&lt;/strong&gt; জুনিয়র পদ। আগে ছিল ১৫%। (&lt;a href="https://altersquare.io/companies-stopped-hiring-junior-devs-ai-crisis" rel="noopener noreferrer"&gt;AlterSquare&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;৬৭% একটু দাঁড়িয়ে ভাবুন। এটা কোনো ছোট সংখ্যা না।&lt;/p&gt;

&lt;p&gt;কিন্তু একটা মোড় আছে।&lt;/p&gt;

&lt;p&gt;২০২৬ এর জানুয়ারিতে ৮৪৭ জন hiring manager কে জিজ্ঞেস করা হলো। তাদের &lt;strong&gt;৮৫%&lt;/strong&gt; বললেন "হ্যাঁ, জুনিয়র নিয়োগ চালিয়ে যাচ্ছি।" (&lt;a href="https://markaicode.com/ai-junior-developers-job-market-2026" rel="noopener noreferrer"&gt;Markaicode&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;তাহলে কি সব ঠিক আছে?&lt;/p&gt;

&lt;p&gt;না। সমস্যা হলো চাকরিটা নিজে বদলে গেছে। কোম্পানিগুলো জুনিয়র নিচ্ছে, ঠিকই। কিন্তু এমন জুনিয়র চায় যে প্রথম দিন থেকেই AI tools দিয়ে কাজ করতে পারে।&lt;/p&gt;

&lt;p&gt;"কাজ করতে করতে শিখবে" এই model টা আর চলছে না। "ইতিমধ্যে শিখে এসো" এটাই এখন নিয়ম।&lt;/p&gt;




&lt;h2&gt;
  
  
  বাংলাদেশের ছবিটা কেমন?
&lt;/h2&gt;

&lt;p&gt;বৈশ্বিক কথা শুনলেন। কিন্তু আপনার তো চিন্তা আপনার দেশ নিয়ে। আমারও ছিল।&lt;/p&gt;

&lt;p&gt;তাই বাংলাদেশের data খুঁজলাম। যা পেলাম আরো ইন্টারেস্টিং।&lt;/p&gt;

&lt;p&gt;আমাদের দেশে স্নাতকদের বেকারত্ব &lt;strong&gt;১৩.৫%&lt;/strong&gt;। নারী স্নাতকদের ক্ষেত্রে সেটা &lt;strong&gt;২০%&lt;/strong&gt; এর কাছাকাছি। (&lt;a href="https://blog.nextjobz.com.bd/bangladesh-job-market-trends" rel="noopener noreferrer"&gt;nextjobz.com.bd&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;প্রশ্ন এটা কি AI এর কারণে?&lt;/p&gt;

&lt;p&gt;উত্তর না।&lt;/p&gt;

&lt;p&gt;তরুণ স্নাতকদের বেকারত্ব ২০১৩ সালেই ছিল &lt;strong&gt;৯.৭%&lt;/strong&gt;। ২০২২ সালে সেটা গিয়ে দাঁড়ায় &lt;strong&gt;২৭.৮%&lt;/strong&gt;। AI tools তো তখন এত জনপ্রিয় ছিলই না। (&lt;a href="https://journaljmbe.com/jmbe/en/article/view/6651" rel="noopener noreferrer"&gt;Journal of Management and Business Education&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;তার মানে, সমস্যাটা আগে থেকেই ছিল। AI শুধু সেটাকে জোরে চালিয়ে দিচ্ছে।&lt;/p&gt;

&lt;p&gt;IT sector এর দিকে তাকাই। বাংলাদেশে ৫ লাখ+ IT professional আছে। ৪,৫০০+ কোম্পানি। ৬.৫ লাখ+ freelancer। IT services market $২.১ billion বছরে ১১.৮% করে বাড়ছে। (&lt;a href="https://bida.gov.bd/investment-sector/it-it-enabled-services" rel="noopener noreferrer"&gt;BIDA&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;কিন্তু BASIS বলছে IT sector এ &lt;strong&gt;৪০% skills gap&lt;/strong&gt; আছে। কোম্পানিগুলো কাজের মানুষ পাচ্ছে না। ডিগ্রি আছে সবার। প্র্যাকটিক্যাল skill নেই কারো। (&lt;a href="https://blog.nextjobz.com.bd/bangladesh-job-market-trends" rel="noopener noreferrer"&gt;nextjobz.com.bd citing BASIS&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;আমার ছোট ভাই যখন LinkedIn এ চাকরি খুঁজছিল সমস্যাটা হয়তো posting কমার কারণে না। সমস্যাটা হতে পারে কোম্পানিগুলো ঠিকই hiring করছে, কিন্তু এমন মানুষ খুঁজছে যাদের কাছে সে রকম skill নেই।&lt;/p&gt;

&lt;p&gt;চাকরি আছে। যোগ্য মানুষ নেই। এটাই আসল কথা।&lt;/p&gt;




&lt;h2&gt;
  
  
  Freelancing দরজাটা কি বন্ধ হচ্ছে?
&lt;/h2&gt;

&lt;p&gt;বাংলাদেশের অনেকের জন্য freelancing ছিল প্রথম দরজা। যাদের চাকরি মেলেনি তারা Upwork বা Fiverr এ কাজ শুরু করেছে। সেখান থেকে বড় হয়েছে।&lt;/p&gt;

&lt;p&gt;বাংলাদেশ প্রতি বছর freelancing থেকে $৫০০ মিলিয়ন+ আয় করে। এটা হাসি-খুশি সংখ্যা না।&lt;/p&gt;

&lt;p&gt;কিন্তু AI ক্লায়েন্টদের চাহিদা বদলে দিচ্ছে।&lt;/p&gt;

&lt;p&gt;Freelance writing এর posting &lt;strong&gt;৩৩% কমেছে&lt;/strong&gt;। Translation এর কাজ &lt;strong&gt;১৯% কমেছে&lt;/strong&gt;। Customer support এর পদ &lt;strong&gt;১৬% কমেছে&lt;/strong&gt;। ঠিক সেই কাজগুলো, যেগুলো দিয়ে বাংলাদেশি freelancer রা শুরু করতো। (&lt;a href="https://win-tk.org/en/technology/bangladeshi-freelancers-ai-earn-more-upwork-fiverr-2026/" rel="noopener noreferrer"&gt;WINTK&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;কিন্তু একই সময়ে Upwork এ generative AI এর job posting &lt;strong&gt;১০০০%+&lt;/strong&gt; বেড়েছে। (&lt;a href="https://www.tbsnews.net/tech/beyond-upwork-how-bangladeshi-freelancers-are-building-agencies-2026-1377091" rel="noopener noreferrer"&gt;The Business Standard&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;দরজাটা বন্ধ হচ্ছে না। দরজাটা বদলাচ্ছে। যারা basic skill নিয়ে আছেন তাদের জন্য সরু হচ্ছে। যারা AI skill শিখছেন তাদের জন্য আরো প্রশস্ত হচ্ছে।&lt;/p&gt;




&lt;h2&gt;
  
  
  টাকার কথা একটু বলি
&lt;/h2&gt;

&lt;p&gt;সত্যি বলতে, সাধারণ developer আর AI developer এর বেতনের গ্যাপ প্রতি দিন বাড়ছে।&lt;/p&gt;

&lt;p&gt;লোকাল কোম্পানিতে সাধারণ জুনিয়র developer এর বেতন ৳২৫,০০০ – ৳৪৫,০০০/মাস। সিনিয়র হলে ৳৮০,০০০ – ৳১,৬০,০০০+। (&lt;a href="https://www.kaz.com.bd/blog/best-software-companies-in-bangladesh" rel="noopener noreferrer"&gt;Kaz Software&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;কিন্তু AI/ML developer? জুনিয়র থেকেই শুরু ৳৩৫,০০০ – ৳৮০,০০০/মাস। সিনিয়র হলে ৳১,৫০,০০০ – ৳৩,০০,০০০+। আর remote international চাকরি? ৳৪,০০,০০০ – ৳১০,০০,০০০+/মাস। (&lt;a href="https://nucamp.co/blog/coding-bootcamp-bangladesh-bgd-getting-a-job-in-tech-in-bangladesh-in-2025-the-complete-guide" rel="noopener noreferrer"&gt;Nucamp&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;৩০-৫০% বেশি। skill আর market এর পার্থক্য।&lt;/p&gt;

&lt;p&gt;একটু ভেবে দেখুন আগামী ৫ বছর কোন দিকে যাচ্ছেন সেটার ওপর নির্ভর করছে আপনার আয়।&lt;/p&gt;




&lt;h2&gt;
  
  
  একটা বড় ঝুঁকি কিন্তু কেউ কথা বলছে না
&lt;/h2&gt;

&lt;p&gt;এখন কোম্পানিগুলো যদি জুনিয়রদের কম নেয় তাহলে ৫ বছর পর সিনিয়র কারা হবে?&lt;/p&gt;

&lt;p&gt;AWS এর CEO Matt Garman বলেছেন AI দিয়ে জুনিয়রদের replace করা "সবচেয়ে বোকা কাজগুলোর একটা।" কিন্তু hiring data দেখাচ্ছে কোম্পানিগুলো ঠিক সেটাই করছে।&lt;/p&gt;

&lt;p&gt;মঞ্জুরুল আলম মামুন তার post এ একটা কথা বলেছেন যা খুব ভেবে দেখার মতো —&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Today's Junior Engineers = Tomorrow's Missing Seniors."&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;"AI can generate code. It cannot generate experience."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;একদম। কোড AI লিখতে পারে। কিন্তু experience কি AI দিতে পারবে? পারবে না। Experience লাগে বছরের পর বছর কাজ করে, ভুল করে, শিখে।&lt;/p&gt;

&lt;p&gt;কিন্তু যদি জুনিয়ররা কাজ করার সুযোগই না পায় তাহলে experience কোথা থেকে আসবে?&lt;/p&gt;

&lt;p&gt;২০৩০-৩২ সালের দিকে experienced engineer এর অভাব দেখা দেবে। সিনিয়র বেতন আরো বাড়বে। Team structure দুর্বল হবে। (&lt;a href="https://altersquare.io/companies-stopped-hiring-junior-devs-ai-crisis" rel="noopener noreferrer"&gt;AlterSquare&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;মানে, আজকে যে সিনিয়রদের চাহিদা বাড়ছে, ৫ বছর পর সেই সিনিয়রদের অভাব হবে। কারণ জুনিয়ররা বড় হওয়ার সুযোগই পাচ্ছে না।&lt;/p&gt;




&lt;h2&gt;
  
  
  ঠিক আছে তাহলে কী করবেন?
&lt;/h2&gt;

&lt;p&gt;আমি data দেখে যা বুঝেছি সোজা ভাষায় বলছি।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;১. AI এর কোড যাচাই করা শিখুন&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;৬৩% developer বলছে AI generated code debug করতে নিজে লেখার চেয়ে বেশি সময় লাগে। মানে AI ভুল করছে। আর সেই ভুল ধরার কাজটাই এখন সবচেয়ে দামি skill। (&lt;a href="https://byteiota.com/llms-are-eroding-software-engineering-careers-data" rel="noopener noreferrer"&gt;byteiota&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;কীভাবে শিখবেন? আজই শুরু করুন ChatGPT কে একটা জটিল প্রবলেম দিন। যে কোড সে লিখছে সেটা নিজে যাচাই করুন। ভুল খুঁজুন। প্রতিদিন একটু করে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;২. Tutorial বন্ধ করুন real project বানান&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Handshake এর survey দেখাচ্ছে ৩ মাসের মধ্যে চাকরি পাওয়া স্নাতকদের &lt;strong&gt;৭৮%&lt;/strong&gt; এর কাছে শক্তিশালী GitHub portfolio, internship, বা certification ছিল। শুধু ডিগ্রি নিয়ে? মাত্র &lt;strong&gt;৩১%&lt;/strong&gt; সফল হয়েছে। (&lt;a href="https://www.finalroundai.com/blog/computer-science-graduates-face-worst-job-market-in-decades" rel="noopener noreferrer"&gt;FinalRoundAI&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;মানে, ডিগ্রি আর যথেষ্ট না। আপনার কাজ দেখতে চায় কোম্পানি।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;৩. Execution থেকে বেরিয়ে আসুন System Design শিখুন&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;মামুন ভাই যা বলেছেন সেটা মনে রাখা দরকার। শুধু কোড লেখা, bug fix, simple implementation এগুলো AI করছে। এগুলো "execution" skill। এগুলোর value কমছে।&lt;/p&gt;

&lt;p&gt;এখন value হচ্ছে System Design, Product Judgment, Business Understanding, Architecture Decisions, Problem Framing।&lt;/p&gt;

&lt;p&gt;মানে, "কীভাবে কোড লিখবো" না, "কী build করবো আর কেন build করবো" সেটাই এখন প্রশ্ন।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;৪. AI-fluent হোন&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI skill এখন &lt;strong&gt;৪২% software job description&lt;/strong&gt; এ আছে। ২০২২ সালে ছিল মাত্র ৮%। যারা AI পারে তারা &lt;strong&gt;২.৩ গুণ দ্রুত&lt;/strong&gt; চাকরি পান। (&lt;a href="https://www.finalroundai.com/blog/software-engineering-job-market-2026" rel="noopener noreferrer"&gt;FinalRoundAI&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;২.৩ গুণ। একটু ভাবুন।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;৫. এমন sector বেছে নিন যেখানে AI replace করতে পারে না&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;বাংলাদেশে তিনটা sector এখন খুব ভালো:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fintech&lt;/strong&gt; bKash, Nagad, SSLCommerz। Compliance এর জন্য human oversight লাগবেই। AI একা চালাতে পারবে না।&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telecom&lt;/strong&gt; Grameenphone, Robi। বিশাল data infrastructure।&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RMG tech&lt;/strong&gt; Supply chain আর quality inspection।&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;এই sector গুলোতে AI সাহায্য করবে। কিন্তু replace করবে না।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;৬. Remote চাকরির কথা ভাবুন&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;লোকাল জুনিয়র বেতন ৳২৫,০০০–৪৫,০০০/মাস। Remote international চাকরি শুরু $২০K–$৫০K/year। সেটা বছরে প্রায় ২৩–৫৮ লাখ টাকা।&lt;/p&gt;

&lt;p&gt;একই কাজ। ভিন্ন বেতন। পার্থক্যটা শুধু skill আর কোন মার্কেটে আপনি নিজেকে present করছেন।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;৭. একটা domain এ গভীরে যান&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;সাধারণ "MERN stack developer" এখন replaceable। কিন্তু fintech developer? Telecom engineer? AI specialist? তারা না।&lt;/p&gt;

&lt;p&gt;একটা domain বেছে নিন। ১৮–২৪ মাস সেটাতে গভীরে যান। Surface level আর কেউ মানে না।&lt;/p&gt;




&lt;h2&gt;
  
  
  শেষ করি একটা সুখবর দিয়ে
&lt;/h2&gt;

&lt;p&gt;এত কথা শুনে হয়তো ভাবছেন সব শেষ। তাই না?&lt;/p&gt;

&lt;p&gt;ভুল ভাবছেন।&lt;/p&gt;

&lt;p&gt;বাংলাদেশের AI market প্রতি বছর &lt;strong&gt;২৫–৩০%&lt;/strong&gt; বাড়ছে। ২০৩০ সালে $৮০M থেকে $২৩০M+ হওয়ার projection আছে। (&lt;a href="https://nucamp.co/blog/coding-bootcamp-bangladesh-bgd-getting-a-job-in-tech-in-bangladesh-in-2025-the-complete-guide" rel="noopener noreferrer"&gt;Nucamp citing Statista&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;আরেকটা জিনিস মাত্র &lt;strong&gt;২৮%&lt;/strong&gt; organization সত্যি সত্যি AI দিয়ে তাদের workflow বদলাতে পারে। ৮৮% হয়তো AI adopt করেছে। কিন্তু কাজে লাগাতে পারছে না।&lt;/p&gt;

&lt;p&gt;"AI use করা" আর "AI দিয়ে কাজ করা" এই দুটোর মধ্যে যে gap আছে সেটাই আসল টাকার জায়গা। আর সেই gap পূরণ করতে পারে এমন মানুষ তার অভাব আছে।&lt;/p&gt;

&lt;p&gt;BDPolicyLab বলছে বাংলাদেশের ৪৪ লাখ worker এমন occupation এ আছে যেখানে AI impact পড়বে। (&lt;a href="https://bdpolicylab.com/stories/2026-05-bd-ai-jobs-shift" rel="noopener noreferrer"&gt;BDPolicyLab&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;৪৪ লাখ। এর মানে, ৪৪ লাখ মানুষের কাজ বদলবে। যারা আগে থেকে প্রস্তুত তারা এগিয়ে যাবে। যারা না তারা পিছিয়ে পড়বে।&lt;/p&gt;




&lt;p&gt;আমার ছোট ভাইকে আমি শেষে যা বলেছি সেটাই আপনাকেও বলছি।&lt;/p&gt;

&lt;p&gt;পুরোনো পথ "basic শেখো, জুনিয়র চাকরি নাও, কাজ করতে করতে বড় হও" সেটা বন্ধ হয়ে আসছে। AI tools সেই কাজগুলো নিজে করে ফেলছে।&lt;/p&gt;

&lt;p&gt;নতুন পথ আলাদা। AI tools ভালো করে শিখুন। Real project বানান। AI এর কোড validate করুন। Execution থেকে উঠে এসে System Design শিখুন। একটা domain এ specialized হোন। Remote চাকরি লক্ষ্য করুন।&lt;/p&gt;

&lt;p&gt;কথা হলো &lt;strong&gt;AI কোড লিখতে পারে। কিন্তু experience দিতে পারে না।&lt;/strong&gt; experience আসবে কাজ থেকে। কাজ পাওয়ার জন্য দরকার এমন skill যা AI শিখতে পারে না।&lt;/p&gt;

&lt;p&gt;Data স্পষ্ট বলছে কোম্পানিগুলো ২০২৬ সালেও জুনিয়র নিয়োগ করছে। কিন্তু শুধু তাদেরই যারা প্রথম দিন থেকেই AI tools দিয়ে কাজ করতে পারে।&lt;/p&gt;

&lt;p&gt;প্রশ্ন হলো আপনি কোন দিকে যাচ্ছেন? 🙏&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;সূত্র:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://digitaleconomy.stanford.edu/wp-content/uploads/2025/08/Canaries_BrynjolfssonChandarChen.pdf" rel="noopener noreferrer"&gt;Stanford Digital Economy Lab Canaries in the Coal Mine (Aug 2025)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE" rel="noopener noreferrer"&gt;LinkedIn/FRED Software Engineering Job Postings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://altersquare.io/companies-stopped-hiring-junior-devs-ai-crisis" rel="noopener noreferrer"&gt;AlterSquare 54% of Companies Stopped Hiring Junior Devs (Mar 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://markaicode.com/ai-junior-developers-job-market-2026" rel="noopener noreferrer"&gt;Markaicode Will AI Replace Junior Devs? (Feb 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devshire.ai/blog/junior-developer-roles-ai-impact-2026" rel="noopener noreferrer"&gt;devshire.ai The Death of the Junior Developer (Apr 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.finalroundai.com/blog/software-engineering-job-market-2026" rel="noopener noreferrer"&gt;FinalRoundAI Software Engineering Job Market 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.finalroundai.com/blog/computer-science-graduates-face-worst-job-market-in-decades" rel="noopener noreferrer"&gt;FinalRoundAI CS Graduates Face Worst Job Market&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://byteiota.com/llms-are-eroding-software-engineering-careers-data" rel="noopener noreferrer"&gt;byteiota LLMs Are Eroding Software Engineering Careers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bida.gov.bd/investment-sector/it-it-enabled-services" rel="noopener noreferrer"&gt;BIDA IT &amp;amp; ITES Sector in Bangladesh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bdpolicylab.com/stories/2026-05-bd-ai-jobs-shift" rel="noopener noreferrer"&gt;BDPolicyLab Bangladesh's AI-exposed Workforce (May 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.nextjobz.com.bd/bangladesh-job-market-trends" rel="noopener noreferrer"&gt;nextjobz.com.bd Bangladesh Job Market Trends 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://journaljmbe.com/jmbe/en/article/view/6651" rel="noopener noreferrer"&gt;Journal of MBE Graduate Unemployment in Bangladesh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaz.com.bd/blog/best-software-companies-in-bangladesh" rel="noopener noreferrer"&gt;Kaz Software Top 25 Software Companies in Bangladesh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nucamp.co/blog/coding-bootcamp-bangladesh-bgd-getting-a-job-in-tech-in-bangladesh-in-2025-the-complete-guide" rel="noopener noreferrer"&gt;Nucamp AI Career in Bangladesh 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://win-tk.org/en/technology/bangladeshi-freelancers-ai-earn-more-upwork-fiverr-2026/" rel="noopener noreferrer"&gt;WINTK AI Freelancing Bangladesh 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tbsnews.net/tech/beyond-upwork-how-bangladeshi-freelancers-are-building-agencies-2026-1377091" rel="noopener noreferrer"&gt;The Business Standard Bangladeshi Freelancers Building Agencies (Mar 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.payscale.com/research/BD/Job%3DSoftware_Engineer/Salary" rel="noopener noreferrer"&gt;PayScale Software Engineer Salary in Bangladesh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/600541304/posts/10163206881051305/" rel="noopener noreferrer"&gt;Monjurul Alam Mamun (Co-Founder, Inument) Facebook post on AI &amp;amp; team structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/reel/2925835194424751/" rel="noopener noreferrer"&gt;Jensen Huang (CEO, Nvidia) AI &amp;amp; Future of Work (Facebook reel)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>freshers</category>
    </item>
    <item>
      <title>Norway Just Banned AI in Elementary Schools. Here's What That Actually Means.</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Sat, 20 Jun 2026 02:05:51 +0000</pubDate>
      <link>https://dev.to/jamilxt/norway-just-banned-ai-in-elementary-schools-heres-what-that-actually-means-k9i</link>
      <guid>https://dev.to/jamilxt/norway-just-banned-ai-in-elementary-schools-heres-what-that-actually-means-k9i</guid>
      <description>&lt;p&gt;Norway imposed a near-ban on generative AI for students in grades one through seven. That's kids aged six to thirteen. No more ChatGPT for writing assignments, no more AI-powered brainstorming on school devices. The Reuters story dropped June 19 and the HN thread hit 449 points with 292 comments, which tells you people have feelings about this.&lt;/p&gt;

&lt;p&gt;I've been going back and forth on it all day. Part of me thinks it's obviously right. Part of me thinks it's a surrender.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Norway Actually Did
&lt;/h2&gt;

&lt;p&gt;The policy splits students into three tiers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Grades 1–7 (ages 6–13):&lt;/strong&gt; No generative AI, as a general rule. Full stop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grades 8–10 (ages 14–16):&lt;/strong&gt; Can use AI tools cautiously, under teacher supervision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grades 11–13 (ages 17–19):&lt;/strong&gt; Should learn to use AI so they're prepared for work and further education.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't a one-off experiment. In 2024, the Norwegian government banned smartphones from schools and gave teachers more authority to enforce discipline. The AI ban follows the same logic: test scores have been declining, and screens aren't helping.&lt;/p&gt;

&lt;p&gt;When the government says students need to "learn to read, write and comprehend text" without AI shortcuts, they're responding to something real.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Norwegian Parent Actually Saw
&lt;/h2&gt;

&lt;p&gt;A HN commenter named bendriv, a parent with three kids in school, gave the most useful firsthand account. ChatGPT was whitelisted on school iPads. Teachers were using it for writing assignments, brainstorming, and even speeches.&lt;/p&gt;

&lt;p&gt;The school-provided iPads had chatgpt.com whitelisted. Teachers were handing students AI-generated exercises that were, in another parent's words, "quite frankly entirely wrong."&lt;/p&gt;

&lt;p&gt;A parent called a meeting with their daughter's math teacher to point out the errors. The teacher's response? They questioned the parent's knowledge because "AI is foolproof."&lt;/p&gt;

&lt;p&gt;That's the part nobody talks about. Teachers themselves often don't understand what the tools are doing. They're not evaluating the output — they're assuming it's correct because it looks confident.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Equity Problem Nobody Wants to Discuss
&lt;/h2&gt;

&lt;p&gt;A HN commenter named Jimmc414 put this bluntly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A school ban doesn't ban AI at home. It bans the equalizing version. Kids in educated, rich households will get AI exposure from parents. Kids without that won't get it anywhere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a real problem. If wealthy families are teaching their kids to use AI tools effectively while poorer families can't, the school was the one institution that could narrow the gap. Removing it doesn't help.&lt;/p&gt;

&lt;p&gt;I don't have a clean answer for this. Neither does anyone else, which is probably why Norway didn't ban AI for older students. They're making a judgment call: kids under 13 need foundational skills first. The tools can wait.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Evidence Actually Says
&lt;/h2&gt;

&lt;p&gt;A commenter named JumpCrisscross pointed out: "We have mounting evidence AI hurts learning and cognition in many circumstances. I have not yet seen similar-quality evidence for it helping."&lt;/p&gt;

&lt;p&gt;That's not entirely true — there are studies showing AI tutors can help with certain types of math learning when used correctly. But the research on young children and generative AI is thin, and what exists is mixed.&lt;/p&gt;

&lt;p&gt;The teacher subreddit r/teachers isn't a scientific study, but it's a useful temperature check. Teachers there describe AI as a "disaster for student outcomes." Students turn in obviously AI-written work, lose the ability to structure their own arguments, and become dependent on the tools for basic tasks.&lt;/p&gt;

&lt;p&gt;One commenter nailed it: "AI is both the best technology ever invented for avoiding learning, and the best technology ever invented for learning."&lt;/p&gt;

&lt;p&gt;For adults who already know how to think, AI is a productivity multiplier. For kids who are still learning how to think, it might be a crutch that never gets removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Schools Actually For?
&lt;/h2&gt;

&lt;p&gt;simonw in the HN thread: "Kids under 13 need to learn to read, write and comprehend text. Generative AI is not going to help them with those skills."&lt;/p&gt;

&lt;p&gt;He's right. But the deeper question is harder. If AI is going to be everywhere in these kids' adult lives — at work, in creative projects, in everyday decision-making — is it better to introduce it early so they learn to use it critically? Or build the foundations first, then add the tools?&lt;/p&gt;

&lt;p&gt;Norway chose the second option. I'm not sure they're wrong, but I'm not sure they're right either.&lt;/p&gt;

&lt;p&gt;The gifted student take is interesting. One commenter argued that if Norway can't harness AI, there's something deeply wrong with the education system. There's something to that — a system that can't integrate new tools without breaking was probably already fragile.&lt;/p&gt;

&lt;p&gt;But that assumes the system can integrate AI without breaking. The evidence so far suggests it can't, at least not for young kids.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens Next
&lt;/h2&gt;

&lt;p&gt;Norway is the first country-level ban targeting children. Other Nordic countries are watching. Germany and France are debating similar restrictions. The UK has gone the opposite direction, encouraging schools to integrate AI. The US has no federal policy — individual districts are making it up as they go.&lt;/p&gt;

&lt;p&gt;Norway's smartphone ban of 2024 became a model other countries studied. The AI ban might follow the same path. Or it might make Norway an outlier that everyone points to but nobody copies.&lt;/p&gt;

&lt;p&gt;For anyone building edtech: the market for AI tools in elementary schools just lost its largest early adopter. Tools that give teachers control — monitoring, filtering, guided use — are probably more viable now than tools that hand students direct access. Norway's Sikt system, which lets teachers monitor AI use, is a model for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Part I Keep Coming Back To
&lt;/h2&gt;

&lt;p&gt;I don't think Norway is overreacting. The evidence that AI helps young kids learn is weak. The evidence that it hurts is growing. And the teachers actually in classrooms, not the ones writing think pieces, are worried.&lt;/p&gt;

&lt;p&gt;But a ban isn't a solution. It's a pause. Norway is buying time while it figures out what AI in elementary education should look like. The question is whether other countries use that time wisely or keep pretending the problem doesn't exist.&lt;/p&gt;

&lt;p&gt;Five years from now, when today's second graders are in middle school, we'll have some data on whether this helped. That's not a satisfying answer. But it's an honest one.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Based on Reuters reporting (June 19, 2026) and HN community discussion (449 points, 292 comments).&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>learning</category>
      <category>news</category>
    </item>
    <item>
      <title>How the Java Launcher Works — Running Programs Without Compiling First</title>
      <dc:creator>Md Jamilur Rahman</dc:creator>
      <pubDate>Fri, 19 Jun 2026 02:03:31 +0000</pubDate>
      <link>https://dev.to/jamilxt/how-the-java-launcher-works-running-programs-without-compiling-first-31ne</link>
      <guid>https://dev.to/jamilxt/how-the-java-launcher-works-running-programs-without-compiling-first-31ne</guid>
      <description>&lt;p&gt;You know the drill. Write code, compile it, run it. Write code, compile it, run it. Over and over. What if you could skip the middle step entirely?&lt;/p&gt;

&lt;p&gt;Since JDK 11, Java lets you run a source file directly — no separate &lt;code&gt;javac&lt;/code&gt; step needed. The &lt;code&gt;java&lt;/code&gt; launcher handles compilation behind the scenes. And as of JDK 22, this works with multi-file programs too.&lt;/p&gt;

&lt;p&gt;Let me walk through how it works, when to use it, and where it breaks down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Single-File Source-Code Programs
&lt;/h2&gt;

&lt;p&gt;Create a file called &lt;code&gt;HelloWorld.java&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloWorld&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of running &lt;code&gt;javac HelloWorld.java&lt;/code&gt; followed by &lt;code&gt;java HelloWorld&lt;/code&gt;, you just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;java HelloWorld.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. The launcher compiles the file in memory and runs it. No &lt;code&gt;.class&lt;/code&gt; file gets written to disk.&lt;/p&gt;

&lt;p&gt;This works because the &lt;code&gt;java&lt;/code&gt; launcher automatically invokes the Java compiler when you pass it a &lt;code&gt;.java&lt;/code&gt; file. The compiled bytecode lives in memory for the duration of the program.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passing Arguments
&lt;/h2&gt;

&lt;p&gt;You can pass arguments the same way you would with a compiled class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloJava&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;]);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;java HelloJava.java World!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello World!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing special here — the launcher forwards arguments to your &lt;code&gt;main&lt;/code&gt; method just like normal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multiple Classes in One File
&lt;/h2&gt;

&lt;p&gt;Sometimes you want a helper class alongside your main class. That works fine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MultipleClassesInSameFile&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;GenerateMessage&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;generateMessage&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;AnotherMessage&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;generateAnotherMessage&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;GenerateMessage&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;generateMessage&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Here is one message"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AnotherMessage&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;generateAnotherMessage&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Here is another message"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;java MultipleClassesInSameFile.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Here is one message
Here is another message
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first class in the file must have the &lt;code&gt;public static void main&lt;/code&gt; method. The other classes can be package-private.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-File Programs (JDK 22+)
&lt;/h2&gt;

&lt;p&gt;JDK 22 added &lt;a href="https://openjdk.org/jeps/458" rel="noopener noreferrer"&gt;JEP 458&lt;/a&gt;, which lets the &lt;code&gt;java&lt;/code&gt; launcher work with programs spread across multiple files and directories.&lt;/p&gt;

&lt;p&gt;Say you have this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;project/
├── Main.java
├── model/
│   └── Person.java
└── service/
    └── PersonService.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Main.java&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;model.Person&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;service.PersonService&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;PersonService&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PersonService&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createNewPerson&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;printName&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;" has been created!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As long as &lt;code&gt;model/Person.java&lt;/code&gt; and &lt;code&gt;service/PersonService.java&lt;/code&gt; exist in subdirectories matching their package structure, the launcher will compile and load everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;java Main.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can structure your code properly without setting up a build system. That matters more than it sounds — the jump from single-file programs to multi-file projects used to require a build tool right away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using JDK Classes
&lt;/h2&gt;

&lt;p&gt;Any class from the standard JDK libraries works out of the box. No classpath configuration needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.util.Scanner&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.util.regex.MatchResult&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ScannerExample&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;wordsAndNumbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""
            Longing rusted furnace
            daybreak 17 benign
            9 homecoming 1
            freight car
            """&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Scanner&lt;/span&gt; &lt;span class="n"&gt;scanner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Scanner&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wordsAndNumbers&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;scanner&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findAll&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"benign"&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;map&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;MatchResult:&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;forEach&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;IO:&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;java ScannerExample.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Scanner&lt;/code&gt; and &lt;code&gt;MatchResult&lt;/code&gt; classes come from &lt;code&gt;java.util&lt;/code&gt;, which is part of the JDK, so no extra setup is required.&lt;/p&gt;

&lt;h2&gt;
  
  
  External Libraries Need the Classpath
&lt;/h2&gt;

&lt;p&gt;If your code depends on a library that is not part of the JDK, you still need to add it to the classpath manually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.apache.commons.lang3.RandomUtils&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ReferenceNonJDKClass&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;RandomUtils&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;nextInt&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;java &lt;span class="nt"&gt;-cp&lt;/span&gt; /path/to/commons-lang3-3.12.0.jar ReferenceNonJDKClass.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;-cp&lt;/code&gt; flag tells the launcher where to find the external JAR. This is one limitation of the direct-launch approach — it does not resolve dependencies for you. For anything beyond simple programs, you will eventually want a build tool like Maven or Gradle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shebang Files: Java as a Script
&lt;/h2&gt;

&lt;p&gt;On Unix-like systems (Linux, macOS), you can run a single-file Java program like a shell script. Add a shebang line as the first line of your file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="o"&gt;!/&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;your&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloJava&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="no"&gt;IO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;]);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The file cannot have a &lt;code&gt;.java&lt;/code&gt; extension (try something like &lt;code&gt;hello&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;You need to make it executable: &lt;code&gt;chmod +x hello&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then run it like any other script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;./hello Maria
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is handy for small utility scripts. Instead of writing bash or Python, you can write a quick Java program and run it directly from the terminal.&lt;/p&gt;

&lt;p&gt;Be careful though — if you forget to pass an argument when the program expects one, you will get an &lt;code&gt;ArrayIndexOutOfBoundsException&lt;/code&gt;. There is no safety net here.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use This
&lt;/h2&gt;

&lt;p&gt;Direct source-file execution is great for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Learning and experimentation.&lt;/strong&gt; Trying out a new API or Java feature without creating a full project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick scripts.&lt;/strong&gt; Shebang files turn Java into a viable scripting language for small tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teaching.&lt;/strong&gt; No build tool setup means beginners can focus on the language, not the toolchain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototyping.&lt;/strong&gt; Multi-file support (JDK 22+) lets you structure code properly while still skipping the build step.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is not a replacement for a proper build system. Anything that needs external dependencies, tests, or packaging should use Maven or Gradle. But for quick, self-contained programs, the &lt;code&gt;java&lt;/code&gt; launcher saves you real time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;java&lt;/code&gt; launcher can compile and run &lt;code&gt;.java&lt;/code&gt; files directly without a separate &lt;code&gt;javac&lt;/code&gt; step.&lt;/li&gt;
&lt;li&gt;The compiler runs in memory — no &lt;code&gt;.class&lt;/code&gt; files are written to disk.&lt;/li&gt;
&lt;li&gt;You can pass arguments, define multiple classes in one file, and import JDK classes freely.&lt;/li&gt;
&lt;li&gt;JDK 22 added multi-file support, letting you structure code across directories.&lt;/li&gt;
&lt;li&gt;External libraries still need the &lt;code&gt;-cp&lt;/code&gt; classpath flag.&lt;/li&gt;
&lt;li&gt;On Unix systems, shebang files let you run Java programs like shell scripts.&lt;/li&gt;
&lt;li&gt;Use this for learning, scripting, and prototyping. Use a build tool for everything else.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on dev.java/learn — &lt;a href="https://dev.java/learn/launch-simple-source-code-programs/" rel="noopener noreferrer"&gt;https://dev.java/learn/launch-simple-source-code-programs/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cli</category>
      <category>java</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
