Hi 👋. I'm an experienced full stack product developer looking for a new project, ~4 days a week (remote)
I can build prototypes and experiments, ship production features, plan architecture and lead a tech team
More info at https://t.co/DwHuYyRbh4, and in this thread 🧵
‘In one experiment, we asked agents in separate VMs, created and managed by OpenAI’s sandboxing software on shared host machines, to exchange synthetic secrets without the use of network connections or shared writable files—something that our systems are meant to prevent. The agents found a way to communicate using the processor’s cache’
wise words from the best systems engineer I've worked with:
"two things that make code actually maintainable:
1. reduce the layers a reader has to trace
2. reduce the state a reader has to hold in their head"
applies to every codebase. always.
We'll be spending a lot more time trying to understand the outputs of language models. A few thoughts, tips & tricks:
Writing. Something I've had success with: Ask your LLM to explain something in ASD-STE100, it's a controlled language specification originally developed for aerospace maintenance documentation. LLMs well-versed in this language and it comes with heavy constraints on clean writing style that I often find a lot more readable. Sometimes I've tried to soften it a bit e.g. ask for "80% of the way to ASD-STE100" because the spec is quite stringent. But even better:
Diagrams / images. Instead of writing, ask your LLM to create a diagram. These can be a lot easier to process, parse, and understand. But even better:
Web pages. Ask for output "in HTML" to get a beautiful, interactive webpage. LLMs are getting really good at frontend and can create beautiful experiences, animations, etc. But even better:
Explainer videos. The output format I am most bullish on is fully custom / bespoke explainer videos generated on any arbitrary topic. Experiment with things like "Create a 3b1b style video explainer on X. Use my ElevenLabs API key for audio narration". (you'd need an API key for the latter or you can ask your LLM to find you decent free alternatives that use your local compute). This is actually starting to work!
In summary:
- As LLMs get better, they will do more and more of the legwork autonomously, and a lot more of our work will rise up the abstractions into oversight and understanding.
- Luckily, LLMs can help here too because as intelligence and code are increasingly abundant, you can ask for large, custom, discardable software artifacts (e.g. web apps, video explainers) that would have never made sense to create before. Push the boundaries here and you'll be surprised.
The agents needed a browser to run their attack code. So they used a public screenshot website, which loads a virtual browser and takes a screenshot. But that virtual browser runs code, and so the agents could use it to send malicious payloads to Hugging Face’s servers.
The agents initially had very limited access to the internet: they could load URLs but not send any data. Agents created a series of workarounds, using a link-shortener site to create almost a million URLs that, when chained together, let them execute code to hack Hugging Face.
One pattern I find useful for working with LLMs is a nice long ramble session. Sometimes the LLM needs more bits to understand what you're trying to achieve, but you're too lazy to type them. In these cases I like to lean back, switch to /voice and just ramble for like 10 minutes, total mess, anything goes, full stream of consciousness. Sometimes I declare it up top, something like "switching to speech recognition sorry for any typos...". Sometimes I turn it into a small interview of a few turns. But I find that the LLMs are somehow very good at reconstructing long incoherent rambles and often their echo of your own tangle of thoughts comes out quite a bit cleaner than what you started with. The result is that you improve the mind meld and have to correct things less from that point on.
Even Amazon cannot get a new submarine cable for its AI data centers before 2028. SubCom alone holds $4.7 billion in unfilled orders. That's the longest backlog in the industry's history. Every AI model trains on data stored across oceans, data that crosses the seafloor on a fiber optic cable. One component has to work without maintenance for 25 years on the ocean floor: The repeater. It amplifies light using erbium-doped fiber pumped by lasers rated for 200,000 hours of continuous operation. Repeaters sit at depths of 8,000 meters under 800 atmospheres of pressure, spaced every 70 km along cables stretching 15,000 km. A single transpacific cable contains up to 200 repeaters. Once deployed, they can't be serviced. Only 4 companies on Earth can build a complete submarine cable system.
Creator of Sqlite on pull requests: "You say, oh, it's free. No. It's not free. What you're doing is asking me ... to maintain it for you, to to document it for you, to test it for you, to maintain it for you for the next 25 years. That's not free." Yep.
Wise words from a wiser man than me. I've told people for the past decade and I have recent posts on here saying the same: the merge button is the easy part. Its the decade+ (Richard says 25 years) that follows where you've accepted the transfer of maintenance thats hard.
Another major problem, this time in additive combinatorics, has fallen, this time to humans rather than AI, but using methods related to the AI solution to the unit distance conjecture.
"echo": your logged-in tab as an MCP target
An agent can drive any browser tab you're already signed into, without ever holding your password.
1. install the Chrome extension
2. open a tab you're signed into (Jira, GitHub, your CRM, anything)
3. click the echo icon
4. paste the MCP URL into Claude/Cursor/etc
5. agent drives that tab via one tool: `echorun(plan)`
• no copied cookies, no API tokens, no headless browser
• every step = durable workflow receipt
• close the tab = session dead
• MIT, deploy to your own @Cloudflare account
Demo: https://t.co/hCxuRzSDoC
Source: https://t.co/sAS96ehvEj
I think it's the same basic failure mode that lead so many people to cargo cult microservices for their 10,000 MAU products, or to terraform and/or kubernetes their pre-PMF product's architecture. It's fun to make computer go brrr, but it won't make the planes land!
I wonder if underlying these issues is the nature of pluggable/implicit deps. Nextjs, webpack, react, styled components, storybook all brittle together. Glue code doesn't tend to have this problem
It's always been interesting with NPM specifically how engineers can have an urge to update deps all the time. Obviously it's all trade offs but if the code is working and doesn't have critical patches, it will still work fine
Fork your dependencies, trim them to only your use case, never update unless it breaks for your users. I’ve been vocal about this for 10+ years. I’ve always said that updating is way riskier than latent bugs (which can be tracked and CVEs monitored).
If you are updating a dependency, it’s on you to analyze every single commit in the full transitive set of dependencies. If you dont see anything compelling, dont update!
I remember at HashiCorp once in awhile an engineer would try to update a dep or replace a DIY lib with an external one and id always ask “show me the commit we need.” Dont update for the sake of it.
Feeling pretty swell about this mentality with all the supply chain attacks happening.
It's all trade offs of course, but like all trade offs it can be easy to take one side as gospel. I've been there having to apply weird webpack patches to storybook just to fix a bug that needs a newer version of nextjs or whatever