<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Balajee Ramachandran</title>
  <subtitle>Programmer. Blogger. Nice Guy.</subtitle>
  <link href="https://www.balajeerc.info/feed.xml" rel="self"/>
  <link href="https://www.balajeerc.info/"/>
  <id>https://www.balajeerc.info/</id>
  <updated>2026-02-24T00:00:00.000Z</updated>
  <author>
    <name>Balajee Ramachandran</name>
  </author>
  <entry>
    <title>Why Remote Work Can (But Doesn&apos;t) For Your Team</title>
    <link href="https://www.balajeerc.info/posts/why-remote-work-can-but-doesnt-for-your-team/"/>
    <id>https://www.balajeerc.info/posts/why-remote-work-can-but-doesnt-for-your-team/</id>
    <published>2026-02-24T00:00:00.000Z</published>
    <updated>2026-02-24T00:00:00.000Z</updated>
    <summary>The surprising key friction that makes or breaks remote work — and it all comes down to screen sharing.</summary>
  </entry>
  <entry>
    <title>Figma Prototyping No Longer Makes Sense</title>
    <link href="https://www.balajeerc.info/posts/figma-prototyping-no-longer-makes-sense/"/>
    <id>https://www.balajeerc.info/posts/figma-prototyping-no-longer-makes-sense/</id>
    <published>2026-02-10T00:00:00.000Z</published>
    <updated>2026-02-10T00:00:00.000Z</updated>
    <summary>Why vibe coding with AI agents has replaced Figma for low-fidelity prototyping, and the superpowers it unlocks.</summary>
  </entry>
  <entry>
    <title>Use Deterministic Guardrails for Your LLM Agents</title>
    <link href="https://www.balajeerc.info/posts/use-deterministic-guardrails-for-your-llm-agents/"/>
    <id>https://www.balajeerc.info/posts/use-deterministic-guardrails-for-your-llm-agents/</id>
    <published>2026-01-26T00:00:00.000Z</published>
    <updated>2026-01-26T00:00:00.000Z</updated>
    <summary>How to keep your vibe-coded/LLM agent projects from turning into unreadable mush using deterministic linters and static code analyzers.</summary>
  </entry>
  <entry>
    <title>The Joy of Typed Python</title>
    <link href="https://www.balajeerc.info/posts/the-joy-of-typed-python/"/>
    <id>https://www.balajeerc.info/posts/the-joy-of-typed-python/</id>
    <published>2020-12-21T00:00:00.000Z</published>
    <updated>2020-12-21T00:00:00.000Z</updated>
    <summary>Why mypy type annotations make Python a joy to work with, and how to get started with type checking.</summary>
  </entry>
  <entry>
    <title>Debuggers</title>
    <link href="https://www.balajeerc.info/posts/debuggers/"/>
    <id>https://www.balajeerc.info/posts/debuggers/</id>
    <published>2020-09-12T00:00:00.000Z</published>
    <updated>2020-09-12T00:00:00.000Z</updated>
    <summary>An evolving opinion on debuggers — when they&apos;re indispensable, and why I now mostly eschew them.</summary>
  </entry>
  <entry>
    <title>On Project Management</title>
    <link href="https://www.balajeerc.info/posts/on-project-management/"/>
    <id>https://www.balajeerc.info/posts/on-project-management/</id>
    <published>2019-05-27T00:00:00.000Z</published>
    <updated>2019-05-27T00:00:00.000Z</updated>
    <summary>The only project management approach that actually worked — a story about scrums, standups, and Microsoft Project.</summary>
  </entry>
  <entry>
    <title>Lessons Learnt Last Year</title>
    <link href="https://www.balajeerc.info/posts/lessons-learnt-last-year/"/>
    <id>https://www.balajeerc.info/posts/lessons-learnt-last-year/</id>
    <published>2019-01-01T00:00:00.000Z</published>
    <updated>2019-01-01T00:00:00.000Z</updated>
    <summary>Reflecting on the key lessons learned over the past year about learning, typesafety, SQL, declarative APIs, and VSCode.</summary>
  </entry>
  <entry>
    <title>Rooting out CPU Bottlenecks from asyncio-based API Services</title>
    <link href="https://www.balajeerc.info/posts/rooting-out-cpu-bottlenecks-from-asyncio-based-api-services/"/>
    <id>https://www.balajeerc.info/posts/rooting-out-cpu-bottlenecks-from-asyncio-based-api-services/</id>
    <published>2018-11-09T00:00:00.000Z</published>
    <updated>2018-11-09T00:00:00.000Z</updated>
    <summary>How to profile Python asyncio services and eliminate JSON serialization bottlenecks that block the event loop.</summary>
  </entry>
  <entry>
    <title>On d3</title>
    <link href="https://www.balajeerc.info/posts/on-d3/"/>
    <id>https://www.balajeerc.info/posts/on-d3/</id>
    <published>2017-11-01T00:00:00.000Z</published>
    <updated>2017-11-01T00:00:00.000Z</updated>
    <summary>Observations about d3&apos;s API and code organization from a beginner&apos;s perspective.</summary>
  </entry>
  <entry>
    <title>Good OOP Design Favours Less OOP</title>
    <link href="https://www.balajeerc.info/posts/good-oop-design-favours-less-oop/"/>
    <id>https://www.balajeerc.info/posts/good-oop-design-favours-less-oop/</id>
    <published>2017-09-24T00:00:00.000Z</published>
    <updated>2017-09-24T00:00:00.000Z</updated>
    <summary>How the best OOP advice boils down to using less OOP and thinking more like functional programmers.</summary>
  </entry>
  <entry>
    <title>My New Favourite Terminal Emulator: Vim</title>
    <link href="https://www.balajeerc.info/posts/my-new-favourite-terminal-emulator-vim/"/>
    <id>https://www.balajeerc.info/posts/my-new-favourite-terminal-emulator-vim/</id>
    <published>2017-09-20T00:00:00.000Z</published>
    <updated>2017-09-20T00:00:00.000Z</updated>
    <summary>Using Neovim as a terminal emulator for a mouse-free, vim-native workflow.</summary>
  </entry>
  <entry>
    <title>There is No Idiomatic Haskell</title>
    <link href="https://www.balajeerc.info/posts/there-is-no-idiomatic-haskell/"/>
    <id>https://www.balajeerc.info/posts/there-is-no-idiomatic-haskell/</id>
    <published>2017-09-17T00:00:00.000Z</published>
    <updated>2017-09-17T00:00:00.000Z</updated>
    <summary>Thoughts on functional programming, OOP design patterns, and why the best OOP advice is to think more like a functional programmer.</summary>
  </entry>
  <entry>
    <title>On Electron</title>
    <link href="https://www.balajeerc.info/posts/on-electron/"/>
    <id>https://www.balajeerc.info/posts/on-electron/</id>
    <published>2017-08-18T00:00:00.000Z</published>
    <updated>2017-08-18T00:00:00.000Z</updated>
    <summary>Thoughts on Electron apps, their resource usage, and the alternatives available.</summary>
  </entry>
  <entry>
    <title>Why Aren&apos;t More APIs Declarative?</title>
    <link href="https://www.balajeerc.info/posts/why-arent-more-apis-declarative/"/>
    <id>https://www.balajeerc.info/posts/why-arent-more-apis-declarative/</id>
    <published>2017-04-16T00:00:00.000Z</published>
    <updated>2017-04-16T00:00:00.000Z</updated>
    <summary>Exploring the benefits of declarative APIs and why more stateful libraries should adopt them.</summary>
  </entry>
  <entry>
    <title>Tiling Window Managers</title>
    <link href="https://www.balajeerc.info/posts/tiling-window-managers/"/>
    <id>https://www.balajeerc.info/posts/tiling-window-managers/</id>
    <published>2017-03-03T00:00:00.000Z</published>
    <updated>2017-03-03T00:00:00.000Z</updated>
    <summary>Why tiling window managers like i3 are all a developer needs for a mouse-free, productive desktop environment.</summary>
  </entry>
</feed>
