<?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: Achal Jhawar</title>
    <description>The latest articles on DEV Community by Achal Jhawar (@achaljhawar).</description>
    <link>https://dev.to/achaljhawar</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F485869%2F65be5bbe-0090-4e16-ade3-6c9e8001cf7f.jpeg</url>
      <title>DEV Community: Achal Jhawar</title>
      <link>https://dev.to/achaljhawar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/achaljhawar"/>
    <language>en</language>
    <item>
      <title>Which LLM is the best stock picker? I built a benchmark to find out.</title>
      <dc:creator>Achal Jhawar</dc:creator>
      <pubDate>Wed, 20 May 2026 19:01:47 +0000</pubDate>
      <link>https://dev.to/achaljhawar/which-llm-is-the-best-stock-picker-i-built-a-benchmark-to-find-out-1hco</link>
      <guid>https://dev.to/achaljhawar/which-llm-is-the-best-stock-picker-i-built-a-benchmark-to-find-out-1hco</guid>
      <description>&lt;p&gt;Every other week there's a new GPT-vs-Claude-vs-Gemini benchmark on coding or math or reasoning. None of them tell you whether the model can actually make a decision under uncertainty, where the answer isn't in the training data and the result shows up two weeks later in a P&amp;amp;L.&lt;/p&gt;

&lt;p&gt;So I built a different kind of eval. Seven frontier LLMs, $100,000 of paper capital each, identical tools, identical prompts, identical data. Every Monday they pick stocks. The market grades them.&lt;/p&gt;

