2026 6

LinkedIn Blog

Pick next month's LinkedIn posts from my blog. - Blog: ~/code/blog/posts/YYYY/\*.md (frontmatter: title, date, categories, tags, description, and `linkedin:` if already posted) - LinkedIn dump: ~/Documents/data/linkedin-posts.jsonl (type=post and type=comment; posts have impressionCount, reactionCount, commentCount, repostCount, postedText as a RELATIVE age like "2mo") Based on a Jul 2026 analysis of 169 posts + LinkedIn metrics: - Audience: ~750 founder/CEO/CTO/chief titles, ~570 engineers and data scientists, ~280 product. India and Singapore heavy. They read for a decision they can act on or a story they recognise. - My top posts have a reach (vs a typical post that month) of: 1. 8.6x - Everyday observation with a twist. Specific, visual, slightly absurd, mild grievance welcome. E.g. Plastic-cover-on-phone 185K, no-entry-for-sandals 47K, kind-air-hostess 36K, hot-cookies 27K. 2. 14-87x - A number that flips a default decision. "GPU or API" 663K, "which LLM gets better grades" 64K. Ensure a concrete decision. 3. 34x - A free thing usable today. TDS-free 285K, 60 reposts. 4. 4-12x - Exact, reproducible "here's how I did it". Voice-to-slides 93K. What loses: prompt-engineering 0.63x, vibe-coding 0.72x, coding 0.80x, ai-agents 0.79x, llms 0.89x. Workshop recaps get 1,700-2,700. Under 250 words gets a median 8,020 impressions; over 900 words gets 5,303. Pure data analyses (IMF, Wikipedia) get respectable but modest numbers unless they carry personal stakes or an actionable consequence. Reposts (save intent) run highest on benchmarking (7.0 avg) and education (5.9), even when reach is modest. Treat reposts and comments as better signal than reactions. The 2026 baseline is roughly half of 2025 (~4,000 vs ~8,000 median), so don't compare raw impressions across years. I no longer link the blog on LinkedIn: link posts get throttled. So we'll rewrite. ## Method 1. Take blog posts from the last 3 months. 2. Drop any with a `linkedin:` field. Then DO NOT TRUST that field - it has false negatives. For every remaining candidate, keyword-check its distinctive terms (proper nouns, tool names, coined phrases) against BOTH post and comment text in the full dump. Report anything already live. Example of a real miss: "How IMF mis-forecasts GDP growth" had no frontmatter field but was posted a month earlier. 3. Note the dump's max scrapedAt. Anything dated after it is UNVERIFIABLE - say so rather than assuming it's unposted. 4. Clean the dump: discard records where reactionCount > impressionCount (a scraper bug inflates some counts by ~1e9). 5. Auto-exclude: "Things I Learned" digests, workshop and talk summaries, dev-tooling posts (ffmpeg, redirect tracking, shell utilities). These are the developer posts I deliberately keep off LinkedIn. 6. Score each candidate against the four winning patterns. Prefer posts already under 500 words. 7. Portfolio rule: at least 2 of 5 must be non-AI or non-LLM. My feed is already LLM-saturated and that category runs below my own baseline. ## Output - for each of 5 picks, in priority order - Title, date, word count, blog URL - Which pattern it hits, and the specific past post it resembles - A one-line LinkedIn hook, in my voice, that I can use as the opening line - What to cut for LinkedIn (name sections, not "shorten it") - Any risk (named company, staleness, tone) Then: 3 near-misses in one line each, and a list of what you excluded and why. 31 Jul 2026. Created. Sources: https://chatgpt.com/c/6a6ab214-fd78-83ec-b319-3f5645325155 https://claude.ai/chat/c3dd952f-1a20-44a2-8eb3-29860201d8ee Feedback loop - run this first each month ...

When the prompt is longer than the code

I used pi to create a compact home page for media.s-anand.net using these prompts: Create index.html - a simple, elegant page that says that this page (media.s-anand.net) serves large media files for Anand - that’s where they should look instead. … followed by: Skip the part that says “Please visit …” … then: Shorten index.html to just 2-3 elegant rules of CSS. I want it MUCH smaller and simpler. … and finally: Center vertically and horizontally. ...

Things I Learned - 31 May 2026

