<?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: Kinetikus</title>
    <description>The latest articles on DEV Community by Kinetikus (@kinetzki).</description>
    <link>https://dev.to/kinetzki</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%2F4006970%2F72f127c8-f79a-4e2b-8b3b-214f18087683.jpg</url>
      <title>DEV Community: Kinetikus</title>
      <link>https://dev.to/kinetzki</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kinetzki"/>
    <language>en</language>
    <item>
      <title>Solving "Coding Atrophy" caused by AI - Battledevs</title>
      <dc:creator>Kinetikus</dc:creator>
      <pubDate>Thu, 10 Sep 2026 23:39:33 +0000</pubDate>
      <link>https://dev.to/kinetzki/solving-coding-atrophy-caused-by-ai-battledevs-9gj</link>
      <guid>https://dev.to/kinetzki/solving-coding-atrophy-caused-by-ai-battledevs-9gj</guid>
      <description>&lt;h2&gt;
  
  
  Completing a prompt is not the same as solving under a fuse
&lt;/h2&gt;

&lt;p&gt;You already know the feeling. The model writes. You skim. You merge. A week later you cannot rebuild the same function without opening the chat again.&lt;/p&gt;

&lt;p&gt;That is coding atrophy. Not “AI is bad.” You stopped doing the reps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.battledevs.com" rel="noopener noreferrer"&gt;Battledevs&lt;/a&gt;&lt;/strong&gt; is the gym for that. A realtime player-vs-player coding pit: LeetCode-style problems, a live Python judge, a clock, and another human on the other seat. You write the solution. Tests score as you send them. First to the room goal wins.&lt;/p&gt;

&lt;p&gt;The game is how you stick with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Battledevs is
&lt;/h2&gt;

&lt;p&gt;Battledevs is a live coding arena, not a homework site you abandon after two nights.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python only&lt;/strong&gt; — one language, one editor, no setup theater.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live judging&lt;/strong&gt; — submit and isolated workers run your tests in seconds. You see cases pass or fail while the fuse is still ticking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Same problem set, same clock&lt;/strong&gt; — you and your opponent load the same tickets. No silent autocomplete duel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score, not vibes&lt;/strong&gt; — Easy / Medium / Hard tests pay &lt;strong&gt;5 / 10 / 15&lt;/strong&gt; points. First player to the room goal takes the pit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The landing even lets you type in a real Monaco editor before you sign up. No submit on the homepage — just the feel of the keys.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it exists
&lt;/h2&gt;

&lt;p&gt;AI made shipping faster and practice optional. Optional practice dies.&lt;/p&gt;

&lt;p&gt;We built a pit where:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You &lt;strong&gt;sit&lt;/strong&gt; across a human at your rank.&lt;/li&gt;
&lt;li&gt;You &lt;strong&gt;load&lt;/strong&gt; the same problems.&lt;/li&gt;
&lt;li&gt;You &lt;strong&gt;submit&lt;/strong&gt; Python with your own hands.&lt;/li&gt;
&lt;li&gt;You &lt;strong&gt;score&lt;/strong&gt; — bits move, hats climb, you want another set.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Four beats. Then your hands remember.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problems
&lt;/h2&gt;

&lt;p&gt;These are algorithm tickets, not trivia.&lt;/p&gt;

&lt;p&gt;Each problem is a &lt;strong&gt;real-life scenario&lt;/strong&gt; wrapping a classic pattern — arrays, hash tables, two pointers, graphs, DP — written as CommonMark you actually read. Titles sound like a place and a job, not &lt;code&gt;TwoSum_v3&lt;/code&gt;. Examples and constraints sit in the prompt. Hidden tests are story-world data, not &lt;code&gt;[1, 2, 3]&lt;/code&gt; clones of the sample.&lt;/p&gt;

&lt;p&gt;A ranked match deals &lt;strong&gt;three problems&lt;/strong&gt;. Difficulty is not a coin flip: rarity follows the hats at the table, so a yellow-hat pit is not the same hand as a black-hat pit. You will not see the same tickets you just played in your last two games.&lt;/p&gt;

&lt;p&gt;In the pit you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A problem bay (prompt is not copy-paste bait)&lt;/li&gt;
&lt;li&gt;A Python editor with Reset / Revert&lt;/li&gt;
&lt;li&gt;A case tape — &lt;strong&gt;Run&lt;/strong&gt; to probe, &lt;strong&gt;Submit&lt;/strong&gt; to score the room&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The homepage sample, &lt;strong&gt;Call Sign Pair&lt;/strong&gt;, is the shape: easy hash-table thinking, a story, two examples, tight constraints. Catalog problems go harder. Settings rotate so you are not solving “warehouse inventory” forever.&lt;/p&gt;

&lt;p&gt;You are practicing &lt;em&gt;writing&lt;/em&gt;, not prompting a walkthrough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five ways to take the reps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ranked — the daily gym
&lt;/h3&gt;

&lt;p&gt;1v1. Match by &lt;strong&gt;hat&lt;/strong&gt;. Race three problems. Take bits when the code actually lands.&lt;/p&gt;

&lt;p&gt;After a minute of waiting you can widen search to the next hat up so the queue does not stall. This is the default workout.&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom — the friend pit
&lt;/h3&gt;

&lt;p&gt;Host a room. Share the id. &lt;strong&gt;2–6 seats&lt;/strong&gt;, same live judge, same clock. Spectate is a thing for public custom and tournament pits if you want a gallery, not a second keyboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solo — the quiet set
&lt;/h3&gt;

