Hi, I’m Ravi — a software developer and engineering leader based in Toronto, Canada.

Over the past decade-plus in the industry I’ve moved across a wide range of roles: writing code, running infrastructure, leading teams, and designing systems. At any given time I’m probably thinking about how to make software more correct, more observable, or more maintainable.

What I Do

My professional work sits at the intersection of backend systems and developer tooling. I’ve spent time across the full stack and at multiple altitudes — from individual contributor work deep in business logic to architecting cross-team systems and managing engineering teams.

Roles I’ve held along the way:

  • Software Developer — full-stack and backend, primarily C#/.NET, JavaScript/TypeScript, Go, and Python
  • Solutions Architect — translating product requirements into technical designs across distributed systems
  • Development Manager — building and growing engineering teams, running delivery processes
  • Scrum Master — coaching agile practices and keeping teams unblocked
  • Sysadmin — because someone has to keep the lights on

What I Build

Outside of work, I gravitate toward projects that scratch a creative or analytical itch — things that solve a real problem I actually have, rather than tutorial-driven exercises.

A lot of my side projects revolve around a private online hockey league I’ve played in for years. Over time that’s produced an API wrapper, a stats pipeline, a WPF draft tool, and more. It’s a good excuse to learn new languages and tools in a context that keeps me motivated.

I also occasionally write about what I’m learning and working on — check out the blog.