Now, LLMs can.
2,589 karma · joined February 11, 2010
Software engineer for 17 years across multiple startups. Led teams in the US, Germany and India.
I focus on tiny/small LLMs, build my own products and work on a couple consulting gigs. I do not read or write code manually anymore.
- https://github.com/brainless
I have given up city life and hustle culture. I share my home as a co-living space, mainly for artists and digital nomads. I run Curry Hostel:
- https://www.instagram.com/curryhostel
Socials:
- https://meet.hn/city/in-Kolkata - https://linkedin.com/in/brainless
Now, LLMs can.
It is nice to be in our bubble but if what you said is true, why do we only have like 3 major instruction sets? Why not 40? Programming languages are just easy to create - this is a good thing and we created too many. But it absolutely fractured the industry.
Look at the average job post. There are requirements for system design - good. Algorightms - good. Then it goes into this whole language/framework land. Remembering syntax is literally there in many companies interview. These are preferences. If we understand how a computer executes binary/assembly, the layers above are not as relevant as we have made them.
We have reinvented so many ideas many different ways in many different languages and frameworks simply because we want our flavored version.
Can anyone tell me why we have 40 or more programming languages, with about 10 popular ones? Then about 20 frameworks in each of them. And add another 200 popular libraries for each language? This matrix make no sense till you realize - it is preferences all the way down.
Most of us engineers have built our own mental model of programming. We are all right. But the users do not care. LLMs are here to produce code closer and closer to the metal as needed. They can sit and create a graph out of every spec, use an AST that they develop and run on the CPU if they have to. They will do it. No amount of us discussing will stop that.
Programming is going to be re-invented. I do not think the current ways to write software will even matter.
Have you actually fine-tuned yourself? Email categorization comes to mind and there are tons of non-LLM approaches even that will give fantastic results. How did spam filters work before LLM?
I think LLMs just made us think that is the only way. It is not.
I am building a natural language to CSV/Excel commands for a "wrangler" type desktop app. Same issues. The MVP is being built with parsers of sorts, entirely code generated. Then I want to fine-tune a tiny model at some point.
A tiny, smaller than 1b parameter model, fine-tuned, can kick ass for constrained work. I do not have a lot of budget, I fine-tune only on a 16GB M4 Mac Mini. But that also tells me the potential is wild. Progress has been slow since I moonlight on this.
I have been trying to build a set of models + agents for full-stack development, where each model does only a small piece, like take user prompt and break into backend/frontend tasks. Then a Rust+Diesel model, a Rust+Auxum model, a Solid+Router model and so on. I know this is wild but this is just theory - can 5 or 6 Qwen 3.5 0.8b models do full-stack web development? My hunch says they can, better than what most people expect. Heck, with a good harness, it might beat all the cheaper models for the specific task, like Haiku or Luna.
Even though most of my projects have a UI, I build a CLI/API version so that the LLM can interact with it directly. I have been using this "CLI driven development" approach for more than a year now and have had fantastic results. The CLI arguments make it easy for LLM to interact with software it wrote.
I usually ask LLM to build a lib, then expose as a CLI and a RESTful API.
And that sounds scary but the way I got over the fear is by realizing there are many things that I do very well but I do not know their internals very well. Driving is an example. I barely understand what the steering wheel, clutch or brake pedals do. I have driven over 130,000 Kms and I will perhaps drive more than double that in the next many years.
I have been building software since PHP/Drupal days. Got into AWS S3 as a beta user. Adopted Memcached (and MQ) in 2008 out of necessity. Then Python/Django for 10 years. Then Rust. And tons of JS/TS. I owe a lot to my curiosity. I believe we can keep learning what we need and still delegate most of programming to agents.
This is something I focus on in a bunch of my experiments - how to get immense value out of tiny models (<1b params). There are lots of different architectures out there and there is so much to optimize if you know what you are asking and have a grammar to constrain with.
Great to see this and I hope this is a lot on top of what is already openly available.
I have accepted two things that make me a happy engineer now: AGI is not here no matter what they say and LLMs are still very useful if one knows how to use them.
They are another layer of abstraction and like you said they do not tire. There is a lot of optimization needed so we can reduce wastage (running 1T+ LLMs for most work is wastage).
LLMs are interesting in their own ways but as an engineer, this is a way to unlock a new way of building software.
I recently build a Claude-assisted Excel/CSV parser for a US based property management system (tax compliance). Uses Haiku and has a lot of deterministic code to extract column/row combinations to check known formats and finally handing out the headers to Haiku to give us a translation plan to our support columns.
These would eventually become part of the software, in a tiny LLM. The gap between training (such tiny LLMs) and inference will shrink. We can consult Claude for edge cases, create sample dataset and train a the tiny LLM on demand so we go to Claude less.
The tooling that a project needs is really important. Something I have been feeling as well. Not just in LLM building projects, but regular software projects that are LLM generated.
The world of tiny LLMs is so interesting. It is unlocking novel ways to encode information. Why focus on the style of writing instead of the subject matter?
These are really good models but the harness has to be built around them. I have a ton of generated system prompts for specific purposes. Even parts of a SolidJS stack, for example Route management, has its own prompt. These are experiments but the results are real. If we build harnesses around small models, we can build a locally running WYSIWYG editor which works on plain text prompts.
The performance, in simple tokens/second, is not the most important factor. For many private data points, like emails, I would rather have a local graph based search and LLM on top where the harness is specific to problems like calendar, contacts, finance, etc.
I run all experiments on an 16GB M4 Mac Mini but coding agents building the harness are a mix of Codex, Claude Code and opencode.
I think Cloudflare became big only because they were so much more optimized than others that they offered some services for free that others were not offering. If running costs are high, you only burn (VC) cash and then you exit.
I generally use larger models to plan. All my generated Epics have similar structure. All my repos have similar structure (https://github.com/brainless/akar and https://github.com/brainless/daftprompt are recent examples).
I barely spend time or thought in making prompts. I have a simple text file with a few combinations. They refer all the common files (README, AGENTS, DEVELOP, etc.)
All reference software is cloned locally and the docs mention that. The prompt templates then boil down to research mode (write Epic) or worker mode (write software) or review mode (leave review notes in Epic). That's it.
Many of my harness experiments are about text manipulation, text search, graph on text. Because that is what LLMs are - text processing systems. Cut parts of prompts, cut parts of response, cut parts of user's intent. Join, break into epics/tasks, run with LLMs, repeat.
We had floods in Sikkim, which is practically a "stone throw" away from a world-level map point of view. I was there then. There was past research but everyone was so surprised. Activists talking about that event 10 years prior. Published reports.
Yet, we do nothing to move people away. To pause and think what the hell is going wrong. Just keep hustling and pretend shit is not going to go wrong. I am tired of our* culture.
our: all of us, I am not only talking about India, Nepal or China here.
If Nvidia buying HF makes it tough for all the diverse models on HF, then what are some alternatives?
It seems models are the best things to be available on a Torrent platform? Of course HF is much more than just the files but perhaps the metadata can be separate and hosted on multiple community platforms.
I started investing in farms, have 50 pigs and 100+ chickens now. We are planning to grow to 100 pigs and 2000 chickens in a year. We will start growing Shiitake mushrooms in a few months too.
I am trying out a two-model approach where small model has access to tools, large model does not. Small model shapes prompts from the repo graph. And repo graph is the only tool that small model has when reading. The small model is already given a set of context from git log, codebase and Markdown/text files (generally design files) depending on the user's prompt.
I do not want to use use multi-turn chat. Small model would instead create fresh prompts for the larger model feeding context and reshaping the original ask every time.
Also, reference repositories can be added for small model to help ask right questions. Once a plan is made by large model, execution is mostly task-by-task, done by small model. Lots of deterministic code doing all this orchestration.
My experiments are in https://github.com/brainless/
I will be happy to share what I learn.
You may think this is not a good test because an older (or say a smaller) LLM can study from the knowledge on the Internet and build. But we are like that - we can access the Universe through our senses.
Can we ever produce anything that is beyond this Universe? I think an LLM that is lacking in knowledge can build more complex systems as long as it can access more data.