&lt;p&gt;The project is &lt;strong&gt;&lt;a href="https://github.com/achaljhawar/1rok" rel="noopener noreferrer"&gt;1rok&lt;/a&gt;&lt;/strong&gt;. Live leaderboard: &lt;strong&gt;&lt;a href="https://investingbench.vercel.app/" rel="noopener noreferrer"&gt;investingbench.vercel.app&lt;/a&gt;&lt;/strong&gt;. The clock started January 20, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  The contestants
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPT-5.5&lt;/strong&gt; (OpenAI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.1 Pro Preview&lt;/strong&gt; (Google)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grok 4.3&lt;/strong&gt; (xAI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek V4 Pro&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GLM-5.1&lt;/strong&gt; (Zhipu)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kimi K2.6&lt;/strong&gt; (Moonshot)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MiniMax M2.7&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each model gets its own isolated Alpaca paper account. Same tool registry, same prompts, same screener output. The LLM is the only variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this isn't a hedge fund pitch
&lt;/h2&gt;

&lt;p&gt;I want to be upfront. I don't think a weekly LLM-driven portfolio is going to beat the S&amp;amp;P. If it could, hedge funds would already be doing it. Some are; results so far are mixed.&lt;/p&gt;

&lt;p&gt;The point of 1rok isn't alpha. It's that "which model should I use" is the most-asked question in AI engineering, and most of the answers are vibes. Coding evals are saturated. Math benchmarks get gamed. I wanted a downstream task where the model has to plan, call tools, synthesize conflicting signals, and commit to a decision, with an objective scoreboard at the end.&lt;/p&gt;

&lt;p&gt;Stock picking happens to fit. The fact that everyone has an opinion about it is a bonus.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pipeline
&lt;/h2&gt;

&lt;p&gt;Every Monday at 9:45 ET, a cron fires and kicks off one run per model in parallel. Each run is 10 agents in 4 stages:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8p3b3497go87ff3sa6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8p3b3497go87ff3sa6b.png" alt="mermaid diagram" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Walking through it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Macro&lt;/strong&gt; reads the regime: interest rates, sector flows, yield curve, geopolitical news. Then it declares whether we're in risk-on growth or late-cycle caution. That constrains every downstream decision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screener&lt;/strong&gt; runs 4-10 different stock screens (quality, value, growth, defensive) and surfaces 25-30 names. Stocks that pass multiple lenses get priority.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Six analysts&lt;/strong&gt; work the candidate list in parallel. Each scores every stock 0-100 from a narrow angle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator&lt;/strong&gt; composites the six scores into one number, applies the macro regime as an adjustment, and assigns A/B/C ratings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constructor&lt;/strong&gt; turns ratings into trade orders. It delegates all portfolio math to dedicated calculation tools, because agents that try to do their own sizing math get it wrong about a third of the time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alpaca&lt;/strong&gt; executes. Sells first to free cash, then buys.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The composite formula lives in one place and looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;composite&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="nx"&gt;fundamental&lt;/span&gt;   &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.20&lt;/span&gt;  &lt;span class="c1"&gt;// business quality&lt;/span&gt;
  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;valuation&lt;/span&gt;     &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.20&lt;/span&gt;  &lt;span class="c1"&gt;// price discipline&lt;/span&gt;
  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;risk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.20&lt;/span&gt;  &lt;span class="c1"&gt;// capital preservation (inverted)&lt;/span&gt;
  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;technical&lt;/span&gt;     &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.15&lt;/span&gt;
  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;catalyst&lt;/span&gt;      &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.15&lt;/span&gt;
  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;sentiment&lt;/span&gt;     &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Risk is inverted on purpose. A high-conviction buy with high tail risk should be smaller, not bigger. The constructor caps any single position at 40%, holds at most 8 names, and won't let cash run above 15%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How agents actually get data.&lt;/strong&gt; Each pipeline run spins up its own tool registry. There are ~32 tools across 8 groups: market overview, stock data, screening, technicals, options, earnings, portfolio, web search. An agent calls &lt;code&gt;listTools&lt;/code&gt; to see its slice (the Macro agent gets different tools than the Risk agent), then &lt;code&gt;callTool(name, args)&lt;/code&gt; returns typed JSON from a handler that knows how to talk to Alpaca, Yahoo Finance, FRED, or Tavily. Retries, rate limits, and circuit breaking live in the handler layer, so agents never have to deal with a 429 or a flaky socket mid-thought.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two commands, never one.&lt;/strong&gt; &lt;code&gt;run&lt;/code&gt; produces a portfolio-construction JSON artifact. &lt;code&gt;execute&lt;/code&gt; reads the artifact and places orders. They're always separate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bun run 1rok &lt;span class="nt"&gt;--&lt;/span&gt; run &lt;span class="nt"&gt;--model&lt;/span&gt; gpt-5.5
bun run 1rok &lt;span class="nt"&gt;--&lt;/span&gt; execute ./results/openai/gpt-5.5/portfolio-2026-04-16.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;run&lt;/code&gt; never touches a broker. &lt;code&gt;--live&lt;/code&gt; is the only path to real order placement; without it, everything goes to &lt;code&gt;paper-api.alpaca.markets&lt;/code&gt;. This means I can re-run any model on last week's data without accidentally trading, and I can audit exactly what the model decided before a single order leaves the box.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I want to find out
&lt;/h2&gt;

&lt;p&gt;Open questions I'm watching:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does any model consistently beat any other, or is it noise within a year?&lt;/li&gt;
&lt;li&gt;Do the cheaper models (Kimi, DeepSeek, GLM) underperform, or just trade more cautiously?&lt;/li&gt;
&lt;li&gt;Do "reasoning" models actually reason better about a multi-step financial decision, or do they just spend more tokens arriving at the same answer?&lt;/li&gt;
&lt;li&gt;Does any model panic in a drawdown?&lt;/li&gt;
&lt;li&gt;Does any of them randomly load up on a single stock when they shouldn't?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't have answers yet. The whole experiment is about not having answers yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to engage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Watch:&lt;/strong&gt; &lt;a href="https://investingbench.vercel.app/" rel="noopener noreferrer"&gt;investingbench.vercel.app&lt;/a&gt; for the live leaderboard, agent traces, and per-trade reasoning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run your own:&lt;/strong&gt; clone &lt;a href="https://github.com/achaljhawar/1rok" rel="noopener noreferrer"&gt;github.com/achaljhawar/1rok&lt;/a&gt;, set whichever provider keys you have (any one of the six is enough), and &lt;code&gt;bun run 1rok -- run --model &amp;lt;id&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Star the repo if you want milestones. I'll write up findings as the leaderboard separates.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>showdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hurricano</title>
      <dc:creator>Achal Jhawar</dc:creator>
      <pubDate>Tue, 20 Jul 2021 16:25:01 +0000</pubDate>
      <link>https://dev.to/achaljhawar/hurricano-1mce</link>
      <guid>https://dev.to/achaljhawar/hurricano-1mce</guid>
      <description>&lt;p&gt;An open source Discord bot!&lt;/p&gt;

&lt;h2&gt;Features⭐ :&lt;/h2&gt;

&lt;p&gt;⭐ Mongoose-Based Command Cooldowns&lt;br&gt;
⭐ Command Permissions&lt;br&gt;
⭐ Slash Command Handler&lt;br&gt;
⭐ Subcommands system&lt;br&gt;
⭐ OwnerOnly Commands&lt;br&gt;
⭐ Args required or not Option&lt;br&gt;
⭐ Permissions handler&lt;br&gt;
⭐ Role-Requirement Giveaways&lt;br&gt;
⭐ Customizable server settings using MongoDB&lt;br&gt;
⭐ Button help-menu&lt;br&gt;
⭐ Starboard&lt;br&gt;
⭐ Logging&lt;br&gt;
⭐ a lot of &lt;code&gt;/&lt;/code&gt; commands&lt;br&gt;
⭐ ...And many interesting commands!&lt;/p&gt;

&lt;h2&gt;Invite Hurricano 🌀&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://top.gg/bot/803169312827113483" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftop.gg%2Fapi%2Fwidget%2F803169312827113483.svg" alt="HurricanoBot" width="300" height="150"&gt;&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
Github : &lt;a href="https://github.com/Hurricanobot/Hurricano" rel="noopener noreferrer"&gt;https://github.com/Hurricanobot/Hurricano&lt;/a&gt;&lt;br&gt;
Invite Hurricano: &lt;a href="https://dsc.gg/novusbot" rel="noopener noreferrer"&gt;https://dsc.gg/novusbot&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Tyniurl</title>
      <dc:creator>Achal Jhawar</dc:creator>
      <pubDate>Thu, 04 Feb 2021 10:26:15 +0000</pubDate>
      <link>https://dev.to/achaljhawar/tyniurl-592a</link>
      <guid>https://dev.to/achaljhawar/tyniurl-592a</guid>
      <description>&lt;p&gt;
 &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Flanguages%2Fcount%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img alt="GitHub language count" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Flanguages%2Fcount%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="129" height="28"&gt;&lt;/a&gt;
 &lt;a href="https://github.com/achaljhawar/Tyniurl/issues" rel="noopener noreferrer"&gt;&lt;img alt="GitHub issues" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fissues%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="142" height="28"&gt;&lt;/a&gt;
 &lt;a href="https://github.com/achaljhawar/Tyniurl/network" rel="noopener noreferrer"&gt;&lt;img alt="GitHub forks" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fforks%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="96" height="28"&gt;&lt;/a&gt;
 &lt;a href="https://github.com/achaljhawar/Tyniurl/blob/master/LICENSE" rel="noopener noreferrer"&gt;&lt;img alt="GitHub license" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Flicense%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="179" height="28"&gt;&lt;/a&gt;
 &lt;a href="https://github.com/achaljhawar/Tyniurl/stargazers" rel="noopener noreferrer"&gt;&lt;img alt="GitHub stars" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fstars%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="95" height="28"&gt;&lt;/a&gt;
  &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Flanguages%2Ftop%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img alt="GitHub top language" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Flanguages%2Ftop%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="123" height="28"&gt;&lt;/a&gt;
  &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fv%2Frelease%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" class="article-body-image-wrapper"&gt;&lt;img alt="GitHub release (latest by date)" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fv%2Frelease%2Fachaljhawar%2FTyniurl%3Fstyle%3Dfor-the-badge" width="339" height="28"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;A hassle free URL shortner.&lt;/h3&gt;

&lt;p&gt;This is a simple responsive URL shortener that I made for Halolegion inductions. You can use it and make it yours by changing things and colours to your style and liking! I made it with a lot of hard work, love and of course with code :) I'm not a professional coder, but I tried my best to make it look cool and yet still keep it simple. While working with JS I got many errors, but thanks to Youtube Tutorials for helping me fix them. Also thanks to &lt;a&gt;Utkarsh&lt;/a&gt; for some hosting support :D.You can view my GitHub repo at &lt;a href="https://github.com/achaljhawar/Tyniurl" rel="noopener noreferrer"&gt;https://github.com/achaljhawar/Tyniurl&lt;/a&gt; or watch it live at &lt;a href="https://tyniurl.herokuapp.com/" rel="noopener noreferrer"&gt;https://tyniurl.herokuapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mistakes are proof that we are trying!&lt;/p&gt;

&lt;p&gt;I learned so much while making this template, if you use it, please let me know. I would love to see how amazing people can make it! I hope you'll like it!&lt;/p&gt;

&lt;p&gt;&lt;b&gt;I have used:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exspressjs for markup&lt;/li&gt;
&lt;li&gt;Bootstrap CDN for styling&lt;/li&gt;
&lt;li&gt;A lot of JS for building the server and stuff&lt;/li&gt;
&lt;li&gt;Shortid for generating codes for short URLs&lt;/li&gt;
&lt;li&gt;Nodemon for development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can add more things to make it even cooler! The comments in the code will help you navigate through it. Have a nice day! :D&lt;/p&gt;

&lt;h3&gt;Languages and services used :&lt;/h3&gt;

&lt;p&gt;
&lt;a href="https://github.com/achaljhawar/Tyniurl/search?l=CSS" rel="noopener noreferrer"&gt;&lt;img alt="css" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FCSS3-1572B6%3Fstyle%3Dfor-the-badge%26logo%3Dcss3%26logoColor%3Dwhite" width="57" height="28"&gt;&lt;/a&gt;
&lt;a href="https://github.com/achaljhawar/Tyniurl/search?l=html" rel="noopener noreferrer"&gt;&lt;img alt="html5" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FHTML5-E34F26%3Fstyle%3Dfor-the-badge%26logo%3Dhtml5%26logoColor%3Dwhite" width="88" height="28"&gt;&lt;/a&gt;
&lt;a href="https://github.com/achaljhawar/Tyniurl/search?l=JavaScript" rel="noopener noreferrer"&gt;&lt;img alt="node.js" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FNode.js-43853D%3Fstyle%3Dfor-the-badge%26logo%3Dnode.js%26logoColor%3Dwhite" width="100" height="28"&gt;&lt;/a&gt;
&lt;a href="https://github.com/achaljhawar/Tyniurl/search?l=JavaScript" rel="noopener noreferrer"&gt;&lt;img alt="javascript" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FJavaScript-F7DF1E%3Fstyle%3Dfor-the-badge%26logo%3Djavascript%26logoColor%3Dblack" width="126" height="28"&gt;&lt;/a&gt;
&lt;a href="https://github.com/achaljhawar/Tyniurl/search?l=EJS" rel="noopener noreferrer"&gt;&lt;img alt="expressjs" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FExpress.js-404D59%3Fstyle%3Dfor-the-badge" width="102" height="28"&gt;&lt;/a&gt;

&lt;a href="http://tyniurl.herokuapp.com/" rel="noopener noreferrer"&gt;&lt;img alt="MongoDB" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FMongoDB-4EA94B%3Fstyle%3Dfor-the-badge%26logo%3Dmongodb%26logoColor%3Dwhite" width="110" height="28"&gt;&lt;/a&gt;
&lt;a href="http://tyniurl.herokuapp.com/" rel="noopener noreferrer"&gt;&lt;img alt="heroku" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FHeroku-430098%3Fstyle%3Dfor-the-badge%26logo%3Dheroku%26logoColor%3Dwhite" width="78" height="28"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;Social and Public Posts:&lt;/h3&gt;

&lt;p&gt;
&lt;a href=""&gt;&lt;img alt="dev.to" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fdev.to-0A0A0A%3Fstyle%3Dfor-the-badge%26logo%3Ddev.to%26logoColor%3Dwhite" width="92" height="28"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img alt="Medium" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FMedium-12100E%3Fstyle%3Dfor-the-badge%26logo%3Dmedium%26logoColor%3Dwhite" width="98" height="28"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img alt="Discord" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FDiscord-7289DA%3Fstyle%3Dfor-the-badge%26logo%3Ddiscord%26logoColor%3Dwhite" width="104" height="28"&gt;&lt;/a&gt;
&lt;a href="https://www.instagram.com/achaldwx/" rel="noopener noreferrer"&gt;&lt;img alt="Instagram" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FInstagram-E4405F%3Fstyle%3Dfor-the-badge%26logo%3Dinstagram%26logoColor%3Dwhite" width="123" height="28"&gt;&lt;/a&gt;
&lt;a href="mailto:achaldps@gmail.com"&gt;&lt;img alt="heroku" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FGmail-D14836%3Fstyle%3Dfor-the-badge%26logo%3Dgmail%26logoColor%3Dwhite" width="87" height="28"&gt;&lt;/a&gt;
&lt;a href="https://twitter.com/AchalJhawar" rel="noopener noreferrer"&gt;&lt;img alt="Twitter" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FTwitter-1DA1F2%3Fstyle%3Dfor-the-badge%26logo%3Dtwitter%26logoColor%3Dwhite" width="83" height="28"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img alt="Reddit" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FReddit-FF4500%3Fstyle%3Dfor-the-badge%26logo%3Dreddit%26logoColor%3Dwhite" width="94" height="28"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;If you find some bugs or have some suggestions fell free add your issue.&lt;/h3&gt;

&lt;h3&gt;Thank you.&lt;/h3&gt; 

&lt;h3&gt;Made for HALO&lt;/h3&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Tetris</title>
      <dc:creator>Achal Jhawar</dc:creator>
      <pubDate>Fri, 06 Nov 2020 11:28:50 +0000</pubDate>
      <link>https://dev.to/achaljhawar/tetris-12m0</link>
      <guid>https://dev.to/achaljhawar/tetris-12m0</guid>
      <description>&lt;p&gt;So I have made a Tetris game from python and a module named pygame(it may be quite familiar to some). It has a beautiful background image and Circles by Post Malone will play in the background as an audio asset. Like its having more than 400 lines of code.&lt;/p&gt;

&lt;p&gt;I have listed some of the prerequisites and I instructions to play so that you could have a great time with it you can download the game from &lt;br&gt;
&lt;a href="https://github.com/achaljhawar/tetris" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; or from &lt;a href="https://achaljhawar.itch.io/tetris" rel="noopener noreferrer"&gt;itch.io&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you like it you could share it with others and don't forget to drop a star on the repository it helps or you could donate me itch.io.&lt;/p&gt;
&lt;h2&gt;
  
  
  Perquisites
&lt;/h2&gt;

&lt;p&gt;You'll need &lt;a href="https://www.pygame.org/download.shtml" rel="noopener noreferrer"&gt;pygame&lt;/a&gt; and &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt; python&lt;/a&gt; installed on your computer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pygame@1.9.5 or above
python@3.9.6 or above
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to play
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone this repository&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/achaljhawar/Tetris

&lt;span class="c"&gt;# Go into the folder&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Tetris

&lt;span class="c"&gt;# Run the python file&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;python tetris_game.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enjoy the game its amazing and I am sure you'll love it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instructions to play
&lt;/h2&gt;

&lt;ol&gt;
 &lt;li&gt;You can use the ⬅️⬆️➡️⬇ arrow keys to rotate the pieces.
 &lt;/li&gt;
&lt;li&gt;You have to complete the lines of the grid to get points.
 &lt;/li&gt;
&lt;li&gt;If you can not fit the pieces in the grid you lose.
 &lt;/li&gt;
&lt;li&gt;For every line you complete you get 10 points.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Screenshot of the game
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fk8lnrmnxdvogi60ohqxx.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fk8lnrmnxdvogi60ohqxx.JPG" alt="Alt Text" width="798" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you and have a nice day 😊.&lt;/p&gt;

</description>
      <category>python</category>
      <category>showdev</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
