HNHacker News
TopNewBestAskShowJobs

sudhirj

7,418 karma · joined July 1, 2010

https://sudhir.io https://github.com/sudhirj https://stackoverflow.com/users/73831/sudhir-jonathan https://twitter.com/sudhirj
submissionscomments
sudhirj··on Ask HN: What's your current AI agentic setup?
I use Claude, on a Max plan.

Have a server at home, so mosh into it and run Claude Code at the lowest level. Use Blink off the iPad.

For normal work though, I have a bunch of services set up to run Claude —-remote-control in every one of my projects, so I just use the Claude app on my phone and iPad.

Also maintain and run https://github.com/common-pattern/claudeflow as a service the bigger projects - it’s an orchestrator that reads GitHub issues and starts a Claude one-shot, automatically handling the routine stuff like CI, commits, PR landing flow etc.

sudhirj··on Ask HN: How to deal with shipping AI-written code you don't understand?
I use LLMs and agents to only do what I could have done myself, given enough time and hands and keyboards.

If I'm working with something I don't understand, I ask the LLM to teach me first, with as many references and correlations as I need to fully know what's going on.

I also do the architecture myself, but ask for periodic suggestions for improvements and checks on how other systems are doing it. If I see a newer system I think makes sense, again I ask for explanations until I understand it.

Idea is always that the agents assist me in doing something I could have done myself if I didn't happen to only have 24 hours in a day and other parts of my life to live.

sudhirj··on Ask HN: Who wants to be hired? (September 2026)
Location: Chennai, India

Remote: Yes (Overlaps with North America and Europe possible)

Willing to relocate: Yes

Technologies: NextJS, React, Ruby on Rails, TypeScript, Go, Java, Python, Postgres, Redis, Agents (Claude Code / Codex)

Résumé/CV: https://sudhir.io

Email: sudhir.j@gmail.com

Hey, I'm Sudhir, I've been telling computers what to do for 20 years, telling teams of people what to do for 10 years, and telling AIs what to do for 2. I don't think I've figured out how to do any of it very well, but I keep learning and I've managed to help companies get a lot done.

I resigned from a Director of Engineering role a year ago, and I now build apps to help local businesses work better - I find that much more satisfying than working with companies, but of course it's hard to make it pay the bills. So I'm happy to consult in the following areas:

* Building AI enabled systems: I'm working on bringing tech usually available only to large orgs to small businesses, and making it accessible by allowing these businesses to just say what they want the systems to do in natural language - which then gets translated to sandboxed code running against hardened interfaces. Can help you with similar projects.

* Coaching teams on how to do agentic coding effectively: I've coached my own teams and held workshops based on the workflows I've developed and what I've learned and experimented with. Happy to do the same for your teams or do individual coaching.

* Cloud cost management: I've taken off hundreds of thousands of dollars off cloud bills, can do the same for you if you're at a large enough scale. Can also setup or review your infrastructure agents to make sure they're using resources efficiently, as well as negotiate with your cloud reps on your behalf.

* Rapid prototyping / MVP deployment: If you've got an idea and funding want to get to market quickly, I can work with you to refine and build out ideas.

I don't have much of a CV online, but https://sudhir.io has my pre-AI era writing, of which multiple articles have landed on the HN front page; github.com/sudhirj has my code; and I used to be in the top 2% on [StackOverflow](https://stackoverflow.com/users/73831/sudhir-jonathan?tab=to...) back when it was cool.

My rate is currently USD 10k per week, plus travel and accommodation if you need me to come to your location. I also offer a no-questions-asked money-back guarantee. Do contact me on sudhir.j@gmail.com for longer term engagements and rate plans.

sudhirj··on The Twelve-Factor App (2025)
The take still holds, although it is a bit more nuanced than it seems at first. 12 Factor was written by the founders of Heroku, for context, and that's exactly how Heroku worked. The app code would be submitted into a system, and run in a pre-container era container-ish environment where any instance specific data would be supplied as environment variables.

This is actually in place in most hosting providers today - don't know if Heroku does it, but many others like Vercel and Fly will also encrypt your secret env vars and decrypt and inject them only at the last minute.

AWS itself has something similar with its secrets manager. Even in the absence of credentials, like using role based IAM when running on EC2, it probably makes sense to note that the code must access credentials by hitting a local-only metadata server - and of course this is available only when running on EC2.

For other secret like payment processor tokens, etc, there's you do need to store secrets somewhere.