&lt;p&gt;No opponent. Same editor, same problems, same submit path. Use it when you want the tickets without a race.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tournament — make the practice a night
&lt;/h3&gt;

&lt;p&gt;Single-elimination cups for &lt;strong&gt;8, 16, or 32&lt;/strong&gt; players. Live rounds, standings, match resume, a champion on the tree.&lt;/p&gt;

&lt;p&gt;Anyone can join. Hosting a cup is a paid-pass unlock. You can set a &lt;strong&gt;bit gate&lt;/strong&gt; from earned play status — bits are not for sale. The arena is one floor: brief, bracket, signed list, previous pits.&lt;/p&gt;

&lt;p&gt;A cup is still a workout. It is also loud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interview — see them write, not paste
&lt;/h3&gt;

&lt;p&gt;Host a live session. Shared Python editor, a &lt;strong&gt;system-design board&lt;/strong&gt;, one clock, the same judge as a match.&lt;/p&gt;

&lt;p&gt;You start when both seats are in. You watch keystrokes, not a pasted essay. Problem ticks show which ticket each candidate has open.&lt;/p&gt;

&lt;h2&gt;
  
  
  The game layer (so you come back)
&lt;/h2&gt;

&lt;p&gt;Passing tests scores the room. Winning ranked climbs a &lt;strong&gt;hat ladder&lt;/strong&gt;. Ten stations, bit thresholds, a public leaderboard.&lt;/p&gt;

&lt;p&gt;That is not cosmetics. It is why a Tuesday night ranked set beats “I’ll do LeetCode later.”&lt;/p&gt;

&lt;p&gt;Scoring is honest and small:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;th&gt;Points per passing test&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;First to the goal wins. The fuse is the workout.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you will not find
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A dozen languages on day one. &lt;strong&gt;Python.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A judge that waits until the round ends. Results land while you are still typing.&lt;/li&gt;
&lt;li&gt;Problems that exist only as function signatures with no world. Ours arrive as scenes.&lt;/li&gt;
&lt;li&gt;Bits you can buy. You play for them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Start the cure
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.battledevs.com" rel="noopener noreferrer"&gt;battledevs.com&lt;/a&gt; — create a seat, enter the lobby, queue a human.&lt;/p&gt;

&lt;p&gt;Write it yourself. Watch the tests. Enjoy getting the skill back.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>Tired of paying for Burpsuite so I started SNORPY</title>
      <dc:creator>Kinetikus</dc:creator>
      <pubDate>Sun, 28 Jun 2026 20:40:52 +0000</pubDate>
      <link>https://dev.to/kinetzki/tired-of-paying-for-burpsuite-so-i-started-snorpy-4p2b</link>
      <guid>https://dev.to/kinetzki/tired-of-paying-for-burpsuite-so-i-started-snorpy-4p2b</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; Snorpy is for &lt;strong&gt;authorized security testing only&lt;/strong&gt;. Use it on systems you own or have explicit permission to test.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why I started building this
&lt;/h2&gt;

&lt;p&gt;Burp Suite is excellent. I’ve used it, I respect it, and for serious engagements it’s still the benchmark.&lt;/p&gt;

&lt;p&gt;But between licensing costs and a stack I couldn’t easily extend, I kept thinking: &lt;em&gt;what if there was an open-source alternative built with the tools I already use every day — React, TypeScript, Electron?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That’s why I started &lt;a href="https://github.com/Kinetzki/snorpy" rel="noopener noreferrer"&gt;&lt;strong&gt;Snorpy&lt;/strong&gt;&lt;/a&gt;: a desktop MITM proxy with Proxy, Repeater, and Intruder. It’s early, it’s Apache 2.0, and it’s open for contributors — not a Burp clone yet, but a project I wish existed when I started pentesting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important honesty up front:&lt;/strong&gt; Snorpy is &lt;strong&gt;not&lt;/strong&gt; a full Burp replacement yet. Proxy, Repeater, and Intruder work today. Spider, Decoder, Comparer, and more are on the roadmap. I'm sharing this now because I'd rather build it &lt;em&gt;with&lt;/em&gt; feedback than polish in private forever.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Snorpy does today
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ Working now
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Proxy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HTTP(S) intercept on port &lt;code&gt;8080&lt;/code&gt;, target scoping, request hold/modify/forward&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Repeater&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Edit headers/body and resend requests manually&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Intruder&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fuzz with &lt;code&gt;§placeholder§&lt;/code&gt; markers, wordlists, configurable concurrency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🚧 Coming soon
&lt;/h3&gt;

&lt;p&gt;The sidebar already sketches the roadmap: &lt;strong&gt;Spider&lt;/strong&gt;, &lt;strong&gt;Decoder&lt;/strong&gt;, &lt;strong&gt;Comparer&lt;/strong&gt;, &lt;strong&gt;Buster&lt;/strong&gt;, &lt;strong&gt;AI Analyzer&lt;/strong&gt;, log export, and project settings. These are great places to contribute if you're looking for a first PR.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture: why Electron + mockttp?
&lt;/h2&gt;

&lt;p&gt;Snorpy splits cleanly into two worlds:&lt;/p&gt;

</description>
      <category>electron</category>
      <category>opensource</category>
      <category>react</category>
      <category>security</category>
    </item>
  </channel>
</rss>
