The longer version, if you want it.
I'm Mahesh Kumar Muddunuru, a software engineer in Vancouver. During the day I work on FortiClient releases at Fortinet. In the evenings I work on TapNGame, Tiffinware and Dakshin Foods. I like taking a piece of software all the way, from the first conversation to the support inbox.
How I got here
The kid taking the family computer apart
I took apart whatever I could get a screwdriver into, and fixed the neighbour's modem before anyone asked me to. Wanting to know how something works is still most of the job.

Learning to actually build things
I spent most of my time on networking, simulation, basic ML and computer vision. How packets get from A to B, and how a model learns to tell two things apart.

Running SAP for 150 enterprises
My first production job: SAP infrastructure for more than 150 enterprise clients, including GM, IKEA, Philips and Dell. A change made at 11 p.m. could break someone's payroll the next morning, so I learned to be careful with production early.

Master's: networking, security, ML
My thesis used machine learning to detect man-in-the-middle attacks on the client side. Around it I did Wi-Fi monitoring with Kismet, compared HOG+SVM with YOLO for vehicle detection, and simulated black-hole attacks on ns-3.

Fortinet: deciding whether a release is safe to ship
FortiClient is the VPN and antivirus that companies put on their employees' laptops, on macOS, Windows and Linux. I build the Python test framework, the Jenkins pipelines and a RabbitMQ setup that spreads test runs across machines, and I help sign off each release.

TapNGame: the app I wanted to use
Booking a court in Vancouver meant phone calls and WhatsApp threads, so I built the app I wanted, plus everything around it: payments, notifications, a venue dashboard, support. It's live on the App Store and Google Play.
Read the story →
Kitchens: one client, then a product
A family kitchen in New Westminster needed software that understood meal plans, so I built their whole operation. Other kitchens had the same problems, so I turned it into Tiffinware, which any kitchen can rent.
Read the story →
How I work
Merged isn't done
A change is done when the person who asked for it can actually use it, and the support emails about it stop. I check that part myself.
See the bug first
I reproduce a bug before changing anything, fix only what the evidence points to, and then write the test that should have caught it.
The database first
I work out the data model, who can see what, and what happens when two things happen at once before I design a screen. Screens are easy to change later. Tables with real data in them aren't.
AI writes drafts. I check them
I use Claude Code every day to draft, refactor and review. It's also confidently wrong often enough that I've written checks for its mistakes, like a linter that catches database functions writing values the tables would reject.
What I ship with
The tools I actually use. Happy to go deeper on any of them.
Languages
What I write every day.
Mobile & web
From an empty repo to the App Store and Google Play.
Backend & data
Schemas, security rules, payments and queues.
Release engineering
The day job, plus CI on my own products.
Security & networking
FortiClient work, plus my master's research.
AI
As a tool, and in the products where it helps.
Off the keyboard
Badminton year-round, long runs in season, steady strength work between, hiking when the weekend opens up. I ran the Vancouver Marathon in 2023.
Badminton is also why TapNGame exists. I got tired of phoning venues to find a free court.

On the trail
Vancouver Marathon · 2023
Vancouver · everydayThat's the long version.
If it sounds like someone you'd want on your team, or building your platform, say hello.
Get in touch