<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: jbdamask</title><link>https://news.ycombinator.com/user?id=jbdamask</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 14 Aug 2026 22:24:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jbdamask" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jbdamask in "Understanding is the new bottleneck"]]></title><description><![CDATA[
<p>pfft...I'm way past understanding</p>
]]></description><pubDate>Thu, 13 Aug 2026 19:50:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49291022</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49291022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49291022</guid></item><item><title><![CDATA[New comment by jbdamask in "MIT neuroscientists discover the brain can reason without words"]]></title><description><![CDATA[
<p>Not sure why this is surprising. Language is a communication protocol</p>
]]></description><pubDate>Thu, 13 Aug 2026 15:59:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49287961</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49287961</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49287961</guid></item><item><title><![CDATA[New comment by jbdamask in "Lovable raises $400M Series C"]]></title><description><![CDATA[
<p>Enterprises need a solution like Lovable or Replit if only for the one-touch deployments. Unfortunately, neither tool is there.<p>I don't know what's taking Anthropic, OpenAI, Google, Microsoft, even AWS to build deployments themselves. There are only a handful of reference architectures for vibe-coded apps.</p>
]]></description><pubDate>Wed, 12 Aug 2026 21:00:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49278491</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49278491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49278491</guid></item><item><title><![CDATA[New comment by jbdamask in "Delta"]]></title><description><![CDATA[
<p>I use AI explainers a lot in my own projects and have skills that give outputs I like. I'll even pipe the output into NotebookLM to make a video sometimes. This is actually a decent way to grok complex subsystems (YMMV).<p>What I don't care for is the pretty-yet-verbose HTML outputs that I see from some teams. They can be way too long and it's often the case that the engineer who made it didn't read the whole thing.</p>
]]></description><pubDate>Wed, 12 Aug 2026 20:11:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49277942</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49277942</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49277942</guid></item><item><title><![CDATA[Human task board for my agents]]></title><description><![CDATA[
<p>I've gotten into the habit of making Notion boards for human tasks for every project. My agents simply add a task when they need something, e.g. reauth AWS, give feedback on a UI, etc.<p>This way, I don't have to scroll around the terminal or keep asking them to repeat themselves. It helps them, too, because they can bump me if I'm delinquent.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49273656">https://news.ycombinator.com/item?id=49273656</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 12 Aug 2026 15:11:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49273656</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49273656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49273656</guid></item><item><title><![CDATA[New comment by jbdamask in "LinkedIn CringeBot 3000"]]></title><description><![CDATA[
<p>Any linkedin devs here? Would be interesting to hear about the algos</p>
]]></description><pubDate>Wed, 12 Aug 2026 12:47:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49271585</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49271585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49271585</guid></item><item><title><![CDATA[New comment by jbdamask in "Flowise is shutting down"]]></title><description><![CDATA[
<p>Flowise was cool. I used to to help build an enterprise employee search tool with it a few years back. <a href="https://medium.com/better-programming/employee-search-with-openai-flowise-and-langchain-c61cbea42f9c" rel="nofollow">https://medium.com/better-programming/employee-search-with-o...</a><p>The fact is, there's not as much need for drag-n-drop low code tools anymore. At least I don't have much need.</p>
]]></description><pubDate>Wed, 05 Aug 2026 02:21:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49177854</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49177854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49177854</guid></item><item><title><![CDATA[New comment by jbdamask in "[dead]"]]></title><description><![CDATA[
<p>Building while vacationing</p>
]]></description><pubDate>Mon, 03 Aug 2026 14:34:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=49156358</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49156358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49156358</guid></item><item><title><![CDATA[New comment by jbdamask in "AI poster wins Ohio State Fair contest"]]></title><description><![CDATA[
<p>sure, but just look at that butter cow!</p>
]]></description><pubDate>Mon, 03 Aug 2026 00:06:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49149708</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49149708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49149708</guid></item><item><title><![CDATA[New comment by jbdamask in "[dead]"]]></title><description><![CDATA[
<p>The bigger a system gets, the tougher it is to grok. I used to spend oodles of heartbeats writing explainers for managers and other engineers but rarely do that w/out AI now.<p>I like NotebookLM's video creation abilities for certain things. To make this one, I:<p>1. Chatted with Claude about a particular part of my app. It read the code and docs for grounding and we iterated.
2. When happy w/ to scope and level of detail, I asked for an explainer doc.
3. Uploaded to NotebookLM.
4. Clicked 'Video Overview'.</p>
]]></description><pubDate>Sun, 02 Aug 2026 22:15:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49148977</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49148977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49148977</guid></item><item><title><![CDATA[New comment by jbdamask in "Cookware Got Worse on Purpose: Who Owns Pyrex and All-Clad Now"]]></title><description><![CDATA[
<p>I can't tell if this thread is real or not.<p>But, uh, I have All Clad pots and pans and still like them. The bottoms warped on a couple so I replaced them with other brands.<p>In general they hold up well when hand-washed.<p>The handles are terrible though. Maybe it's a UX nudge to always use a pot holder?</p>
]]></description><pubDate>Sat, 01 Aug 2026 21:09:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49138526</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49138526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49138526</guid></item><item><title><![CDATA[New comment by jbdamask in "AI doesn't generate working products, that's still your job"]]></title><description><![CDATA[
<p>Classic case of a CEO finally understanding why engineers are needed</p>
]]></description><pubDate>Sat, 01 Aug 2026 16:26:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49135778</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49135778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49135778</guid></item><item><title><![CDATA[New comment by jbdamask in "AI doesn't generate working products, that's still your job"]]></title><description><![CDATA[
<p>Agentic Engineer: "How'd you solve the icing problem?"
Vibe Coder: "Icing problem?"</p>
]]></description><pubDate>Sat, 01 Aug 2026 12:04:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49133683</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49133683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49133683</guid></item><item><title><![CDATA[Anyone else like llms.txt for architecture docs?]]></title><description><![CDATA[
<p>I'm a fan of using the llms.txt pattern of progressive disclosure for internal app documentation. Agents just produce more consistent code with these.<p>Two things I regularly use it for are documenting decision records, under app/docs/adr, and to manage AWS learnings (https://github.com/jbdamask/aws-learnings-library).<p>For example, in the case of ADRs, as the codebase grows bash tools aren't enough for the agent to get the big picture. If a new feature requires async processing, the agent can orient itself by checking the adr llms.txt, first, then designing according to project standards, e.g.<p>llms.txt
- [0002 Distributed SQS+Lambda Worker Pipeline Over Single-Container Agent]: [Accepted] Rejected porting the local single-session agent pattern to AWS; Lambda time limits, the propose-review gate, and idle-cost requirements each independently require the distributed worker model.<p>0002-distributed-worker-pipeline-over-single-agent-lambda.md
"Each ingest job is a message on an SQS queue. A Lambda pulls one message, runs the full normalize→file→propose pipeline, and writes the proposal to DynamoDB + S3. SQS provides at-least-once delivery and DLQ-after-N-receives for durability. Separate worker Lambdas handle merge, embed, maintenance, and research."<p>Before I started doing this, there would be design entropy for similar features where one agent would decide to throw everything in a single lambda, another would bake a container, and yet another would use SQS.<p>Do others use this pattern? Are there things people don't like about it?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49035043">https://news.ycombinator.com/item?id=49035043</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 24 Jul 2026 13:11:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49035043</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=49035043</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49035043</guid></item><item><title><![CDATA[New comment by jbdamask in "[dead]"]]></title><description><![CDATA[
<p>Steve's mega-project this past year has been Gas Town. It's a way to manage umpteen coding agents doing your bidding. It allows humans to delegate more to AI while not sacrificing quality. I finally found a day to dig into it and, even though it did some amazing stuff, I was confused.<p>Gas Town has its own vocabulary since Steve got to name everything. There's the Mayor, Rigs, Polecats, Witnesses...zoiks. He blogged a lot about Gas Town but it's still the kind of thing you need to use in order to grasp.<p>To make learning Gas Town a bit easier, I wrote a post called A Random Walk Through Gas Town. Well, I didn't actually write it. I indexed the codebase then had Claude pull out interesting features and write about them from the Mayor's quirky perspective.</p>
]]></description><pubDate>Sat, 13 Jun 2026 01:57:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48511725</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=48511725</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48511725</guid></item><item><title><![CDATA[New comment by jbdamask in "Ask HN: Hey, you, tech worker–how are you feeling?"]]></title><description><![CDATA[
<p>Feeling great. It’s never been faster to bring ideas to life. If anything, I need to look at nature more</p>
]]></description><pubDate>Thu, 04 Jun 2026 23:23:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48406030</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=48406030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48406030</guid></item><item><title><![CDATA[New comment by jbdamask in "[dead]"]]></title><description><![CDATA[
<p>Previously: <a href="https://news.ycombinator.com/item?id=47195123">https://news.ycombinator.com/item?id=47195123</a> (March 2026, 136 comments)<p>Several months ago I posted about my little proto-app, Now I Get It! that uses LLMs to translate scientific papers into web pages that anyone can understand. The feedback and engagement from this community was terrific and helped me turn it into a real product. It's a niche, convenience product. Not a game changer. I'm comfortable with that and went into it with eyes wide open.<p>Regardless of whether the product does anything, building and launching this as a solopreneur was super fun and educational. It helped me hone my agentic engineering skills and also gave me a better sense of what I could truly delegate to coding agents and where I had to be involved.<p>In short, my experience led me to believe that the best models, harnesses, and techniques aren't yet there to fully build a cloud-native app (AWS) that is fast, cost-efficient, robust, and secure. Not to mention modular and extensible. The number of decisions a human must make is still very high. That's not a huge surprise to me since coding is just one part of engineering.<p>The fun part of engineering (for me at least) is putting shape to a problem and thinking at a systems level even when decomposing into tasks. It's the constant zoom-in, zoom-out interplay that first attracted me to software engineering. Yes, I rely heavily on LLMs for development but 9/10 times I would find something wrong in a plan, a design, an implementation, or a test that would have created problems if I wasn't there.<p>The process I followed for this build, in-a-nutshell:
1. Every feature, bug, and improvement gets its own Issue. Descriptions are sparse so the LLM can really dig into during planning.
2. Plan every issue but override Claude Code's planning mode since it tries to implement immediately after a plan is approved. Also, it's helpful to have the LLM write a user story before writing the plan so that UX stays front-and-center. I had so many issues where Claude would be like, "Oh. You mean you don't want the user to see a 403?"
3. Read the plan.
4. Decompose into Beads (Thanks Steve). 
5. Open a new Claude Code session in TMUX and say, switch to a worktree for issue xyz and build it.
6. Deploy to a test AWS environment. Use Claude for Chrome to do a first-pass check for front-end stuff then I'd follow up.
7. Devlog the work.
8. Make a PR, review, merge, deploy to prod<p>Three things I did early on that turned out to be very useful:
1. 
The app was free when I first posted and people from around the world processed a lot of papers. This gave me a TON of data I could analyze to figure out a pricing structure that maintains a sustainable margin. This is important because the app is self-funded; I don't want to have to decommission it because I miscalculated my expenses.<p>2. 
Optimized architecture for low idle cost. I don't want a bunch of infrastructure burning a hole in my bank account if I can't get enough customers to sustain the app. This app relies heavily on static html pages on S3 behind CloudFront, along with Lambda, and DynamoDB. All very cost-effective.<p>3. 
In addition to my DevLog skill, I made an app-specific skill called now-i-blog-it. This reviews my DevLog for recent updates and writes short, technical blog posts. Of course, LLMs aren't great writers so I wound up with another skill called cringelinter that can be run in a Ralph loop to scrub all the mic-drops,  bro-speak, and cringe words from the blogs.<p>The blog has over 60 entries so far covering everything from architecture, to adding an inline HTML and KaTeX editor, to my first hacker, to launch. Some of you may find it interesting. It demonstrably shows that that reports of the death of software engineering have been greatly exaggerated.<p>Thanks again to this community for engaging with my original post. It's been a fun build.</p>
]]></description><pubDate>Thu, 04 Jun 2026 01:06:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48392418</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=48392418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48392418</guid></item><item><title><![CDATA[One-liners to check for bad litellm and axios on your computer]]></title><description><![CDATA[
<p>Search your drive (not mounts) for compromised versions of litellm and axios.<p>Please comment if you see anything wrong or ways these can be improved!<p>LiteLLM:
find / \( -type d -name "litellm-<i>.dist-info" -o -name "litellm_init.pth" \) 2>/dev/null \
  | while read d; do
      case "$d" in
        </i>dist-info)
          v=$(echo "$d" | sed 's/.<i>litellm-\(.</i>\)\.dist-info/\1/')
          if echo "$v" | grep -qE '^1\.82\.(7|8)$'; then
            echo "COMPROMISED: $d -> litellm $v"
          else
            echo "CLEAN: $d -> litellm $v"
          fi
          ;;
        <i>pth)
          echo "COMPROMISED: malicious .pth file found at $d"
          ;;
      esac
    done<p>Example output: 