Putting secrets in plaintext in the files on the execution platform is of course a problem - but that's not a problem in the 12 Factor idea - it's a security lapse in the design and architecture of the platform that is supposed to be running your 12 Factor app, if that makes sense.

sudhirj··on Stop selling “unlimited”, when you mean “until we change our minds”
Did the Max plan ever promise unlimited anything? I’m on it, and I remember seeing and paying for 20x, not infinity.

There is a case to be made that they sold a multiple and are changing x or rate limiting x differently, but the tone seems different from that.

sudhirj··on DaisyUI: Tailwind CSS Components
This is a rebuild of the antithesis of Tailwind on Tailwind. Bootstrap had this for decades (Daisy even copies the same semantic class names in some cases). Tailwind was supposed to break away from this, to specific actual styles directly, but looks like we're coming back full circle again. Why not just use Bootstrap?
sudhirj··on DaisyUI: Tailwind CSS Components
How does the version of Tailwind itself make difference? The look depends on what styles are applied using Tailwind, not the ability to specify styles. Think the problem is the most tailwind sites have a similar set of styles applied, most likely copies of the docs or examples. TailwindUI is a paid system, but yeah, could be a case of most of the defaults copying that.
sudhirj··on OpenAI charges by the minute, so speed up your audio
If a human meeting had lot of silence (assuming it's between words and not before / after), I would consider it a very efficient meeting where there was just enough information exchanged with adequate absorption, processing and response time.
sudhirj··on Claude Code does our releases now
Please ask the agent to help write a workflow script (GitHub Actions yaml or makefile or similar) instead of using it as a runner - if you do that the release pipeline changes with each execution. You do not want a non deterministic release pipeline that's mostly correct. You want one that's checked in to version control and always does exactly the same thing, with all logs and artefacts recorded.

By all means use whatever AI agent you have to help set that up.

sudhirj··on No Pay, No Work; Early Career Lessons
Well yes. With the possibility of high upside also comes a chance of a downside.
sudhirj··on Anno 1800: Shadows of Beauty
It depends on your perspective. If you internalize God mode, where you spin your disk world while leaving the sun in place, it's very intuitive.
sudhirj··on We were wrong about GPUs
This is context based dichotomy, not a person-based one.

In my personal life, I’m curiosity-oriented, so I put my blog, side projects and mom’s chocolate shop on fully self hosted VPSs.

At my job managing a team of 25 and servicing thousands of customers for millions in revenue, I’m very results-oriented. Anyone who tries to put a single line of code outside of a managed AWS service is going to be in a lot of trouble with me. In a results-oriented environment, I’m outsourcing a lot of devops work to AWS, and choosing to pay a premium because I need to use the people I hire to work on customer problems.

Trying to conflate the two orientations with mindsets / personality / experience levels is inaccurate. It’s all about context.

sudhirj··on I live my life a quarter century at a time
Old Hindu philosphies have a similar split.

https://en.m.wikipedia.org/wiki/%C4%80%C5%9Brama_(stage)

0-25y grow and study

25-50y develop your household, your family, your community and gain wealth (non-extractive, provide value).

50y-75y hand over all worldly things to the next generation, advise, teach and help those around you. Focus on your spiritual enlightenment.

75y- renounce the world and disappear into the forest as a monk / hermit.

sudhirj··on Server-Sent Events (SSE) Are Underrated
Not entirely. If a load balancer is set to buffer say 4kb of data all the time, your SSE is stuck until you close the connection.

I think there is a HTTP/2 flush instruction, but no load balancer is obligated to handle it and your SSE library might not be flushing anyway.

sudhirj··on Thruster – HTTP/2 proxy for Rails apps with built-in Let's Encrypt and caching
Nothing this does that Caddy can’t do, but Thruster is more the omakase type thing. It’s set up to automatically handle one scenario very well - a single server rails app running defaults. If you have a single server rails app running defaults, this is actually shows up automatically in the automatically generated Dockerfile.
sudhirj··on macOS menu bar app that shows how full the ISS urine tank is in real time
Why, wasn’t The Martian an example of hard sci-fi, a story that conforms strongly to the known laws of physics? Not necessarily probability, economics or politics, but hard sci-fi is written to be plausible.
sudhirj··on Advanced Civilizations Could Be Indistinguishable from Nature
We’re not considering the possibility that most civilizations will consider progress to be a move to a utopian state of living in harmony with nature, with buried machines. Not paving the planet and the sun with solar panels.
sudhirj··on Advanced Civilizations Could Be Indistinguishable from Nature
A lot of sci-fi already makes this premise. The bright future is not one of concrete and metal, it’s sunsets and trees and lakes tended to by invisible robots, with all the ugly machines, generators and data centres buried deep in rock.
sudhirj··on In Search of a Faster SQLite
I would assume so, the extreme case being just one key, which of course has only one partition. But see https://youtu.be/NXehLy7IiPM (2024 Reinvent S3 deep dive) - there’s still replication happening on single objects. So it’s still sort of sharded, but I do think key partitions where groups of keys have shared choke points based on sort order exist.
sudhirj··on In Search of a Faster SQLite
I asked the S3 team what “prefix” meant at reinvent, and my current understanding is “whatever starting length of key gives a reasonable cardinality for your objects”.

So if your keys are 2024/12/03/22-45:24 etc, I would expect the prefix to be first 7 characters. If your keys are UUIDs I’d assume first two or three. For ULIDs I’d assume first 10. I this there’s a function that does stat analysis on key samples to figure out reasonable sharding.

sudhirj··on S3 Express Append has issues
Ok, S3 is not a file system replacement. Trying to fit a square peg into a round hole and claiming there are “issues” with the peg is disingenuous.

S3 has and always will be object storage, that’s how it’s architected, and unless there’s a full rewrite, effectively making it something else, that’s not going to change.

Multipart upload is implemented as a grouping of a list of objects. This append operation is implemented the same way. It does share the name with the block storage append, but it’s a different use case.

Think of this as the objects being comprised as a list of sub objects, like a multipart upload. This feature allows you to add new sub-objects to the end of the list. Same rules continue to apply.

There are some cases where this is useful, like logs batched with Kinesis or any other batcher, live streaming, chunked video footage, etc. For those use cases it works fine. It’s not a file system.

sudhirj··on Hyrum's Law in Golang
Weren’t there a couple of anecdotes where Windows couldn’t fix a bug because some popular game (maybe SimCity?) depended on it, so the devs hardcoded a SimCity check inside Windows and made the bug happen if it was running?
sudhirj··on Electromagnetic coil gun seized in Japan
“The killing power is the electromagnetic gun, the gun is held by the gun, the gun is held by the gun, and the 29-year-old blunderbuss is used to tolerate the suspect. The Suspicious Person is produced and written by the anime and distributed by the anime and distributed by the public.”

Yeah, we have a long way to go with translations.

sudhirj··on Real GDP (purchasing power parity)
When talking about currencies being over or under valued, we're usually not referring to the value of 1 unit of each currency being equal, more the exchange rates themselves. See the Big Mac index for example, for a real life illustration. You can buy a Big Mac in the US for $X, and a Big Mac in India for INR Y, but $X doesn't necessarily buy you exactly INR Y in the market right now. Might buy you more or less, and if you're using the Big Mac as a standard you would say one of the currencies is over or under valued.
sudhirj··on Rider is now free for non-commercial use
This is usually because the software you pay for yourself has licensing terms that don’t allow commercial use or reimbursement. See the JetBrains personal license terms itself. Understandably, the company will find it easier and cheaper to forbid use than hire a lawyer to check each license for each software that each employee wants to use.
sudhirj··on Why does everyone run ancient Postgres versions?
That helps a lot thanks. Will summarize it quickly for those who come later: MySQL (InnoDB really) and Postgres both use MVCC, so they write a new row on update. InnoDB however also additionally writes a record marking the old row for deletion.

To do a cleanup, InnoDB uses the records it kept to delete old data, while Postgres must do a scan. So InnoDB pays a record-keeping price as part of the update that makes it easier to clear data, while Postgres decides to pay this price of occasional scanning.

sudhirj··on Why does everyone run ancient Postgres versions?
Is this process materially different from a vacuum? Does it manage to optimise without a write lock?
sudhirj··on It's not enough for a program to work – it has to work for the right reasons
Oh god this is such a nightmare. It takes much longer to build something that works not the first try, because then I have to force-simulate a mistake to make sure things were actually correct in the first place.

Test Driven Development had a fix for this, which I used to do back in day when I was evangelical about the one true way the write software. You wrote a test that failed, and added or wrote code only to make that test pass. Never add any code except to make a failing test pass.

It didn't guarantee 100% correct software, of course, but it prevented you from gaslighting yourself for being too awesome.

sudhirj··on I'm a Professional
Since you seem to know some C++, could always call it the C++ URL Retrieval Library, or maybe something more pithy.
sudhirj··on I'm a Professional
Congratulations! I’m sure someone will add ‘Web’ to your award once you do something useful internet related. Maybe try writing a HTTP tool or something.
Page 1 of 34Next →