Balajee Ramachandran
Blog About Resume
  • February 24, 2026

    Why Remote Work Can (But Doesn't) For Your Team

    The surprising key friction that makes or breaks remote work — and it all comes down to screen sharing.

  • February 10, 2026

    Figma Prototyping No Longer Makes Sense

    Why vibe coding with AI agents has replaced Figma for low-fidelity prototyping, and the superpowers it unlocks.

  • January 26, 2026

    Use Deterministic Guardrails for Your LLM Agents

    How to keep your vibe-coded/LLM agent projects from turning into unreadable mush using deterministic linters and static code analyzers.

  • December 21, 2020

    The Joy of Typed Python

    Why mypy type annotations make Python a joy to work with, and how to get started with type checking.

  • September 12, 2020

    Debuggers

    An evolving opinion on debuggers — when they're indispensable, and why I now mostly eschew them.

  • May 27, 2019

    On Project Management

    The only project management approach that actually worked — a story about scrums, standups, and Microsoft Project.

  • January 1, 2019

    Lessons Learnt Last Year

    Reflecting on the key lessons learned over the past year about learning, typesafety, SQL, declarative APIs, and VSCode.

  • November 9, 2018

    Rooting out CPU Bottlenecks from asyncio-based API Services

    How to profile Python asyncio services and eliminate JSON serialization bottlenecks that block the event loop.

  • November 1, 2017

    On d3

    Observations about d3's API and code organization from a beginner's perspective.

  • September 24, 2017

    Good OOP Design Favours Less OOP

    How the best OOP advice boils down to using less OOP and thinking more like functional programmers.

  • September 20, 2017

    My New Favourite Terminal Emulator: Vim

    Using Neovim as a terminal emulator for a mouse-free, vim-native workflow.

  • September 17, 2017

    There is No Idiomatic Haskell

    Thoughts on functional programming, OOP design patterns, and why the best OOP advice is to think more like a functional programmer.

  • August 18, 2017

    On Electron

    Thoughts on Electron apps, their resource usage, and the alternatives available.

  • April 16, 2017

    Why Aren't More APIs Declarative?

    Exploring the benefits of declarative APIs and why more stateful libraries should adopt them.

  • March 3, 2017

    Tiling Window Managers

    Why tiling window managers like i3 are all a developer needs for a mouse-free, productive desktop environment.

© 2026 Balajee Ramachandran