Vivek Haldar — tinkerer, programmer, writer, YouTuber. Sixteen years of essays on programming, AI agents, and the changing nature of knowledge work.
2026
- How (and why) to be an effective meat proxy
- The OpenAI–Hugging Face Hack: A Systems Problem More Than an Alignment Problem
- I Have Become a Cognitive Empty Nester
- Continual Learning Needs More Nuance
- Beyond Human-in-the-Loop
- How I Cut an AI Agent's Token Use by 94%
- Cognitive Debt and the Future of Programming
- The tension between local and cloud agents
- From Emacs to Agents
- The Complexity Ratchet
- A Tale of Two Job Markets
- O Moat, Where Art Thou?
- Skills, CLIs, and MCP: What They're Actually For
- Human-Agent Interaction Is Becoming the Bottleneck
- Meta-Harness: Automating the Benchmaxing Loop
- Your Agent Sessions Are Disappearing
- Surprising a model
- MCP Knife: A CLI Swiss Army Knife for MCP Servers
- mcpblox: Transform and Compose MCP Servers with Unix Pipes
- The Three Abstractions That Make AI Agents Real
- Confessions of an AI Hype-Bro
- Subagents, Commands and Skills Are Converging
2025
- The Birth of a New Platform
- Unix Was a Love Letter to Agents
- Coding Agents Are Outliers
- Narrate Your Work
- The Assembly Language of Knowledge Work
- My Video Production Stack (for YouTube)
- Natlang Code
- The Mac-vs-PC Story Playing out in CLI Agents
- AI is a Mirror
- Plato's Cave of AI Agent Evals
- Fixing Auth for Personal AI Agents
- Does AI Make Programming Feel Like Factory Work?
- The Personal Side of Jevons Paradox in the Age of AI
- The Programmer's Climb
- Dijkstra would’ve (incorrectly) HATED vibe-coding
- The case against local LLMs
- "But LLMs are not deterministic!"
- End-user Abstraction
- AI coding - From Tactics to Strategy
- Writing is building, but software is now content
- Human evals are outsourced vibe checks
- When Compilers Were the 'AI' That Scared Programmers
- Spec-driven Vibe-coding
- Don't credit AI
- Emacs in the age of AI
- AI resistance considered harmful (for programmers)
2024
2023
2020
2019
2018
2017
2016
2015
2014
- IDEs in the cage
- De-skilling
- How software grows
- When to do a rewrite
- Learning your life
- Garland Words
- Lurking Smalltalk
- Heartbeats
- Why technologists want to secede
- Bleeding buffers
- You can't run with the machines
- More on fat vs thin clients
- Asynchronous Learning is More Inclusive
- The Automatic Corporation
- Pebbles and Projects
- Shedding
- The tool divergence
- The Programming Language Consensus
- Technium
- Hand-drawn maps
- Star Trek vs Babylon 5
- Fat Client, Thin Client
- The Contours of My Attention
- Go lang
- The Human Resolution Threshold
- The Distraction Addiction
2013
- Best of 2013
- Generation AD
- To tool or not to tool?
- Automating software engineering
- Sharp tools, dull minds
- Malcolm Gladwell and the narrative fallacy
- The 1964 origins of responsive design
- What changed in 1991 in India?
- (A tiny step towards) Automating Web Design
- Rules for Computing Happiness
- Should I do a PhD?
- My review: The Year Without Pants
- How will you read your files in a hundred years?
- "The Mundanity of Excellence"
- Why you should subscribe to my newsletter
- Research Roundup: Programming and Remote Teams
- Is there a STEM worker shortage?
- Rangers
- Taking your company completely remote
- Long form on the web
- We are all remote workers
- Talented Beast
- Asset allocation is everything
- Maintenance is not a bad word
- The cost of memory safety
- How Hugh MacLeod got my money
- The difference between a herd and a crowd
- HTTP 2.0 marks the end of an era
- The Real New Aesthetic
- The Organic Digital
- Empirical Analysis of Programming Language Adoption
- Native mobile apps are a stopgap
- The perils of being a knowledge worker
- C++14
- How I do email
- Balance
- "We don't do email, email does us"
- Waiting faster
- NPS
- The laziness of synchronous work
- Mindfulness sells
- CPU pipelines and the structure of work
- Backup in the age of the cloud
- The One Thing
- Games as a hook into CS
- What do you think computer science is?
- Future programming
- Patterns of use
- Abolish the "Save" icon
- RIP Ebert
- Start here
- We are all Mad Men
- Meetings are mutexes
- STEM jobs
- Strong opinions, weakly held
- Zero Knowledge
- What I work on…
- Addicted to work
- Moving to Chrome OS
- From the mouths of babes
- Factory machines
- The new luxury
- Productivity isn't
- Colorful geometry
- Review: Close to the Machine
- Computer Science PhD trends
- Tackling tail latency
- Blue collar coders
- The void
- Engineering, Culture and Tools
- So Good They Can't Ignore You: Review
- Scaling communication: email vs shared documents
- The rise of fimperative programming
- Grateful for technology?
2012
- Best of 2012
- New theme
- Good reads of 2012
- Writing on a tablet
- Quantum of Work
- Testing Redux
- Need to remember
- Some advice on internships
- The new C++
- Treesaver-based copy of this blog
- A Programmer's Thanksgiving
- Interviews (and whiteboard coding)
- "The best minds of my generation are thinking about how to make people click ads"
- MOOCs will eat academia
- A rare retrospective on a decade-long research project
- Deep Shelling
- Why you would want to program at fifty (or any other age)
- Coaching and review
- How did software get so reliable?
- It Might Get Loud
- Poor man's DIY little printer
- Money in the Valley
- Science = Prediction
- Datacenter power
- Citation Reliability
- New frontiers in text editing
- English is heavily left-handed
- Writing and happiness
- Shitty legacy maintenance
- Personal Trainers for Software
- The levels of agility
- A Twitter-based Anagram Game
- The Cubicle Dilemma
- What is life like for PhDs in computer science who go into industry?
- The lure of work
- Review: The Computer Boys Take Over
- Productivity porn
- What mobile development taught me
- Is C/C++ worth it?
- On Vagueness
- Teaching data structures with real-world examples
- How I read now
- Management models
- The Nostalgia Trap
- Working asynchronously
- Recent updates to old posts
- Social Engineering for Programming Languages
- The Interested Minority
- Advice to (prospective) grad students
- Operations should be in the computer science curriculum
- Executable Thought
- The need for Easter eggs
- The 7 stages of debugging
- My setup
- Big science funding
- Bug finding and static analysis in the real world
- Church numerals in Python
- The carrier-messenger wars
- The components of a university
- Mediated Concert
- Reproducing papers
- If you see a stylus, they blew it. Not.
- Code review. Just do it.
- Jonah Lehrer
- Computational thinking
- Themes: Language
- Themes: The Economics of Programming
- Showing it
- Themes: Modern Work
- Blue Java
- Innovator's dilemma in programming languages
- T-shirts are currency
- The intimacy of imperfect technologies
- Whither programming language research?
- Taylorist Science
- Team Science
- How to debate
- Hookah
- Rational Equivalence
- Why I blog
- Carr and Kelly
- Guru moment
- Repositories of science
- Computation in the wild
- The CS assignment I wish I had
- Iteration
2011
- Best of 2011
- How to make your new programming language successful
- The 0.1x developer
- The monk tax
- The programming assembly-line
- The abstraction-optimization tradeoff
- The origins of Silicon Valley
- Jumping to analysis
- The empirical science of happiness
- Flash Crisis
- Why developers should learn the economics of code
- Deft with descriptive filenames
- Size is the best predictor of code quality
- Smeed's Law for Programming
- The Poisonous Long Tail
- How things grow
- Reading Happiness
- GUI vs CLI: Operation vs Expression
- The Upside of Complexity
- Do you have an RSI prevention plan?
- An ergonomic keyboard and mouse configuration
- Media Meta Argument
- Large Computer Systems are Organic
- Emacs as a login shell
- Comments on Stallman's Dystopia
- Stallman's Dystopia
- The Perils of Closed Worlds
- More machines, more reliability
- Teaching as performance
- Side effects of PhD programs
- dotEmacs Extract: Interactively change font size
- Sun Ray
- OOP = FP?
- The Shy Scientist
- The levels of Emacs proficiency
- Cracks in Minimalism
- tldr summary: The role of deliberate practice in the acquisition of expert performance
- In Aggregate
- Turn your blog into an online magazine - a blogmag
- Michael Crichton
- Alone Together
- The Cognitive Style of Unix
- How the first Gulf War brought modernity to India
- How to Write a Twitter Bot in Python
- Englsh Wtht Vwls
- Presentism
- Stephenson on Emacs
- Text Input: The Next Frontier
2010
- More on and or
- Best of 2010
- Minimalism is not a viable intellectual strategy
- Parsing "and/or"
- Use Accessibility Technologies Before You Have To
- Ode to the Album
- Editing Google Docs in Emacs
- Posting to Tumblr from Emacs
- Coding blind
- My favorite Chrome extensions
- The 18th Century Origins of Lolcat-speak
- To jump or not to jump?
- Deresiewicz: Essays about the Internet
- Listening to your reading
- Engineering is all about failure
- Accessing Google's RESTful APIs from Google Apps Script
- The Internet is making us smarter, but is it making me dumber?
- Taylorism in the modern tech industry
- Checking into Internet rehab - and sneaking out
- What can Kanye and U2 teach you about teamwork?
- Nouns as verbs, verbs as nouns
- Upsight
- Medium Shear
- English Words Lifted from Hindi
- Dilli
- Text to speech in MacOS X - automatically
- Collecting Needles
- Gabriel vs Brooks
- Software processes are software too
- Why James Cameron did not win the Academy award for best director for Avatar
- No ||
- Google Apps Script + Spreadsheets = Mashup Hub
- Connecting my blog to Buzz