HNHacker News
TopNewBestAskShowJobs

gojkoa

40 karma · joined July 12, 2026

submissionscomments
gojkoa··on Show HN: Lights-on software factory boilerplate for Claude Code
humans supervising agents, not dark factory where agents supervise agents. providing a very high degree of automation, not fully automated. controls implemented using deterministic tools, not via markdown prayers.
gojkoa··on Show HN: Lights-on software factory boilerplate for Claude Code
This is a minimal boilerplate so that part was excluded but in the real setup this was extracted from we use AWS SSO from the CLI to authenticate against AWS (short-lived tokens) and the keys for other things are in the AWS SSM parameter store as secure strings (encrypted), locked down with IAM so that agents can only access specific (test) keys while developing.

The agents are running inside a docker container (this is part of the setup) and only share the workspace and tmp dirs with the host. They run under user permissions in the container, not root.

gojkoa··on Ask HN: How do you sell a small bootstrapped SaaS?
if you have a profitable business, and don't have previous experience selling, there are three options:

1. aggregators and small PE (sureswift, tinycapital, mudbrick group, sass.group, fullstack capital) that buy smaller SaaS and then consolidate support/operations etc

2. brokers who will help you sell the business, kind of like a realestate broker (quiet light, FE international)

3. maketplaces (sideprojectors, microaquire, flippa)

gojkoa··on Ask HN: Are agent orchestrators an anti-pattern?
I've done some research around this for an upcoming book, and generally people who benefit from orchestrators are those that already have a solid regulation framework in place, where agents can get feedback quickly on most of the work, where deterministic guardrails (hooks/custom tools) are in place to keep the agents in their lane and where people invested a decent amount of time in making the agents run securely and know what they can or can't do (avoiding approval fatigue). you need all those prerequisites to make orchestration work well. once that's in place, running multiple agents in parallel doesn't burn man hours, but it can still burn a lot of tokens.

I wrote something recently on how we made the orchestration not burn that many tokens at all. With a few deterministic tools we got the token cost of orchestrated workflows down by 80%. Check out https://news.ycombinator.com/item?id=49587379

gojkoa··on Cutting (Claude Code) token spend on dynamic workflows 80%
definitely. we built a custom eslint parser for scss, html, liquid and yaml and are using it to validate all sorts of rules that were previously just in people's heads. now they are codified and provide instant feedback. if we stopped using AI now, those would still be incredibly useful for human coding.
gojkoa··on Ask HN: Any Software Engineers here who enjoy their AI-native dev workflow?
I'm working for myself (own product, decently profitable SaaS, been in production for 7 years now and used by actual customers), so I'm not sure if I fit your "employed" category or not. If I do, then here's my setup:

1. I have a custom-built minimal flow of 5 "commands", that take an idea to implementation through capturing intent, impact analysis, iterative planning, execution orchestration and then review/demo. each of these effectively builds up a single shared plan file. The intent command takes one or two lines of free text and turns it into a structured intent document (goals/anti-goals/constraints...); impact-analysis takes the intent document and maps it to the codebase, looking for functional gaps and things that need to change. iterative-planning takes the result of the impact analysis and splits into tasks/phases that are independently verifiable and deployable, and builds a task list... so they all build on each other, and update the same plan file that sits in git and I review it as it goes through the pipeline

2. we have a minimal CONTRIBUTING.md that explains the shape of the workspace and the key rules how to work, that's applicable to humans and agents. CLAUDE.md loads it from @CONTRIBUTING.md

3. the guardrails of what the agent is allowed or not allowed to do mostly sit in deterministic tools, such as custom linting rules, custom style checks, and they are all invoked from eslint via the custom language plugin. this has grown to thousands of rules, linting programming language code but also html, scss, yaml, liquid, markdown.... Eslint runs as a post-tool use hook on edit and write, so each file an agent writes gets immediate feedback and fixes. when we catch the agent doing something it should have not done with the code or docs, we get it to write another custom rule with unit tests for the rule. With each rejection Claude also gets a helpful message what to do instead.

