Harshal Gajjar

Harshal Gajjar is an AI Forward-Deployed Engineer at C3 AI, based in the San Francisco Bay Area. Harshal leads Agentic AI harness development for the Forward-Deployed Engineering organisation at C3 AI, and since January 2026 has been building a stealth-mode startup in the Agentic AI space. Harshal cofounded Shram.io in 2024, where he led the pivot from a Jira-competitor product to an AI assistant that reached #2 Product of the Day on Product Hunt.

Harshal holds an M.S. in Computer Science (Machine Learning specialisation) from Georgia Tech and a B.Tech in Computer Science from IIT Dharwad, where he was part of the institute's foundational class. He spent three summers at Wolfram Research in Boston — first as a summer researcher in 2018, then as an instructor for high-school students in 2019 and 2020 — and was a Wolfram Student Ambassador throughout his undergrad.

Outside of work, Harshal is a long-distance cyclist and a vertical and horizontal caver, active with the San Francisco Bay Chapter (SFBC) grotto. In 2019 he was part of the Hubballi Bicycle Club Guinness World Record for the longest single line of bicycles.

Contact Harshal at mail@harshalgajjar.com.

blog · notes & longer pieces

a quiet feed — things i've been thinking about, mid-flight.

  1. #

    The Last Thing for Humanity to Do

    AI made doing free, then deciding. The scarcity keeps climbing — and it's not clear the last rung stays ours.

    There's an old puzzle about why water, which you'd die without, costs almost nothing, while a diamond, which does nothing for you, costs a fortune. The answer is that price never really tracks how much a thing matters. It tracks how short of it you are. Water is everywhere, so nobody pays for the next glass; diamonds are rare, so people pay through the nose for the next stone. Important and expensive quietly come apart, and once you notice that, you start seeing it everywhere.

    You especially start seeing it in the way people talk about AI.

    For as long as software has existed, the expensive part was the doing — actually sitting down and building the thing. Engineering hours ran out before anything else did, so that's what the whole market learned to price: the salaries, the headcount, the job itself. Building was the water we were perpetually short of, and being short of it was the entire reason it cost what it did.

    Continue reading →
    #ai#software#judgment
  2. #

    The blank box problem

    The chat-vs-UI divide isn't about interfaces. It's about who holds the model of the task.

    There's a split forming in how people use software, and it's easy to mislabel. On one side, the people who mostly chat (great agentic interfaces like Claude Code) — a blank box, a sentence, and the machine does the thing. On the other, the people who mostly click — buttons, menus, forms, maybe a chatbot tucked in the corner as a fallback. It looks like a fight about interfaces. It isn't. The real axis is who holds the model of the task.

    Chat-first people carry the task model in their own head. They know what they want, they can say it in words, and they treat the AI as a general-purpose executor. To them the blank box is freedom. But it only works because they already know what's possible — the box has no affordances, no map. It rewards the fluent and strands everyone else.

    UI-first people need the software to hold the model for them. Buttons and menus are a discoverable answer to "what can I do here." A chatbot bolted into the corner is what you reach for when the map runs out. To them the blank box isn't freedom, it's anxiety — the blank box problem: cursor blinking, and no idea what to type.

    Continue reading →
    #interfaces#agents#llmsmedit
  3. #

    The phone is the terminal now

    When agents do the work, the laptop stops being the bottleneck.

    For twenty years the laptop was where work happened because work was typing. Long documents, long code, long emails — high-bandwidth output that a thumb keyboard couldn't keep up with. The phone was for consuming: read, scroll, reply in a sentence.

    Agents invert that. When a harness is doing the drafting, the searching, the refactoring, the scheduling, my job collapses into a much narrower channel: decide, clarify, approve. And that channel fits in a pocket.

    Watch what the work actually becomes once an agent is in the loop. It's "yes, ship it." It's "no, the second option, and keep the tone." It's "explain why you picked that library." It's reviewing a PDF it generated, tapping a link it surfaced, signing off on a plan. None of that needs a 16-inch screen and a mechanical keyboard. It needs presence — me, available, deciding — and a phone is the most present device I own.

    Continue reading →
    #agents#mobile#autonomy#fde
  4. #

    reminal — SSH without the gymnastics

    A zero-config way to reach your own machine. One command, scan a QR code, you're in.

    SSH was designed in 1995. It quietly assumes you own a static IP, a router you can reconfigure, and the patience to keep keys rotated. None of that describes a laptop on hotel Wi-Fi, a home machine behind a consumer router, or the phone in your pocket.

    So I built reminal — short for remote terminal. The whole tutorial is one word:

    reminal
    Continue reading →
    #tools#security#fdereminal on GitHub
  5. #

    Why do we need evals when AI reviews exist?

    The distinction isn't human vs. machine. It's what gets inspected.

    When people switch from modify-in-place to regenerate-from-scratch, the question of how you keep quality up comes back fast. The reflex is to reach for review — read the change, decide if it's good. But review and evals are answering different questions, and the difference matters more than it looks.

    The distinction isn't human vs. machine. It's what gets inspected.

    Review looks at the change — the diff. "Given what existed, is this modification correct?" It depends on the diff being small enough to hold in your head. Reviewer (human or AI) reads the patch, not the whole artifact.

    Continue reading →
    #agents#llms#evals
  6. #

    What LLMs reveal about language

    We built them on the info-transfer view of language. The places they feel hollow tell us what that view missed.

    LLMs are built on one view of language: predict the next token from the previous ones. That's language as information transfer — the words, stripped from the doing and the feeling. The surprise of the last few years is how far that gets you. The more interesting question is where it stops.

    The info-transfer view was always thin. "He died," "he passed away," "he's gone" carry the same content and do very different things — form leaks into ordinary prose, not just poetry. Wittgenstein put it sharply: language isn't one thing. It's many games — joking, ordering, praying, greeting — each with its own rules. Asking "what does language really do?" is the wrong shape of question. It does dozens of things, and which one is operating depends on the game.

    LLMs handle the games that live in pattern. Borrowing Jakobson's vocabulary: the referential function (describing the world), the metalingual (defining, translating), the poetic-as-form (rhyme, rhythm, wordplay — patterns are what they learn). Those they do startlingly well. The games that stay hollow are the ones the info-transfer view ignored.

    Continue reading →
    #agents#llms#language
  7. #

    Tesla insurance as a game-theory patch

    When you can't make the car aggressive, change the other driver's payoff matrix.

    A self-driving car has a problem no human driver has: everyone on the road knows it will yield. At a four-way stop, in a merge, at an unprotected left — the rational bad actor edges in, because the car won't fight back. The safer the policy, the more it gets bullied.

    You can try to fix this in the model. Make the planner more assertive, learn social negotiation, simulate eye contact. This is the hard road, and it trades the thing you bought autonomy for — predictable, conservative behavior — to get back something a sixteen-year-old already has.

    Tesla's insurance is the other road. If you cut off a Tesla, the car remembers. The footage exists. The claim writes itself, and the bad actor is the at-fault driver against a defendant with perfect evidence and a lawyer on retainer. The car didn't have to get more aggressive. The cost of bullying it went up.

    Continue reading →
    #agents#fde#autonomy
  8. #

    Harnesses, not agents

    What "agentic AI" actually ships in the wild.

    Most of the production agent work I do isn't really about the agent. It's about the harness — the boring stuff around the model that makes a thousand customer-shaped failures recoverable, observable, and cheap.

    A model that's 95% correct in a notebook becomes 0% deployable without a harness that can: time out a runaway tool call, retry an idempotent step, fan out work, surface intermediate state to a human, and roll back side effects when the plan changes mid-flight.

    The interesting research question of 2026 isn't "can the model do it." It's "what's the smallest, most legible scaffolding under which the model can do it the same way twice."

    #agents#fde#c3
  9. #

    back from a TAG weekend. neversink in the rain — 162 ft of free hang, water sheeting down the cliff face the whole descent. nothing else in the week feels heavy after that.

    #caving
  10. #

    Reading my own notes from Vipassana

    I sat a 10-day silent retreat in 2025. I came home and wrote nothing for a week, and then I wrote too much, and then I forgot most of it.

    The line I keep coming back to a year later: most of what I call "thinking" is reaction with a longer time-constant. Watching the reaction without grabbing it doesn't make it go away. It just stops compounding.

    The work hasn't stuck. The pointer has.

    #meditation#2025
  11. #

    8+ years into Mathematica and I still find a built-in I didn't know about every week. the language is fractal — there's always one more layer of "wait, that's a single function?"

    #mathematica
  12. #

    The pivot is the product decision

    Notes from leading the Shram pivot, written down so I don't forget.

    At Shram in 2024 we were the 800th Jira competitor. The pivot — into AI assistants when the space was very new — was the entire company.

    Three things I'd tell past-me:

    First, the pivot isn't a feature change. It's a customer change. If your old user can still use the new product, you didn't pivot, you added a tab.

    Continue reading →
    #shram#founder
  13. #

    old la honda → west alpine → pescadero loop. 78 mi, 6500 ft. the descent off haskins is the closest a road gets to feeling like a pipe.

    #cycling#bay-area
  14. #

    What "forward-deployed" actually means

    A forward-deployed engineer is not a consultant. The job isn't to draw an architecture diagram and leave. The job is to embed in a customer's codebase, ship the thing that has to ship this quarter, and walk out leaving behind code their engineers will not delete the day you leave.

    The hardest part is restraint. You can see the ten things you'd refactor. You ship two of them and write a doc about the other eight. The two you ship are the ones that have to be there for the next FDE to land softly.

    #fde#c3
  15. #

    reading: "The Beginning of Infinity" (deutsch, again), "Designing Data-Intensive Applications" (kleppmann, for the third time), and the SWE-bench papers. one book per attention budget.

    #reading
  16. #

    Sixteen years of writing code

    Today I'm sixteen years into writing code. The first program ran in Visual Studio in 2010. I was thirteen. It printed a number and felt like a magic trick.

    The trick has gotten more elaborate. The feeling hasn't changed.

    #origin#2010
  17. #

    first trip into Guardian with the SFBC grotto. tight breakdown, then it opens into a room you don't expect from the entrance. cave geometry is the best argument against intuition i've ever found.

    #caving#sfbc