<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: akiselev</title><link>https://news.ycombinator.com/user?id=akiselev</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Apr 2026 11:54:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=akiselev" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by akiselev in "GPT-5.4"]]></title><description><![CDATA[
<p><i>> Curious to hear if people have use cases where they find 1M works much better!</i><p>Reverse engineering [1]. When decompiling a bunch of code and tracing functionality, it's really easy to fill up the context window with irrelevant noise and compaction generally causes it to lose the plot entirely and have to start almost from scratch.<p>(Side note, are there any OpenAI programs to get free tokens/Max to test this kind of stuff?)<p>[1] <a href="https://github.com/akiselev/ghidra-cli" rel="nofollow">https://github.com/akiselev/ghidra-cli</a></p>
]]></description><pubDate>Thu, 05 Mar 2026 19:06:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47265823</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47265823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47265823</guid></item><item><title><![CDATA[New comment by akiselev in "We hid backdoors in ~40MB binaries and asked AI + Ghidra to find them"]]></title><description><![CDATA[
<p>They can oneshot relatively simple parsers/encoders/decoders with a proper spec, but it’s a completely different ballgame when you’re trying to parse a very domain knowledge heavy file format (like the format electronics CAD) with decades of backwards compatible cruft spread among hundreds of megabytes of decompiled Delphi and C# dlls (millions of lines).<p>The low level parts (OLE container, streams and blocks) are easy but the domain specific stuff like deserializing to typed structs is much harder.</p>
]]></description><pubDate>Tue, 24 Feb 2026 06:26:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47133538</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47133538</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47133538</guid></item><item><title><![CDATA[New comment by akiselev in "Writing code is cheap now"]]></title><description><![CDATA[
<p>Totally agreed. I’ve been reverse engineering Altium’s file format to enable agents to vibe-engineer electronics and though I’m on my third from scratch rewrite in as many weeks, each iteration improves significantly in quality as the previous version helps me to explore the problem space and instruct the agent on how to do red/green development [1]. Each iteration is tens of thousands of lines of code which would have been impossible to write so fast before so it’s been quite a change in perspective, treating so much code as throw away experimentation.<p>I’m using a combination of 100s of megabytes of Ghidra decompiled delphi DLLs and millions of lines of decompiled C# code to do this reverse engineering. I can’t imagine even trying such a large project for LLMs so while a good implementation is still taking a lot of time, it’s definitely a lot cheaper than before.<p>[1] I saw your red/green TDD article/book chapter and I don’t think you go far enough. Since we have agents, you can generalize red/green development to a lot of things that would be impractical to implement in tests. For example I have agents analyze binary diffs of the file format to figure out where my implementation is incorrect without being bogged down by irrelevant details like the order or encoding of parameters. This guides the agent loop instead of tests.</p>
]]></description><pubDate>Tue, 24 Feb 2026 06:15:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47133477</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47133477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47133477</guid></item><item><title><![CDATA[New comment by akiselev in "We hid backdoors in ~40MB binaries and asked AI + Ghidra to find them"]]></title><description><![CDATA[
<p>I used the latest submissions from sites like crackmes.ones which were days or weeks old to guard against that.</p>
]]></description><pubDate>Sun, 22 Feb 2026 18:11:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47113239</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47113239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47113239</guid></item><item><title><![CDATA[New comment by akiselev in "We hid backdoors in ~40MB binaries and asked AI + Ghidra to find them"]]></title><description><![CDATA[
<p>When I was developing my ghidra-cli tool for LLMs to use, I was using crackmes as tests and it had no problem getting through obfuscation as long as it was prompted about it. In practice when reverse engineering real software it can sometimes spin in circles for a while until it finally notices that it's dealing with obfuscated code, but as long as you update your CLAUDE.md/whatever with its findings, it generally moves smoothly from then on.</p>
]]></description><pubDate>Sun, 22 Feb 2026 17:38:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47112899</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47112899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47112899</guid></item><item><title><![CDATA[New comment by akiselev in "We hid backdoors in ~40MB binaries and asked AI + Ghidra to find them"]]></title><description><![CDATA[
<p>There’s not much difference, really. I stupidly didn’t bother looking at prior art when I started reverse engineering and the ghidra-cli was born (along with several others like ilspy-cli and debugger-cli)<p>That said, it should be easier to use as a human to follow along with the agent and Claude Code seems to have an easier time with discovery rather than stuffing all the tool definitions into the context.</p>
]]></description><pubDate>Sun, 22 Feb 2026 16:25:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47112289</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47112289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47112289</guid></item><item><title><![CDATA[New comment by akiselev in "Iran students stage first large anti-government protests since deadly crackdown"]]></title><description><![CDATA[
<p>The book Brett uses as his main source, <i>Waging A Good War</i>, is an <i>incredible</i> book that I strongly recommend. It treats the Civil Rights movement as a military campaign and analyzes it from the perspective of a military historian.<p>Not in the sense that it was viewed as a war by the protestors, but in the sense that the logistics, training, and operations of the Civil Rights movement were a well oiled machine that looked like a well organized, but nonviolent, army (including counterexamples where there was no organization).<p>One of the most memorable details is how James Lawson trained in nonviolence under Ghandi and came over to train protestors in nonviolent tactics. They gathered in church basements to scream insults and spit on each other to prepare for the restaurant sitins and other ops.</p>
]]></description><pubDate>Sun, 22 Feb 2026 16:04:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47112097</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47112097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47112097</guid></item><item><title><![CDATA[New comment by akiselev in "We hid backdoors in ~40MB binaries and asked AI + Ghidra to find them"]]></title><description><![CDATA[
<p>Shameless plug: <a href="https://github.com/akiselev/ghidra-cli" rel="nofollow">https://github.com/akiselev/ghidra-cli</a><p>I’ve been using Ghidra to reverse engineer Altium’s file format (at least the Delphi parts) and it’s insane how effective it is. Models are not quite good enough to write an entire parser from scratch but before LLMs I would have never even attempted the reverse engineering.<p>I definitely would not depend on it for security audits but the latest models are more than good enough to reverse engineer file formats.</p>
]]></description><pubDate>Sun, 22 Feb 2026 15:46:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47111925</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=47111925</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47111925</guid></item><item><title><![CDATA[New comment by akiselev in "Coding agents have replaced every framework I used"]]></title><description><![CDATA[
<p><i>> We can finally get rid of all that middle work. That adapting layer of garbage we blindly accepted during these years. A huge amount of frameworks and libraries and tooling that has completely polluted software engineering, especially in web, mobile and desktop development. Layers upon layers of abstractions that abstract nothing meaningful, that solve problems we shouldn’t have had in the first place, that create ten new problems for every one they claim to fix.</i><p>I disagree. At least for a little while until models improve to truly superhuman reasoning*, frameworks and libraries providing abstractions are more valuable than ever. The risk/reward for custom work vs library has just changed in unforeseen ways that are orthogonal to time and effort spent.<p>Not only do LLMs make customization of forks and the resulting maintenance a lot easier, but the abstractions are now the most valuable place for humans to work because it creates a solid foundation for LLMs to build on. By building abstractions that we validate as engineers, we’re encoding human in the loop input without the end-developer having to constantly hand hold the agent.<p>What we need now is better abstractions for building verification/test suites and linting so that agents can start to automatically self improve their harness. Skills/MCP/tools in general have had the highest impact short of model improvements and there’s so much more work to be done there.<p>* whether this requires full AGI or not, I don’t know.</p>
]]></description><pubDate>Sat, 07 Feb 2026 14:22:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46924129</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46924129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46924129</guid></item><item><title><![CDATA[New comment by akiselev in "Claude Code is suddenly everywhere inside Microsoft"]]></title><description><![CDATA[
<p>I think it’s an Adobe Flex app now.</p>
]]></description><pubDate>Mon, 02 Feb 2026 17:24:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46858568</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46858568</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46858568</guid></item><item><title><![CDATA[New comment by akiselev in "Kernighan on Programming"]]></title><description><![CDATA[
<p>The real question is whether “debugging” the LLM is going to be as effective as debugging the code.<p>IME it pays dividends but it can be really painful. I’ve run into a situation multiple times where I’m using Claude Code to write something, then a week later while working it’ll come up with something like “Oh wait! Half the binaries are in .Net and not Delphi, I can just decompile them with ilspy”, effectively showing the way to a better rewrite that works better with fewer bugs that gets done in a few hours because I’ve got more experience from the v1. Either way it’s tens of thousands of lines of code that I could never have completed myself in that amount of time (which, given problems of motivation, means “at all”).</p>
]]></description><pubDate>Mon, 02 Feb 2026 17:08:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46858356</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46858356</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46858356</guid></item><item><title><![CDATA[New comment by akiselev in "A Step Behind the Bleeding Edge: A Philosophy on AI in Dev"]]></title><description><![CDATA[
<p>I'm self taught but used to work as an EE professionally doing high speed digital and RF mixed signal work.<p>It honestly might have been easier without that experience because KiCad is open source and their S-expr file format is easy to use. I'm stuck with Altium since that's what I learned on and am used to.</p>
]]></description><pubDate>Sun, 01 Feb 2026 02:19:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46843007</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46843007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46843007</guid></item><item><title><![CDATA[New comment by akiselev in "A Step Behind the Bleeding Edge: A Philosophy on AI in Dev"]]></title><description><![CDATA[
<p><i>> Most common question on HN seems to be "what are people building". Well, stuff like this.</i><p>Hear, hear! I’ve got my altium-cli repo open source in Github as well, which is a vibe coded CLI for editing vibe reverse engineered Altium PCB projects. It’s not yet ready for primetime (I’m finishing up the file format reverse engineering this weekend) and the code quality is probably something twelve year old me would have been embarrassed by, but I can already use it and Claude/Gemini to automate a lot of the tedious parts of PCB design like part selection and footprints. I’m almost to the point where Claude Code can use it for the entire EE workflow from part selection to firmware, minus the PCB routing which I still do by hand.<p>I just ain’t wasting time blogging about it so unless someone stumbles onto it randomly by lurking on HN, they won’t know that Claude Code can now work on PCBs.</p>
]]></description><pubDate>Sat, 31 Jan 2026 18:21:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46839149</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46839149</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46839149</guid></item><item><title><![CDATA[New comment by akiselev in "A Step Behind the Bleeding Edge: A Philosophy on AI in Dev"]]></title><description><![CDATA[
<p><i>> On the verification loop: I think there’s so much potential here. AI is pretty good at autonomously working on tasks that have a well defined and easy to process verification hook.</i><p>It's scary how good it's become with Opus 4.5. I've been experimenting with giving it access to Ghidra and a debugger [1] for reverse engineering and it's just been plowing through crackmes (from sites like crackmes.one where new ones are released constantly). I haven't bothered trying to have it crack any software but I wouldn't be surprised if it was effective at that too.<p>I'm also working through reverse engineering several file formats by just having it write CLI scripts to export them to JSON then recreate the input file byte by byte with an import command, using either CLI hex editors or custom diff scripts (vibe coded by the agent).<p>I still get routinely frustrated trying to use it for anything complicated but whole classes of software development problems have been reduced to vibe coding that feedback loop and then blowing through Claude Max rate limits.<p>[1] Shameless plug: <a href="https://github.com/akiselev/ghidra-cli" rel="nofollow">https://github.com/akiselev/ghidra-cli</a> <a href="https://github.com/akiselev/debugger-cli" rel="nofollow">https://github.com/akiselev/debugger-cli</a></p>
]]></description><pubDate>Sat, 31 Jan 2026 13:16:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46836413</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46836413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46836413</guid></item><item><title><![CDATA[New comment by akiselev in "Agent orchestration for the timid"]]></title><description><![CDATA[
<p>(Shamless plug) I've been using my debugger-cli [1] to enable agents to debug code using debuggers that support the Debug Adaptor Protocol. It looks like cuda-gdb supports DAP so I'd love to add support. I just need help from someone who can test it adequately (kernels/warps/etc don't quite translate to a generic DAP client implementation).<p>[1] <a href="https://github.com/akiselev/debugger-cli" rel="nofollow">https://github.com/akiselev/debugger-cli</a></p>
]]></description><pubDate>Sun, 25 Jan 2026 00:32:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46749312</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46749312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46749312</guid></item><item><title><![CDATA[Show HN: LLM-friendly debugger-CLI using the Debug Adapter Protocol]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/akiselev/debugger-cli">https://github.com/akiselev/debugger-cli</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46697522">https://news.ycombinator.com/item?id=46697522</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 20 Jan 2026 20:46:14 +0000</pubDate><link>https://github.com/akiselev/debugger-cli</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46697522</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46697522</guid></item><item><title><![CDATA[New comment by akiselev in "Show HN: AI in SolidWorks"]]></title><description><![CDATA[
<p><i>> Is most of the work on the schematics therefore done through this, or manipulating the binaries themselves? Why Altium and not text based kicad for this? I presume just for the ‘professional features’ Altium has</i><p>I'm just manipulating the file format directly because I don't want to be tied to Windows (bleh). I only fire up Altium for a few features that I haven't implemented yet like the autorouting and the UI automation was to let the LLM figure out file corruption issues.<p>I learned Altium long before KiCad was a viable option and Altium's ActiveRoute routing is the perfect blend between manual routing and autorouting so it's really hard to switch. ActiveRoute gets even better with the LLM filling out all the design rules.</p>
]]></description><pubDate>Tue, 13 Jan 2026 01:25:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46596342</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46596342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46596342</guid></item><item><title><![CDATA[New comment by akiselev in "Show HN: AI in SolidWorks"]]></title><description><![CDATA[
<p><i>> If you're getting Opus or anything else to interact with SolidWorks from the CLI, can you say more about how you're getting it to interface effectively?</i><p>I just have a Solidworks plugin that translates CLI calls to JSON to Solidworks API calls and back again.<p>What really started working was creating a bunch of high level CLI commands so that Claude Code could query the part/assembly by asking stuff like "What is the closest distance between the southmost surface of Extrusion1 and the surface of Cylinder2" which would then be translated to a specific high level command or a bunch of lower level commands by Gemini 3 Flash. Those would then be translated to Solidworks API calls, as would any editing commands. It also really helps to give it the ability to parametrize the queries so instead of "all features smaller than 2mm" it can say "all features smaller than $MinFeatureSize", with some logic and a downstream LLM to translate that parameter into values in the design and review it with the human in the loop before committing it to the project.<p>The key is to absolutely minimize how often the LLMs think about numbers and have them think in relationships instead. The hard part is translating those relationships back to the CAD API calls but LLMs are much better at hot hallucinating if you resolve all the parametrized equations last.</p>
]]></description><pubDate>Mon, 12 Jan 2026 19:02:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46592724</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46592724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46592724</guid></item><item><title><![CDATA[New comment by akiselev in "Show HN: AI in SolidWorks"]]></title><description><![CDATA[
<p><i>> Very interested in your workflow - do you have anything online to share?</i><p>Not yet but once I'm ready it's all going to be open source.<p><i>> Also looked into automating altium more and found having to do a lot of GUI work to guide the models along.</i><p>Have you tried the Windows UI Automation/Accessibility APIs? You can download Accessibility Insights for Windows to see the data structure and it's well supported by Altium. It has everything you need to tell the LLM what's on screen without ever sending a screenshot (except for the 2d/3d CAD view) and the UIA provides an API that can actually click, focus, etc. without sending fake keyboard events manually. When reverse engineering the file format I put Opus on a loop and it just kept fiddling with the binary file format until Altium stopped throwing parsing errors.<p><i>> How much of going from ‘design in head’ to schematic and layout have you automated?</i><p>At this point everything but the final PCB routing. My autorouter and autoplacer are very much a work in progress and LLMs aren't great at routing complex traces, but they can brute force it given enough time and DRC checks. Right now I just shell out to autorouters like Specctra with a DSN and route the most important nets by hand in Altium. Since the LLM sets up all the design rules and can spend hours on a loop figuring out the optimal placement, it's usually a breeze. Especially compared to when I first started out in EE and spent days with part selection and footprint capture. Now a lot of that tedium is completely automated.<p>Soon I'll integrating probe-rs into the whole workflow and making end to end vibe PCBs, adding support for FPGAs, and integrating Solidworks so it does enclosures and molds too.</p>
]]></description><pubDate>Mon, 12 Jan 2026 18:47:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46592532</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46592532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46592532</guid></item><item><title><![CDATA[New comment by akiselev in "Show HN: AI in SolidWorks"]]></title><description><![CDATA[
<p><i>> How did you make Claude "know" the PCB layout/schematic specifics? Is just giving it a "reference prompt" enough to produce any interesting results?</i><p>I have a mini query language in the CLI that implements a lot of spatial queries, both structured and via prompts (another LLM translates the prompt to a structured query), against the Altium file format and an intermediate representation I keep. Most queries and editing commands use relative positioning ("to the left of"), units ("right edge minus 10mm"), and parameters (U1.P1.Top + MinSpacing * 5), etc. The LLM rarely needs to use concrete units because it's mostly parametrized by component clearances and design rules - I just choose some numbers at the beginning like board size and layer stackup (mostly set by the fab).<p>The CLI has over a hundred subcommands and I use Claude skills to split up the documentation, but the agent actively explores the schematic and PCB themselves. The Claude skills include instructions to use the measurement subcommands to sanity check after making a move or when doing a review at the end, although I'm in the process of implementing a GPU based design rule checker. My Solidworks interface works the same but there are many more "verbs" there for the LLM to manage.<p>At the end of the day it's mostly just orchestrating another tool which does most of the spatial logic and calculations. It's definitely easier with Altium than Solidworks so far.</p>
]]></description><pubDate>Mon, 12 Jan 2026 18:36:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46592384</link><dc:creator>akiselev</dc:creator><comments>https://news.ycombinator.com/item?id=46592384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46592384</guid></item></channel></rss>