4. there's a "regulator" script that helps us avoid decision fatigue for approvals. it runs as a pre-tool use hook for Bash commands, does deep parsing of whatever sausage Claude wants to run, goes into loops, function definitions etc, then goes through our rule set and approves/rejects or forces an ask. With each rejection Claude also gets a helpful message what to do instead. (e.g. don't run npx, use eslint directly from the path). Each time claude asks, we run the command through a debug script to understand why it's asking, and add another rule.

5. the latest addition is an orchestrator script that takes our plan file format and turns into Claude Dynamic Workflow descriptions deterministically, and parses the progress of the workflows so suggest what's slow and what can be moved out of LLM processing to deterministic tools. This significantly reduced the token spend (now running at about ~20% of the token spend for workflows before) and time (from average 5-6 hours per workflow to about 20-30 minutes). It also removed the 10-15 minute wait that we had while claude was LLM constructing workflows from our plans.

6. there's a demo command that flies through the user interface based on the plan to demonstrate what users see with the new version, recording it to webm using playwright, and I can play it at a higher speed to quickly get an overview what an agent did.

7. we tend to look for ways to get faster feedback on things that agents repeatedly do badly, such as UX or UI changes. We have a set of static HTML pages with the visual design language, showing styling for key elements and components, and a set of static demo pages showing key application pages with realistic data in lots of different states. as part of the impact analysis, agents will update demo pages or add new ones so we can review/complain. there's a script that audits demo pages for WCAG and other styling issues. another example are end-to-end api tests, which evolved massively to prove api contracts but also allow agents to get their own feedback and troubleshoot quickly. generally, divide and conquer for feedback.

This tends to work generally well. I feel productive. I still review most code when it completes via git diff, but it's mostly clean because the linting rules are forcing it to write code the way I want it to be written. We use a method based on the attribute-component-capability matrix to figure out what needs manual exploratory testing and how much, and do that in addition to automated tests when needed.

happy to provide any more info if you're interested.

gojkoa··on User-guide-driven development with coding agents
the problem with user guides in general as a driver of specs (this is coming from surviving two such attempts 20 years ago) is that user guides tend to be written for an external audience, hiding a lot of complexity and underlying details. Sometimes this is to keep user docs focused on a specific task, sometimes this is because you don't want to disclose internal workings of a system to users).

Specs can influence (and potentially be even a source for generating parts of) user docs, but user docs can't replace specs.

On the other hand, the idea to write the guide, do mockups etc first is a great way to think through what the user would experience before you do the specs. We have something similar with agents creating demo pages so we can check them, and they become parts of the spec (and something to match the final product against).

But that's not a good fit for backend processes, cross-functional concerns (performance/security) etc, or things you do because your business needs it and not the users (payment fraud prevention) that also need to be specified

gojkoa··on Ask HN: How has AI changed your QA validation workflows?
The feedback cycle got a lot more segmented, as we try to catch different types of issues and get feedback as early as we can. For example, UX review is now before everything. Claude builds static demo pages for how the app will look once the changes finally land, and then there's an audit script which runs through those to measure contrast/visibility/accessibility for all elements in focus/hover/dark and light theme etc. when that passes, a human looks at the demo pages to check if the design makes sense, and iterates on that. once a human is happy, the implementation work starts. before AI, UX review was usually part of exploratory testing after implementation, but now it's both cheap and necessary to do upfront. The demo pages become a part of the spec, and they are a baseline for automated testing at the end.

Lots of rules and checks evolved from common feedback and now work in custom linter rules, custom checkers, custom-built rule engines to prevent Claude from making similar mistakes.

Similarly to you, we have a "demo video" skill that records a flow through the app demonstrating newly build functionality so a human can look at it at a higher speed and notice if there's something obviously wrong, before doing exploratory testing.

