out.of.desk

personal blog of Gaurav Ramesh

The Blurry Lines between Copilot and Autopilot - How I’m using LLMs and How Not

My kids and ChatGPT were born around the same time. For the last three years, just as my kids have been learning to navigate the world through imitation and experimentation, the world has been doing the same with LLMs.

For me, tinkering with LLMs has translated into finding the line between using them as a co-pilot that helps me create, and an autopilot that thinks for me. Here are the rules I've landed on - what I embrace, and what I'm deliberately cautious about.

I Use It to Build Software, But Not Just Any Software

In my day job, I barely code. But I satiate my itch to build things through side projects. In the last year alone, with LLMs as my coding partner, I have built and published an Obsidian plugin called Serendipity, to discover random notes from your Obsidian vault, a Chrome plugin called Justify to justify text on any website with one click(I’m a stickler for justified text and beautiful fonts!), a Node.js-based data streaming framework called FlightStream, and a blog from the ground up using Sveltekit, Tailwind and Netlify. While the industry debates whether vibe coding is here to stay or whether LLMs can write production-grade software, their value in one area is undeniable: empowering individuals to build for themselves.

But isn’t the number of side projects just a vanity metric? In a way, yes.

The real value is not in the number, but in the lessons learned through the act of building. It’s in the problem it solves, whether one-time or a recurring one.

The nature of the software I build spans three categories: those that help me save time(automations), satisfy a personal desire or of others(utilities), and those that help me learn something(educational).

I built the blog from scratch not merely to have another platform to write, but one, to learn Sveltekit, and two, because writing platforms like Medium and Substack, for all their power, suck the individuality out of it. Writing, to me, isn’t just about words; it’s the entire medium – the words, sure, but also the font, the layout, the colors, the visuals and sketches, the non-linearity of space – all to bring my thoughts into the real world in the most articulate way. By lowering the barrier to creation, LLMs give us the space to think about what we want to solve, discover and infuse our taste into our tools.

This deep personalization(not merely customization) of software is what Geoffrey Litt calls malleable software and Maggie Appleton terms home-cooked software. When the cost to build is nearly zero, we have more time to reflect on what we truly want. As Anu Atluru argues in Taste is Eating Silicon Valley, and Nesrine Changuel says in Lenny’s podcast, function is becoming a commodity. Delight is the differentiator. We see this in the emergence of taste-driven products like Linear, Figma, Perplexity, Granola and Notion. Artists are bringing software to life.

The key is this: Side projects or not, one of the best ways to use LLMs for coding is to break up a project into small chunks, small enough that it boils down to solving one specific problem, think about how you want the software to feel like when it's built, and then letting them build it. What you've achieved in the process is clarity, of both function and taste, and effective delegation. A lot can be said about using AI to solve the first part of the problem, and LLMs are very good at it, but that's for another post.

This approach of using LLMs for small, deterministic tasks echoes a long-standing principle in software engineering, as articulated by Kelsey Hightower in this LinkedIn post

One day the industry will recognize the drawbacks of AI agents and nondeterministic automation, and rediscover the UNIX philosophy of chaining together small purpose built tools in a low cost and predictable way, otherwise known as shell scripts

But while LLMs are a powerful accelerator for building things, I've learned to apply the brakes when it comes to forming my own thoughts.

Where I Deliberately Go Slow with LLMs: Comprehension and Writing

Aparna, the CPO of Microsoft AI, recently wrote Most Work is Translation and how that’s largely solved by AI. It's hard to repudiate that claim, but what can be argued are the degree to which LLMs are helpful in translation, and the value humans add in the process.

When consuming information, I almost never let an LLM take the first pass. I insist on skimming through the raw material myself(to the extent that's possible), to form my own map of the terrain. Only then do I use LLMs as a tool for targeted question-answering. To do otherwise is to risk the critical work of context gathering. I believe this human-led translation - the ability to read subtext, connect non-obvious dots, understand human intent, and add elements of serendipity and surprise – and to do it well, is a core professional skill, that’s at the risk of being largely underestimated, ignored, or even questioned. I’ve seen too many times how subtext reveals more than the literal text. Maybe it’s the choice of words, the hesitation, the context, that we lose when we delegate comprehension blindly to LLMs.

The path from using them as a copilot to autopilot is a slippery one, especially given our natural tendency to lean towards convenience and comfort by trading agency and individuality. While we’re expected to ask thoughtful questions, it’s all too easy to just consume the answers given to us and not care about what the questions are.

Just as much as our job is to build something genuinely useful, something which really does make people's working lives simpler, more pleasant and more productive, our job is also to understand what people think they want and then translate the value of Slack into their terms.

A good part of that is "just marketing," but even the best slogans, ads, landing pages, PR campaigns, etc., will fall down if they are not supported by the experience people have when they hit our site, when they sign up for an account, when they first begin using the product and when they start using it day in, day out.

Therefore, "understanding what people think they want and then translating the value of Slack into their terms" *is something we all work on. *It is the sum of the exercise of all our crafts.

~ Stewart Butterfield, in We Don't Sell Saddles Here

Writing is more susceptible to becoming an activity in autopilot because, frankly, it’s harder than reading. In the space of the blank screen, and the time it takes to muster words to describe your internal state, it’s hard not to give in to the offer of the co-pilot to take the wheel.

My defense is simplicity. While writing, I use a simple tool like Obsidian, often even an infinite canvas like Excalidraw, to put down fragmented thoughts, focusing only on capturing the raw material. Then I just stare at everything I have put down to identify if there’s a story to tell and only then use LLMs to identify patterns, and go back and forth to come up with a skeleton of the story, each time getting it closer to the vague vision I have in mind. Through conversation, and iterations, the vision becomes clear. Then I use it to add credibility to my story, or challegene my assertions.

In a way, I use LLMs to create a painting from the tools, colors and materials I have assembled, rather than let it create something from the ether. This ensures that the final piece is authentically mine. The outcome isn’t perfect, but the ownership is absolute. It is a genuine artifact of my own thinking, and that is something I can stand behind, feel proud of, and be accountable for. In a world of effortless AI-generated content, there’s immense value and pride in that.

Conclusion

This landscape is nascent and evolving at a rapid pace, and my tactics will surely change with it. But my core principle will likely remain unchanged: The goal is not to automate my thinking, but augment it. In the age of intelligent machines, one of the most valuable human skills is intentionality.

Recommended Reading

P.S.

I see other popular uses of AI(some overused or talked about to the point of annoyance) that I have not tinkered with. Not because I'm a skeptic, but because I haven't made them a priority. If you're using these and finding value, I'd love to hear about how and what you’re using them for: agentic workflows, rapid prototyping, multi-modality use.

Share or Subscribe

Get notified when new posts are published. Once a month, I share thoughtful essays around the themes of personal growth, health & fitness, software, culture, engineering and leadership — all with an occassional philosophical angle.