CLEAN: /System/Volumes/Data/Users/johndamask/code/my-own-agents-shove-it/openai-agents-sdk/thebostonwrongs/.venv/lib/python3.12/site-packages/litellm-1.67.5.dist-info -> litellm 1.67.5
CLEAN: /System/Volumes/Data/Users/johndamask/code/ai-evals-course/recipe-chatbot-langchain/.venv/lib/python3.12/site-packages/litellm-1.78.5.dist-info -> litellm 1.78.5
CLEAN: /System/Volumes/Data/Users/johndamask/code/ai-evals-course/recipe-chatbot/.venv/lib/python3.12/site-packages/litellm-1.73.6.dist-info -> litellm 1.73.6<p>Axios:
find . -path "</i>/node_modules/axios/package.json" 2>/dev/null \
  | while read f; do
      v=$(grep '"version"' "$f" | head -1 | sed 's/.<i>: </i>"\(.<i>\)".</i>/\1/')
      dir=$(dirname "$f")
      if echo "$v" | grep -qE '^(1\.14\.1|0\.30\.4)$'; then
        echo "COMPROMISED: $dir -> axios $v"
      else
        echo "CLEAN: $dir -> axios $v"
      fi
    done</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47614201">https://news.ycombinator.com/item?id=47614201</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 02 Apr 2026 13:27:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47614201</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=47614201</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47614201</guid></item><item><title><![CDATA[New comment by jbdamask in "Claude Code Unpacked : A visual guide"]]></title><description><![CDATA[