gojkoa··on Ask HN: How to Trace Website Ownership
Whois lookup gives you the first point of contact of domain ownership. These days, most will sit behind an anonymizations service but you may get lucky and find out contact info there. If they are anonymized, and you have a legal claim, get in touch with the legal contact shown there.

If it's a relatively established website, they likely have a trademark on the name, so the next point of call would be USPTO or WIPO to search for that trademark. That usually gives you non-anonymized data.

gojkoa··on Ask HN: Why Doesn't an OSS Developer Union Exist?
EFF and sfconservancy exist, they are probably closes to what you can realistically get in this environment. They are are non profits that can try to influence policy but not much more to "protect" individual developers.

Unions (at least in theory) have a way of bringing an employer to the negotiating table by getting a large enough portion of the employees to stop working and bring the employer's business to a halt. in the days of factory picket lines, they were able to prevent other people from working even if they wanted to. this is what gives a union negotiating power. I can't see anything similar for OS developers. What would be the threat? "We'll stop giving you free code?"

regarding a protection union, what you're talking about seems to be legal insurance, and that already exists, but it's significantly more expensive than $20/month.

gojkoa··on Ask HN: Do you run A/B Tests?
So pure theoretical thinking now, but:

1) running multiple tests in parallel becomes important where the product/dev frequency exceeds waiting for a single test to finish, which is roughly a week for us. the business is currently relatively stable and doesn't change a lot, and I don't have big ideas that would need measurement so frequently, but if I did, I'd probably look for ways of running things in parallel. So I don't think it's a function of the dev team as much as what you reasonably want to measure. Having said that, I can imagine a larger dev team implying multiple product people, and those might want to have their own experiments/ideas measured in parallel, so there is something there definitely about the size of the dev team as well

2) if we wanted to be very scientific about the whole thing, we'd need multiple tests in parallel, particularly for novelty/primacy holdouts and to reconfirm that certain things actually hold across time. e.g. if I decided that variant A is better than variant B but our traffic changes (which it kind of it did over the last 3-4 months with AI overviews killing clicks from Google), maybe the reduced set of people we get behaves differently than the larger set we measured against a year ago. so I'd probably want to re-run critical experiments and just confirm them.

gojkoa··on Ask HN: Do you run A/B Tests?
small tech here - 2 people, site with ~1-2m active users per month. We do A/B tests for the majority of changes that could affect engagement or conversion. The infrastructure and plumbing is cloudfront assigning cookies and serving different HTML based on a cookie, and cloudwatch logging user interactions with the cookie included into timestream, where I can run queries manually (no automated resolution, decision making, rollback etc). An A/B test usually takes about a week to accumulate enough traffic for confidence, and we don't run them in parallel. Each A/B test gets a dedicated expectation criteria (so we have no overall evaluation criteria that stays stable across tests). So in the "Experimentation Maturity Model"[1] language, we're kind of in the "Walk" phase.

The overhead is not really significant, as the whole thing is pretty much automated now. We just have two different versions of HTML built and deploy cloudfront by turning on a parameter in the deployment template which pages to split for A/B.

I definitely feel it's worth it. Tweaking things on the homepage brought a measurable 17% increase in conversions. Testing out a redesign of a key component of a proposed redesign showed that we'd be significantly damaging engagement. Lots of results contradicted my intuition over the years (in both directions). Because it's easy to spin up a test, I tend to do it whenever there's an important decision to make.

