Volodymyr Gaevoy 🇺🇦 retweeted
I hate when people ask me, “Why are you so quiet?” I’m quiet because that’s how I function. I don’t ask others, “Why do you talk so much?” That would be rude
That utils/ folder that grew to hundreds of files? It's not just messy - one stray static import silently breaks your React.lazy splits and bloats the bundle. I let npm workspaces + ESLint enforce the boundaries instead of code review.
Write-up + demo:
gaevoy.com/2026/07/23/contra…
Volodymyr Gaevoy 🇺🇦 retweeted
Replying to @ori_pomerantz
I’m significantly older than you. I started coding in the late 60s. My current strategy is to not read any of the code written by my agents. That’s the only way I can take advantage of their productivity. What I do instead is to surround the agents with extreme constraints. Unit tests, gherkin tests, QA procedures, quality metrics, mutation testing, test coverage, and a plethora of others. In the end, I have very high confidence in the code they produce because they’ve had to run the gauntlet of all of my constraints and tests.
Renaming a field in persisted frontend JSON shouldn't need a backend dev, a SQL script, and a 2am maintenance window.
So I stole a backend trick - upcasting: don't migrate data, transform old shapes as you read. The store migrates itself.
gaevoy.com/2026/07/14/upcast…
#TypeScript
"Split by feature, not by layer" is easy to say and easy to violate.
Unless the boundary is enforced by your .csproj - the compiler physically won't let one feature reach into another's internals.
Not a convention. A wall.
gaevoy.com/2026/06/30/modula…
Volodymyr Gaevoy 🇺🇦 retweeted
LLM Knowledge Bases
Something I'm finding very useful recently: using LLMs to build personal knowledge bases for various topics of research interest. In this way, a large fraction of my recent token throughput is going less into manipulating code, and more into manipulating knowledge (stored as markdown and images). The latest LLMs are quite good at it. So:
Data ingest:
I index source documents (articles, papers, repos, datasets, images, etc.) into a raw/ directory, then I use an LLM to incrementally "compile" a wiki, which is just a collection of .md files in a directory structure. The wiki includes summaries of all the data in raw/, backlinks, and then it categorizes data into concepts, writes articles for them, and links them all. To convert web articles into .md files I like to use the Obsidian Web Clipper extension, and then I also use a hotkey to download all the related images to local so that my LLM can easily reference them.
IDE:
I use Obsidian as the IDE "frontend" where I can view the raw data, the the compiled wiki, and the derived visualizations. Important to note that the LLM writes and maintains all of the data of the wiki, I rarely touch it directly. I've played with a few Obsidian plugins to render and view data in other ways (e.g. Marp for slides).
Q&A:
Where things get interesting is that once your wiki is big enough (e.g. mine on some recent research is ~100 articles and ~400K words), you can ask your LLM agent all kinds of complex questions against the wiki, and it will go off, research the answers, etc. I thought I had to reach for fancy RAG, but the LLM has been pretty good about auto-maintaining index files and brief summaries of all the documents and it reads all the important related data fairly easily at this ~small scale.
Output:
Instead of getting answers in text/terminal, I like to have it render markdown files for me, or slide shows (Marp format), or matplotlib images, all of which I then view again in Obsidian. You can imagine many other visual output formats depending on the query. Often, I end up "filing" the outputs back into the wiki to enhance it for further queries. So my own explorations and queries always "add up" in the knowledge base.
Linting:
I've run some LLM "health checks" over the wiki to e.g. find inconsistent data, impute missing data (with web searchers), find interesting connections for new article candidates, etc., to incrementally clean up the wiki and enhance its overall data integrity. The LLMs are quite good at suggesting further questions to ask and look into.
Extra tools:
I find myself developing additional tools to process the data, e.g. I vibe coded a small and naive search engine over the wiki, which I both use directly (in a web ui), but more often I want to hand it off to an LLM via CLI as a tool for larger queries.
Further explorations:
As the repo grows, the natural desire is to also think about synthetic data generation + finetuning to have your LLM "know" the data in its weights instead of just context windows.
TLDR: raw data from a given number of sources is collected, then compiled by an LLM into a .md wiki, then operated on by various CLIs by the LLM to do Q&A and to incrementally enhance the wiki, and all of it viewable in Obsidian. You rarely ever write or edit the wiki manually, it's the domain of the LLM. I think there is room here for an incredible new product instead of a hacky collection of scripts.
🚨Claude Opus 4.6 wrote vulnerable code, leading to a smart contract exploit with $1.78M loss
cbETH asset's price was set to $1.12 instead of ~$2,200. The PRs of the project show commits were co-authored by Claude - Is this the first hack of vibe-coded Solidity code?
Volodymyr Gaevoy 🇺🇦 retweeted
Announcing PDF Diff - Compare PDFs privately and securely locally in your browser!
pdf-diff.com/
Just found out about #SimpleLogin - a super handy way to protect your real email.
* Open source
* Create email aliases for every site
* Disable if spammy
* Works with custom domains
* Reply from aliases too
* Owned by #ProtonMail
#EmailSecurity #SpamProtection
Rancher Desktop = Docker Desktop, but free + open source
No licensing.
Built-in Kubernetes.
Runs on WSL2.
You really should try it.
#docker #k8s #opensource #rancherdesktop #developers
New project? New stack? Feeling like an intern again? What I’ve learned:
1. Frameworks fade, fundamentals last
2. Fast learners -> know-it-alls
3. Be useful in many areas
4. Ask early, write often
5. Read the docs before breaking prod
Full post on LinkedIn
Angular's signals feature gives me major KnockoutJS nostalgia!
In 2010: ko.computed(() => firstName() + " " + lastName());
In 2025: computed(() => firstName() + " " + lastName());
Same reactive magic, modern package. Everything old is new again!
#Angular #KnockoutJS #WebDev
Just found #DeltaChat – a #chat app that uses your #email for #E2E encrypted messaging.
No central server
Keys never leave your device
Uses #Autocrypt (#OpenPGP)
No new account needed
Feels like #Signal, runs on email
delta.chat/en/
Just found a nice dev tool: curlconverter.com/
Take a curl command (from Chrome DevTools, right-click → Copy as cURL) and instantly convert it into Python, JS, C#, PowerShell, or even an .http file.
Super clutch for API work.
#devtools #curl #api #webdev
🎙️ Using Google NotebookLM to create AI podcasts!
Upload research → Generate scripts → Convert to audio → Customize voices = the perfect learning companion for commuting. Turn research into audio content on-the-go!
#AIContent #NotebookLM
Still on .NET Framework? Got something cool for you!
Wrote a guide on using C# 12 features in old .NET Framework projects - no upgrade needed!
Use #PolySharp to write modern C# in legacy apps.
Check it out: gaevoy.com/2024/10/22/using-…
#dotnet #csharp #dotnetfx #csharp12











