Rahul Goma Phulore (@missingfaktor) header
Rahul Goma Phulore (@missingfaktor) profile picture

Backend engineer in London. I like systems that are easy to reason about and ideas that are hard to let go of. Lately, a lot of AI.

London, United Kingdom
Joined July 2009
Photo by Rahul Goma Phulore (@missingfaktor)Photo by Rahul Goma Phulore (@missingfaktor)
Rahul Goma Phulore retweeted
AI may well be able to write massive software projects “from scratch”, but that almost certainly isn’t the fastest / highest performance / highest security / most token efficient way to do things. Good building blocks matter. In addition to RL’ing the agents on final task loss, we should try to get them to regularize the building blocks as well. What would the standard library look like that makes the agents most effective? It is likely at the limit that it turns out to be some alien organization of code, but given the existing human-bias in training, I bet that in the near term it would be lovely code that old programmers would appreciate. I suspect the same could be said for mathematics, but that is out of my lane.
146
137
31
2,056
83,320
Rahul Goma Phulore retweeted
augmenting human intellect when i started making software, i wasn’t dreaming of a factory. i loved that something on a screen could become an extension of my mind. a place to put a thought before i understood it. to move things around until new connections appeared. to make little systems that worked the way i worked, even if it made no sense to anyone else. the computer wasn’t interesting because it could do work without me. it was interesting because of what i could do with it. the early lineage of computing was built around this possibility. in 1962, Engelbart described augmenting human intellect as helping a person understand complex situations and find solutions that were previously out of reach. his starting point was the human being, not the autonomous machine. he wasn’t describing a faster black box. he was looking at the whole relationship between a person, their tools, their language, their methods, and what they could learn to do with them. the capability belonged to that whole system. somewhere along the way, we started telling a much smaller story about a much more powerful technology. more automation. more agents. more software producing more software. more output from fewer people. more growth. more numbers to prove that something is happening. and less attention to the person any of this is supposed to be for. i don’t want to pretend computing had a pure innocent beginning. replacing human labor was one of its ambitions. even in 1960, Licklider distinguished human-computer symbiosis from systems where the remaining people mainly served the machine. he wanted computers to participate in the formation of ideas, not only execute problems already defined. that distinction feels important – does the system help you discover what you mean? or does it only want you to submit a request, and wait outside while it works? sometimes waiting is exactly what i want. please do the search. move the files. take away the repetitive work. but not everything difficult is overhead. sometimes moving the pieces around is how you understand them. sometimes making the thing changes what you wanted to make. sometimes you need to see the wrong version, touch it, take it apart, and discover a better question. i want tools that leave room for that relationship. in his 1981 paper on Smalltalk, Ingalls described a system meant to support everyone’s creative spirit. personal mastery mattered: an individual should be able to comprehend the system, rather than remain dependent on something permanently beyond their reach. he also argued that computer models should fit the human mind, rather than demand the reverse. not one perfect workflow for everyone. systems that different people can inhabit differently. someone who thinks through pictures. someone who needs to write. someone who understands a problem by building a simulation. someone whose way of organizing their life doesn’t resemble a SaaS dashboard. a system you can reshape as your understanding changes. this is what i want AI to make possible. not just pumping out software, but having a living relationship with it. being able to ask why something works this way. change one part without surrendering the rest. see what happened. undo it. learn enough to make the next change yourself. the machine can become more capable without making the person smaller. but that won’t happen just because we make the models better. we have to care about it. design for it. notice when we are making someone more dependent while calling it empowerment. i don’t want to measure the future only by how much work happens without us. i want to know what becomes possible for the person who couldn’t participate before. what can they understand now? what can they express? what can they change without asking permission? when i say augmenting human intellect, that is what i mean. not a world that no longer needs us. a world we have more ability to shape.
64
55
28
552
41,500
Rahul Goma Phulore retweeted
Next question: why are you still using branches? We talked about PRs. I don't think they make sense anymore, if you rethink them from first principles. Yes, if you only use them to trigger CI, then sure, go ahead. That's a fat commit, not a PR. But for mandatory code review? Knowledge sharing? C'mon. But some of you said: "we use PRs because we use branches! I love to keep my stuff on branches." And I'm here to tell you: you don't need branches! You can just push to main. It's called trunk-based development and the idea behind it is true continuous integration: you continuously integrate your changes with the trunk, the main branch. It's been around for a while, it works. Just yesterday I talked with someone who said they've used it in an org with 400 engineers, without any issues. Ruby, the project, uses trunk-based development. The main idea is that you want to avoid long-lived branches. They're bad, because branches can diverge and merging can turn into a thing. And you don't want routine operations to become a thing. Even when I worked in teams that used PRs and branches, I considered it a smell when a branch lived for longer than a day or two. But when I shared this with others, I'd often get something back like this: "Well, good for you, but no. MY thing, what I'm working on, that can't be done on main. It needs to be on a branch! It has a database migration, it changes the underlying shape, the architecture, it refactors this and changes that. It can't go on main yet! I need to merge it all at the end." And then I'd say: "Nah, I can merge nearly anything continuously in small commits to main. You split things up. Add the column first, merge that, deploy it, now it's out, works, safe. Add the helpers first, merge them, get them out. Want to migrate from legacy pattern A to new pattern B? Don't do it all at once. Add the dependency, then migrate A to B, one by one, safe." If it can be merged in a large change, I bet it can be done in small increments that you merge to main. Yes, there are exceptions, but it's 0.5% of cases, not 50%. But there was a real problem with this approach: it was hard! There's a lot of "meta programming" you have to do: make sure this small first change compiles and runs and the tests work, merge it, get it out, monitor it; then do the next small piece, make sure that works and get it out; then maybe push some still-unused dead code, add a feature flag, add a config variable; or keep both configurations working at the same time, etc. That meant sometimes it was just easier to do it in a big fat branch. But big fat branches are risky! A system that continuously flows is safer than a system that starts and stops in spurts. But -- you guessed it -- here's the good news: Now, with agents, all of these chores are no chores at all! Agents are great at adding feature flags, they're great at splitting up code, they're great at keeping track of three changes and merging them one by one and watching them roll out. They're great at keeping two configurations working for a day. They're great at migrating one by one. In other words: it's now 10x easier to just work on main and make sure everything is continuously integrated and working. It's now easy to make sure the system constantly flows. And look, ... I'm not here to convince you to switch to trunk-based development. Just a ruse to get you to read this. (But also, hey: try it! Pushing to main is amazing.) I'm here to make you RETHINK how you develop software. Don't just use agents to replace your typing. Use agents as the magic code-writing machines they are. Everything that was hard about software development because it involved writing code -- even the meta programming -- has become easier. You can now reach for the stars! But you need to look up.
115
26
25
651
86,820
Rahul Goma Phulore retweeted
If a model has written the entire skill without any input from you, you don't need the skill.
question from the TL: > quick question, do you think consuming more skills in the same session unnecessarily dirties the context? > > Say you have a 5 step work, each step with a skill. You can either run all on single session, divide into subagents with relevant skills, or compact or new chat per step. my intuition says 5 steps in a process is fine. Each successive skill will take a share of attention from previous skills, so if you have a VERY long complex process where you need skills to STACK (ie instructions from skill 2 must still be honored while skill 6 is executing) Or if you have many (eg 200) separate skills that all need to be active during a session ( think: agent memory snippets implemented as skills, probably an antipattern in today’s harnesses) Then you want fresh context, subagents, or to synthetically precombine many skill contents into a single user message (although then you lose the attention recency bias for instructions in step 6 of the process) Also worth noting that good skills can be a mix of: - information not in the weights - steps to execute a process (not in the weights) -general steering or behavior They usually contain all three, but what’s in your skills nudges the meta here. More instructions / process steps? You wanna string those out Mostly information? Probably safe to combine into one user message. Behavior? Depends. Adherence can decay over a long session. Fine to split or combine, but if it’s important, you want some way of repeating important rules, either by including rules in all the steps of a process, or by something more deterministic like hooks And OF COURSE I’m begging you PLEASE stop putting stuff that’s in the weights in your skills. You are wasting time and locking in a specific, potentially suboptimal behavior.
32
12
2
221
17,265
Rahul Goma Phulore retweeted
This review really put every western tech channel to shame. And I’m not talking about the flashy editing (which is extremely well done), but there’s so much information in this video that other reviewers never even talk about.
iPhone Duo Review: 10,000 Folds Later...
29
81
3
1,367
135,541
Rahul Goma Phulore retweeted
To make architectural drawings like this, Gemini put together it's own set of tools and concepts, and built a cli tool to reuse.
I asked Argon to make some architectural drawings of Google's Gradient Canopy building.
12
12
3
327
12,442
Rahul Goma Phulore retweeted
Hardware looks scary until you break it down into small steps. So I built an app that takes you through Arduino one circuit at a time. Made with Opus 5.5 learn-arduino-red.vercel.app
326
1,514
156
14,329
826,802
Rahul Goma Phulore retweeted
If you work on education, homeschool your kids, want to learn something new… check this out. You can use AI to create the coolest and most engaging explainers in the world. Grab a coding agent, ask it for an explainer, deploy it, share the link. So many ideas can be derived from this. Imagine a platform of vetted visualizations by experts in each field. Games or quizzes where you repair or reassemble the systems. A prompt input to extend them… And follow @DilumSanjaya!
Hardware looks scary until you break it down into small steps. So I built an app that takes you through Arduino one circuit at a time. Made with Opus 5.5 learn-arduino-red.vercel.app
171
350
24
4,977
260,048
Rahul Goma Phulore retweeted
Mandatory code review as we've known it is over.
Almost everything. Our infrastructure terraform repo uses old school deterministic methods to automatically approve safe addictive changes. Otherwise every team is pushing us for more automatic approvals on their repos.
29
9
4
227
28,786
Rahul Goma Phulore retweeted
Opus 5.5 can do your job. And mine. And I mean that for a wide swath of knowledge workers - not just programmers. So the fact that we are still employed means that either this fact isn't broadly realized, or there is far more to "job" than just the output.
171
44
17
1,175
125,247
Rahul Goma Phulore retweeted
Relevant because Claude (tell it to avoid garden path sentences to generate output that's more readable)
1
79
Rahul Goma Phulore retweeted
Cindy is one of the best distributed systems engineers I know, and resistant to any and all hype (also a great writer!) From her: "Claude (when given proper instructions, constraints, and context) now writes better code than me, almost always."
To create my claude.md, I had it read: - my favorite programming books + blogs - the best oss projects - the code of the engineers I respect the most Claude (when given proper instructions, constraints, and context) now writes better code than me, almost always.
75
181
9
4,219
236,488
Rahul Goma Phulore retweeted
i went from "let me replace hermes and grok bot just for myself" to not only replacing them.. but replacing our family chat too and creating probably the best personal productivity agent rm -rf hermes grok-bot meet Pip :)
89
16
5
743
89,037
Rahul Goma Phulore retweeted
Gemini 4 Argon is here. It’s available globally today for developers and enterprises in the paid tier of the Gemini API and the Gemini platform, for Ultra subscribers in Google Antigravity, and Ultra and Pro subscribers in the Gemini app and Search. Hope you all enjoy it!
1,548
2,473
1,214
28,428
5,981,755
Rahul Goma Phulore retweeted
My dear friends, I’d like to show you my latest toy project Introducing Handwired: turn your regular JavaScript code into a neural net! - no training - exact outputs vs the JS program - fully differentiable All runnable in a browser, without GPU
454
1,017
465
11,326
1,449,102
Rahul Goma Phulore retweeted
What I find the most fascinating about this post: How much first-principles thinking goes into these seemingly simple prompts. I don't know many people who could write "review exists so leadership catches problems early and moves money and people to right places."
Hi, I'm Felix. I'm an eng lead working on Claude. I love watching people take flight and do things they never thought possible. We often describe that as "being more ambitious" when using AI, which is tricky advice to follow. I wrote a tutorial: felixrieseberg.com/how-to-be…
27
37
4
1,063
81,825
Rahul Goma Phulore retweeted
I found Argon could sketch pretty quickly when using a custom dsl tool it had built for the job. So I asked it to try animating a scene by sketching the next few frames from scratch each time, rocking the motion back and forth a bit, and iterating to make a short clip. Then I asked it to add cel shading and transparency and to put it all together onto a background.
25
43
5
633
28,817
Rahul Goma Phulore retweeted
Argon has this amazing natural understanding of the world. It can do so many things from first principles. Here's a pelican riding a bike, using fourier epicycles. Video made by Argon. Time-synced Lyria 3.5 music prompted by Argon.
235
592
238
8,426
2,225,086
Rahul Goma Phulore retweeted
New follower? I’m Greg Madison. I’ve been pioneering tangible interfaces in XR for decades: making digital illusions part of the physical world, keeping us grounded in it. A thread on the ideas behind my work. 🧵 Here’s an early exploration from 2009. fr.slideshare.net/slideshow/…
42
101
16
1,022
84,636
Rahul Goma Phulore retweeted
No pull requests, no code review. We push to main. Our agents read production logs, watch deploys, grant feature flags, and check their own work end to end. Here's how we do that:
96
75
54
1,422
541,858