Our ad-hoc setup prevents us from reliably running multiple tests in parallel, and we do not have any kind of systematic measurement for novelty and primacy effects, but at the level and complexity at which we operate that's fine. I treat test results as more evidence/confidence, not as final evidence. If the test looks OK we'd deploy, then still monitor if the key engagement metrics go up or not, and if not we'll roll back. This happened more than a few times over the last few years. In theory a more systematic platform helps to prevent that, but even then if you aim for 95% confidence, this means that 5 out of 100 decisions you made are probably not justifiable, so it doesn't absolve people from follow up monitoring and judgement. We did A/A tests and holdout testing for a bit but gave up on it (since it's difficult to run multiple things in parallel with our setup, then an A/A test or a holdout would delay further experimentation).

> Trying to understand at what “scale” does A/B testing make sense for organisations

My thinking about this is that when the traffic you have crosses the threshold where you can get meaningful results in a reasonable time (few weeks). Before that it's just numerology. You'll get some numbers, but they can't really drive decisions reliably.

[1] https://www.votito.com/methods/experimentation-growth-model/

gojkoa··on Ask HN: How does manual QA fit into your process?
We keep manual QA for non-deterministic, exploratory stuff, things that do not have an expected input and output and where spotting secondary information and insights (e.g. "why is the chrome network console logging so much when I click on this button?"). things that have a deterministic input and expected output get automated. This whole area is a terminology minefield, but one term I like from the context-driven testing community for category 2 (deterministic) is "checking". The term I like for category 1 is "exploring". If a computer can "check" a post condition given some preconditions then a human does not need to waste time on it. If you need up to go after sidequests and look for unknown factors, it requires a human to explore. Having said that, there is a role for automation to speed up exploration (e.g. record a flow through the app for some key scenario, so a human can play it at 10x speed, prefill data to bring up an app into some well known state for exploration etc), but the judgement stays human. If the QA is flooded with tickets for exploration, giving them tooling to speed up data setups, cleanups, reviews etc might help.

I've picked up a framework for deciding what/how much to test manually from James Whittaker's ACC matrix a while ago, and it's been incredibly helpful to create a policy around when something requires manual testing, how much and what the manual testing should actually cover. It's covered reasonably well in the book "How google tests software". Having a policy around that means that there's no misunderstanding what gets automated and by whom, and what's left for exploring and by whom.

gojkoa··on Ask HN: How to implement a friction-less auth
Adding "sign in with google" and "sign in with apple" (especially google with FedCM) gives you auth with the least amount of friction you can get, since they end up being one-click events for most users.

Having said that, none of this prevents people from creating fake accounts. On our system I can see people regularly signin in with multiple google accounts, with incrementing digits in the name, trying to abuse the free tier. You'll need to build something yourself for that, depending on your risk surface. For us this involves tracking requests across IP addresses, blocking free access from data centre IPs, blocking bots using AWS WAF, analyzing task patterns to spot people who use multiple residential IPs and a bit more.

gojkoa··on Why Don't We Version UIs?
in theory yes, but in practice if each deploy is a version (and for us it is), with multiple deployments per day this becomes unsustainable to track. we settled on the backend always being "current" but supporting multiple front-end versions using the version parameter of the API calls.
gojkoa··on Why Don't We Version UIs?
We've been versioning UIs since 2015, after dealing with a bunch of weird bug reports that we tracked down to people keeping tabs open for months. Needs careful backend planning and backwards compatible data handling, but it's a solvable technical issue. API calls from the front-end can send the active version with calls, letting the backend understand that something older is calling and do version upgrades of envelopes and payloads, and the front-end needs to be designed to ignore extra fields, but all of that is testable, and once things are in place they give you both the protection against weird inconsistency bugs, ability to experiment (running a/b versions in parallel) and detailed monitoring to troubleshoot weird issues.

It's quite sobering to look at the list of active versions and see a long tail of what's actually connecting to our backend.

gojkoa··on Ask HN: When you sell your company, do you receive the money with a normal wire?
yes it did, and oddly enough having the choice of that escrow reduced our legal costs. Our lawyers wanted to perform AML research to ensure we were compliant (or I guess that they are compliant) but the fact that the deal used a reputable escrow allowed them to just tick that box without charging us an arm and a leg.
gojkoa··on Ask HN: When you sell your company, do you receive the money with a normal wire?
We sold a company last year, and the deal was structured for 80% after the asset migration, and then 5% quarterly for 4 quarters to ensure we don't disappear. So it was 5 payments, but effectively the first one was one big transfer into the bank account. The money first went from the buyer to an escrow service before the migration started, and they released it to us when the migration was complete. The escrow service was very picky about which banks they wanted or did not want to work with, and they refused to send money to our Wise account which would have saved a lot of money in transfer fees and forex later. Sending to a traditional bank was fine.
gojkoa··on Ask HN: Anyone have solution to Opus verbosity in Claude Code?
The 3 lines below help a bit. It still gets lost after the context fills up, but it mostly solves the verbosity issue,

- When responding to the user, respond in ASD-STE100 English. You can extend the dictionary if you need, but respect ASD-STE100 rules as much as you can.

- When writing comments, technical documentation and internal documents (roadmaps, plans, design references) use ASD-STE100 English. You can extend the dictionary if you need, but respect ASD-STE100 rules as much as you can.

- When writing plans: no timeline estimates, no complex code. unless specifically requested, no deployment sequence. use pseudo-code only for non-trivial operations where clarifying complexity is crucial

gojkoa··on Ask HN: If Social network is created today, what do you want to see?
- no bots, ai slop stopped at the door

- feed from people I actually follow, in an actual chronological timeline (not optimized for engagement, not deprioritized because it has an external link)

- topical feeds with topical filters (e.g. I don't care about politics but care about tech news)

gojkoa··on Ask HN: What has your personal website/blog done for you?
I've had a blog for almost 20 years now, and what it did for me really shifted over the years. Early on, it helped me join the conversation around the topics I cared about (I still fondly remember remember backpings and comments on blogs, when it was still safe to publish those automatically and not fear link spam or porn showing up randomly), and become a member of a community. It helped me attract a small group of people who followed my work and would later buy my books.

As internet became more hostile and social networks started hiding posts to external sites, I ended up posting a lot less frequently, so the blog mainly became a place where I could put a longer explanation or a reference, effectively to stuff up to point people from workshops and short conversations more easily. From that perspective, a blog really helps me clarify my thoughts about something so I can force myself to research it in detail. The way I write also shifted because of this. Early blog posts were more like a presentation or a story, now I mostly write stuff that's like a reference.

gojkoa··on Three Claude Skills I Think Every Org Should Have
Out of the 3, 2 are a pointless waste of tokens. 'create-XXX' and 'deploy-XXX' are repeatable, reproducible, scriptable tasks that were solved automation problems (not necessarily easy, but solved) long time before LLMs. If you're going to use a Claude for anything like that, it's much better to ask claude to actually write a deployment script or a template for new projects that can run in a deterministic, tested way. Using an AI skill for a process like that is slower than a script, less trustworthy and just a waste of money every time it runs.

I get it that some people don't know how to write shell scripts or IaC templates, so in theory maintaining a LLM skill is easier than maintaining a makefile, but if you have a coding agent available, it can do the updates.

gojkoa··on Ask HN: What do you use for privacy focused analytics?
Matomo, self-hosted, loading data from webserver logs. No cookies or privacy notices needed.
gojkoa··on Claude's code comments – too much or just enough?
there's a difference between comments above code (documenting the purpose of a class/function...) and comments inside code (documenting the implementation or design).

I treat comments inside code as smells. They exist sometimes because the author wanted to say something else but was prevented from doing it because of existing conventions, sometimes because a piece of code is difficult to understand, sometimes because a large piece of code has multiple responsibilities. For things like that, I tend to clean up the code to make the design more intention revealing and break large pieces of code into smaller pieces with appropriate names. I tend to document behaviour using unit tests (where the unit test has the name that would be in the comment). This was a rule before claude code, and it still is for us.

In general, this leads to better code, that's easier to understand, manage and maintain. It also leads to functional decomposition that's easier to test than a large blob, so fewer bugs.

We have linting rules preventing claude from leaving comments inside code, and forcing it to apply these refactorings. The one to write tests to document behaviour instead of just commenting it is especially useful as there's proof that the code is actually doing what the comment suggested, and ongoing checks that it still does that. a comment may become stale easily without you noticing.

as for the reason why claude is doing it, my best guess is training material included lots of comments.

gojkoa··on Ask HN: How to rewrite `Claude.md` and install the skill for Opus5 and Fable5
where did you get the "are no longer compatible" part? we moved from opus 4 to opus 5 without changing anything and no specific conflicts. used fable for a while, also did not have to change anything. I read some advice on the anthropic website that opus 5 doesn't require as many examples as before, but this was a recommendation how to make things shorter, not a backwards compatibility issue.
gojkoa··on Who's making money from using/exploiting AI?
Not sure if your "AI advancements" includes our use case or not, but I built a service that allows people to quickly make videos from powerpoint presentations using AI voiceovers. With the advancements in AI voices, the service became more useful and more profitable. For lectures, demo and instructional videos, the voices are now pretty on-par with human narrators, and using an AI voice helps people record, edit, re-record much faster than if they were doing it themselves (even assuming they have decent audio equipment and audio panels on walls to block out background noise, which most people don't actually have these days).
gojkoa··on Free, comprehensive SEO analysis of your website (no signup, 100 checks)
Tried this just now and there seems to be some async feedback issue. Had to click the action button on the homepage a few times to make it actually do something (so perhaps you start the process but don’t change the UI). Once the page changed it just went into a continuous spinner with, as if it was stuck).

I’ve tried it from safari on an iphone.

gojkoa··on Ask HN: Should I Promote My SaaS to get first 100 Customers without budget
For a SaaS we launched about 7 years ago, the initial people came from LinkedIn, so my suggestion would be to look for people on linkedin that fit your target profile and ask them for a bit of time to discuss their workflow/issues and how they are fixing them now. If not linkedin, find where people that fit your target profile hang out online (is it a sub-reddit, is there some kind of forum?). if not online, try to find an actual conference and visit it, chat to people in the hallways.

Don't pitch the product, talk about researching for the product (which is what you'll be doing anyway, but some of those initial interview people may become your best advocates). People that genuinely have the problem you want to solve will want to help.

Steve Blank has a nice segment on the ideal people to involve here in The Four Steps to the Epiphany, calling them Earlyvangelists. One big thing to look for is that people have identified a problem that you're solving, tried to solve it themselves, and in an ideal scenario have a budget for a better solution (see https://www.votito.com/methods/earlyvangelists/ for more).

_The Mom Test_ book is an excellent interview guide for this stage, and you'll figure out the questions to ask from there. here's my checklist from when I used it a while ago (not verbatim from the book, so best to actually read the book).

- how do you currently solve X - and how much time do you spend on it? can you show me how you do it? - what happened the last time X came up? talk me through the last time it happened. - if not solved, why not - have you tried finding a different solution for it? - why do you bother doing it? - what are the implications of that? - what else have you tried? - who else should I talk to? - anything else I should have asked?

to find if the problem you want to solve even matters at all: - how much time do you spend on it each week? - which tools and services are you using for it? - what have you already tried doing to improve this? - what are the 3 big things you’re trying to fix or improve right now?

gojkoa··on A Study of Microsoft's Early 2026 Rollout of Claude Code and GitHub Copilot CLI
ultimately product success metrics such as market share and revenue, but those are lagging and might not be measurable over a 4 month period (the original study duration). beyond that, behaviour changes for users (is the product more useful?). those can be measured more frequently and can be compared to the previous period. if not that, than delivery output metrics such as cycle time for development (are we delivering faster?) paired with failure demand (% of tickets we thought were delivered but required rework/fixing). PRs are tied to effort/delivery process inputs, not outputs.
gojkoa··on A Study of Microsoft's Early 2026 Rollout of Claude Code and GitHub Copilot CLI
PRs measure effort, not outcome, so it’s a measure that their developers+ai spent 24% more effort than just devs previously (assuming the average work that went into a PR didn’t change, which is also a big assumption. maybe those PRs were smaller or more complex on average than before). so the uplift isn’t really tracked here. time to market, average cycle time per change, number of incidents per ticket released etc would be more meaningful metrics for uplift
Page 1 of 2Next →