<p>Nice job - I'm a fan. Makes it easy to get the big picture so I know where to dive in.</p>
]]></description><pubDate>Wed, 01 Apr 2026 12:11:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47599773</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=47599773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47599773</guid></item><item><title><![CDATA[Show HN: Claude Skill to create DDB-backed endpoints in AWS]]></title><description><![CDATA[
<p>Sometimes I just need a place to put stuff that's not local. Apps exist that it make it easy to create an endpoint but I figured it was easier and cheaper to just make a skill.<p>From the description:
Create a token-secured REST API endpoint backed by AWS Lambda and DynamoDB with full CRUD and paginated list support. Deploys via CloudFormation. Use when user wants to quickly spin up an API endpoint, create a simple REST API on AWS, build a quick data store with an API, set up a Lambda+DynamoDB endpoint, or needs a fast way to log and retrieve structured data. Triggers on "create an endpoint", "quick API", "Lambda endpoint", "DynamoDB API", "CRUD endpoint", "log data to AWS".<p>Example use:
Thariq's recent post on how the team uses Claude Skills has a section on logging skill use with a PreToolUse hook (<a href="https://x.com/trq212/status/2033949937936085378" rel="nofollow">https://x.com/trq212/status/2033949937936085378</a>). His example code shows logging to a local file but for company-wide tracking, you'd want to log to a central place. I used my skill to stand up an endpoint for this and my ~/.claude/hooks/log-skill.sh POSTS to it:<p>skill=$(echo "$prompt" | awk '{print $1}' | sed 's|^/||')
args=$(echo "$prompt" | sed 's|^/[^ ]<i>||' | sed 's|^ </i>||')<p># Build the JSON body
body=$(jq -nc \
  --arg skill_name "$skill" \
  --arg invoked_by "$USER" \
  --arg args "$args" \
  --arg session_id "$session_id" \
  '{skill_name: $skill_name, invoked_by: $invoked_by, args: $args, session_id: $session_id}')<p># POST to the endpoint (fire-and-forget so we don't block the prompt)
curl -sf -X POST "$ENDPOINT" \
  -H "Content-Type: application/json" \
  -H "x-api-token: ${SKILL_LOG_TOKEN}" \
  -d "$body" \
  >/dev/null 2>&1 &</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47445554">https://news.ycombinator.com/item?id=47445554</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 19 Mar 2026 20:30:39 +0000</pubDate><link>https://github.com/jbdamask/john-claude-skills/tree/main/skills/aws-quick-endpoint</link><dc:creator>jbdamask</dc:creator><comments>https://news.ycombinator.com/item?id=47445554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47445554</guid></item></channel></rss>