This week, I learned: D-ID is an avatar generator platform like HeyGen. Creatify and Synthesia are a couple of others I heard of. This space seems to be growing. cosign is a CLI that lets you sign and verify any piece of text with a Google, GitHub or Microsoft account. cosign sign-blob FILE --bundle sign.json opens a login window and creates a sign.json signature. Anyone who has FILE and sign.json and the email ID can verify via a Google account with cosign verify-blob FILE --bundle sign.json --certificate-identity $EMAIL --certificate-oidc-issuer https://accounts.google.com. arxiv2md.org converts arXiv papers to Markdown. Source. markxiv.org claims the same - by just changing the URL - but it ended up reporting an error when I tried this link: https://markxiv.org/abs/2604.08649. From Akhilesh Tilotia: So we have someone in our team with initials AS. She made a document which was named vAS. Then I made edits and named it vAT. These docs were in a CoWork folder. I asked Claude to clean up my doc. It created another version for me to review. In its wisdom, it named the file vAU 🙂 Maybe what a forward-deployed engineer does is enginer AI-native workflows. (This sounded profound when I wrote it down. Not sure if it’ll sound as profound tomorrow.) The idea is that the FDE will say, screw existing processes; let me fire up my AI agent and get stuff done; THEN we’ll figure out what works, how to optimize it, etc. The PRAGMA: Revolut Foundation Model has some good tokenization ideas for tabular data. Create your own token space with key–value–time tokenization - to retain field information. Bucketize numbers by percentile, preserving magnitude/ordering that subword tokenization destroys. Encode time both as log-seconds and as cyclical calendar features. Codex uses the Alt + Up Arrow key to edit queued commands, but on the VS Code terminal, this key binding is not sent to the terminal. Enable the terminal.integrated.sendKeybindingsToShell setting to send it to the terminal, hence Codex. Based on this catalog on “universal foods”, here’s what I 🟢 like, am 🟡 neutral, 🔴 dislike, 🟣 must try, and will ⚫ skip. Universal favorites: 🟢 pizza, 🟢 fried potatoes/chicken, 🟡 dumplings, 🟢 ice cream. Universal comfort foods: 🟢 khichdi, 🟡 congee, 🟡 dal-rice, 🟡 risotto, 🟡 ramen, 🟢 pho, ⚫ chicken noodle soup, 🔴 rice porridge, 🟡 mac-and-cheese, 🔴 mashed potato, 🟣 polenta, 🟢 oatmeal, 🟣 Japanese curry rice. Acquired tastes that convert most: 🟡 coffee, 🟢 tea, 🟡 dark chocolate, 🟢 mild fermented dairy, 🟢 pickles, 🟢 olives, 🟣 kimchi, 🟣 miso, 🟢 mild chili dishes. Acquired tastes that have cult devotion: 🟣 durian, 🟣 natto, 🟣 stinky tofu, ⚫ fermented fish, ⚫ hákarl, 🟢 very funky blue cheese, ⚫ offal. OceanoPDF seems like a good place to download ePubs of books. The entire Wikipedia is available as a Parquet file. You can query it like duckdb -c "FROM 'hf://datasets/wikimedia/structured-wikipedia/enwiki/data/*.parquet' LIMIT 5". The English version has 35 GB, 7.6 million articles, and you’re better off downloading it rather than running analyses remotely. When you receive a Calendly link of the form https://cal.com/USER/EVENT you can fetch the available slots via curl -H 'cal-api-version: 2024-09-04' 'https://api.cal.com/v2/slots?eventTypeSlug=EVENT&username=USER&start=2026-05-25&end=2026-06-01&timeZone=Asia/Singapore&format=range'. Useful to automate good meeting-slot selection. “Reference saved memories” in ChatGPT is different from “Reference chat history” as per OpenAI. In Developer Mode, memory is turned off, but not chat history. I confirmed that I can access past conversations in Developer Mode. It might be a privacy concern for others, but for me, this is singularly useful, because I can use ChatGPT with Local MCP effectively getting a non-metered AI coding agent. Seems GPT-5.2 reaches expert level in peer review: 45 scientists took 469 hours evaluating human & AI reviews on 82 papers. “Surprisingly, current AI reviewers are competitive even with the top-rated reviewers in Nature’s official peer review…” though not without weaknesses, so use AI + humans. On the limits and opportunities of AI reviewers: Reviewing the reviews of Nature-family papers with 45 expert scientists via Ethan Mollick

Using Codex to improve Codex

Instead of learning and applying new Codex features, I asked it to analyze my sessions and tell me what I’m under-using. I'd like you to analyze my Codex sessions and help me use Codex better. sessions/ has all my past Codex sessions. Search online for the OpenAI Codex release notes for the latest features Codex has introduced and read them - from whatever source you find them. Then, create a comprehensive catalog of Codex features. Then, analyze my sessions and see which feature I could have used but didn't and make a comprehensive list. Then summarize which features I should be using more, how, what the benefits are, and with examples from my sessions. Document these in one or more Markdown files in this directory. Write scripts as required. Commit as you go. It did a thorough job of listing all the new features and analyzing my gaps. ...

Things I Learned - 08 Feb 2026

This week, I learned: The Disconnected Git Workflow explains how to use the git send-email workflow. That’s like using email instead of GitHub as the collaboration mechanism - decentralizing and reducing dependencies. Grok throws a HTTP 431 when you pass it a query over 6,890 characters in the URL. Here’s an example with 6,900 characters. As of now, there’s no way to tell uv to use the cache and install only missing repos (#15454). But this is Deno’s default behavior, making Deno a slightly better choice in this regard. Shelling Out Sucks shares common pitfalls when calling the shell from programs. Suggestion: Shell-escape ALL inputs. Use set -o pipefail to detect failures in the middle of a pipe chain. Explicitly check the error code, not just stderr. dax, which is based on zx, is a simpler Deno-based alternative to shell scripts. See examples. ChatGPT. However, scripting language matters more when humans maintain shell scripts. Since I’m using AI, it’s easier to use bash scripts and let it handle any complexities. git push --force-with-lease is like git push --force but won’t overwrite if others have pushed in the meantime. Default to this instead of --force – it’s safer. Microsoft’s docfind generates a WASM search index for documents, building a dependency free browser based compact and fast search. diffs seems a promising library for rendering diffs in the browser. Genie 3 seems pretty good. We should expect to see World Models becoming usable in a few months.

Migrating my blog from WordPress to Hugo

In 2009, I migrated from a self-made Perl static site generator to WordPress because it was slow, WordPress was dynamic and rapidly growing in features, and I wanted to write rather than code. (Also, I had plenty of time in 2009 for such things!) Over the years, problems crept in. Hosting costs ($200/year) for a slow server. No local writing - Windows Live Writer was dead. I wasn’t using most WordPress features. So it was time to migrate back to a static site generator. (Also, I now have plenty of time for such things!) ...

2025 6

Voice coding is the new live coding

In Feb 2025 at PyConf Hyderabad, I tried a new slide format: command-line slideshows in bash. I’ve used this format in more talks since then: LLMs in the CLI, PyCon Singapore, Jun 2025 Agents in the CLI, Singapore Python User Group, Jul 2025 DuckDB is the new Pandas, PyCon India, Sep 2025 It’s my favorite format. I can demo code without breaking the presentation flow. It also draws interest. My setup was the top question in my PyCon talk. ...

Meta AI Coding: Using AI to Prompt AI

I’m “meta AI coding” – using an AI code editor to create the prompt for an AI code editor. Why? Time. The task is complex. If the LLM (or I) mess up, I don’t want re-work. Review time is a bottleneck. Cost. Codex is free on my $20 OpenAI plan. Claude Code is ~$1 per chat, so I want value. Learning. I want to see what a good prompt looks like. So, I wrote a rough prompt in prompts.md, told Codex: ...

“Inferencing” is the new “Compiling!” I spent a fair bit of today playing Bubble Shooter because Claude spent 10 minutes writing code for an npm package: https://www.npmjs.com/package/saveform and for a bunch of other things. 5-10 minutes is too short a time to do something meaningful. I do wish these LLMs would take less or more time. We’re right now in the zone of bad interruption timing. LinkedIn

How to create a Technical Architecture from code with ChatGPT

Here’s my current workflow to create technical architecture diagrams from code. STEP 1: Copy the code Here’s a one-liner using files-to-prompt to copy all files in the current directory: fd | xargs uvx files-to-prompt --cxml | xclip -selection clipboard Or, you can specify individual files: uvx files-to-prompt --cxml README.md ... | xclip -selection clipboard STEP 2: Prompt for the a Mermaid diagram Mermaid is a Markdown charting language. I use this prompt with O4-Mini-High or O3: ...

Automating a podcast from GitHub commits

Here’s an LLM-generated podcast of what I coded last week. NotebookLM-inspired. The process proved straightforward. Get my GitHub commits for the week. Get the repositories I committed to for more context. Have an LLM generate a podcast script. I’m using GPT 4.1 Mini but might shift to Gemini 2.5 Flash or DeepSeek V3. …using a detailed prompt beginning with “You are a podcast script assistant for “Anand’s Weekly Codecast.” This episode is for the week of {WEEK}. …”. Here’s a sample output. Convert the script to audio. I’m using GPT 4o Mini TTS with customized voices of Ash and Nova. These now appear on my GitHub repo as a weekly summary. ...

Things I Learned - 16 Feb 2025

This week, I learned: Connected Papers shows papers similar to each other based on co-citation and bibliographic coupling for ~50,000 papers. Notes from a fireside chat with Prashanth Chandrasekar, CEO, StackOverflow, and the StackOverflow team There’s a signal that software demand is growing in 2024. Many more students took the StackOverflow survey in 2024. So more students (or other professionals) are shifting into / starting to learn software development. The AI Index is a good resource for AI trends. Experts are better able to use AI for writing code. Less experienced developers are more likely to use AI for code reviews, project planning, etc. There’s a 5% decline in favorability for AI tools compared to 2023, maybe due to disappointing results. Pilot groups working on AI are 25-30% more productive. They’re the most enthusiastic. For the rest of the company, it drops off to 5-10% #LEARNING Benefit comes from NEW people becoming programmers, not existing ones getting more effective? StackOverflow wants to be where the developer is. The programmer workflow was: Google -> StackOverflow -> GitHub. Now it’s changing to ChatGPT / Cursor -> GitHub. StackOverflow has a partnership with OpenAI and working on a plugin. Same with Google’s Duet AI, GitHub Copilot, many others. They’ll link to StackOverflow. StackOverflow is driving integration actively through an enterprise Overflow API Q: What tech have you seen blaze through the ranks? Prashanth: Abstraction wins. Stuff that abstracts away things well and more wins. This includes Gen AI. Erin Yepis: Rust (from 3% to 12%). AWS has steady growth. Erin Yapis: I have a time series spreadsheet that I’ll publish. Q: What technologies are unusually tightly coupled? Prashanth: AWS & Google Cloud are tightly coupled. Q: We have an engagement problem. Might be India-specific. What are low-effort high-return mechanisms to increase engagement. Eric Woodring: Rather than a static web page, integrate it using the API. #TODO Ben Marconi: Use LLMs to write post mortems and push to StackOverflow. #TODO Eric Woodring: “Hydrating” the community helps. We take repeat questions on Teams / Slack and seed them using LLMs. We integrate with the API to auto-add Q&A. Transform documentation into Q&A. Potentially UPDATE existing Q&A if it’s wrong. Q: What unexpected lessons about developer behavior have you learned while running StackOverflow? Prashanth: We didn’t expect developers moving away from Google. Now it moved to the IDE. Q: What are you learning about developer learning behavior? Ben Marconi: Generating LLM-based onboarding documents. Using StackOverflow for Teams to identify who the experts are to contact for specific topics. Q: Are you thinking about leveraging Stack Overflow’s knowledge base for personalized or interactive learning experiences? How? Prashanth: Traditionally, people use StackOveflow for productivity, learning, and flexibility (i.e. to ask/answer questions asynchronously without breaking their flow). So yeah, learning is important for us. (Duh!) Q: Could Stack Overflow’s interactions help evaluate the accuracy and relevance of LLM-generated code? Or provide potential metrics on quality? Prashanth: LLM accuracy improves by ~30%. Upvotes / downvotes are reinforcement learning (RL) in steroids, so that helps. Q: What are your thoughts on reliance on LLMs potentially deskill-ing developers? Prashanth: A real issue for junior developers, not for senior ones. They’ll come across as knowledgeable. Make internal evaluations and interviews more rigorous. Anand’s requests for action: Could I get a copy of Erin’s spreadsheet? Vivek Narayanan will follow-up. Could you help me learn more about hydration? Nick Madison will set up a meeting with customer success group. I switched to fish shell mainly because: Autocomplete and tab completion works perfectly, out-of-box. Syntax highlighting is beautiful Great multi-line editing To format with VS Code Ruff, you need to point the ruff.interpreter setting to a Python interpreter. You can’t run the ruff server without Python, even though ruff itself doesn’t need Python. cd checks all paths specified in CDPATH for the directory name and changes to the first match. That’s pretty convenient! Flipper Zero is now on my list of “To Buy” tools. It has a variety of hardware devices including NFC, RFID, Bluetooth, Infrared, etc. and is great to reverse engineer or hack devices.

2024 2

Leaning into the power of AI coding

Yesterday (15 Oct 2024), I used Cursor to code more than I ever have. (Doing's how we learn, I guess. Not just reading.) DateUsage05-10-20241506-10-20242707-10-20248708-10-20241609-10-202410-10-20244211-10-20242412-10-20245713-10-20241514-10-20242815-10-2024186 This was mainly to create and publish 2 libraries on npm over 6 hours: ...

From Laptops to Chatbots: Coding at 30,000 ft

Until recently, I could code on flights. This year, I lost that ability. Again. It’s happened before. In each case, technology has solved the problem for me. Here’s the history. I need a laptop. Since 2001, I’ve never been without one on a flight. I need power. Since 2005, I use dark mode and every low power feature available. (I also became good at finding hidden power outlets.) ...