Suraj Menon

Bengaluru, IN · Forward Deployed Engineer at Plivo

Suraj Menon

I ship what I start.

Every one of these began as a problem — mine, a customer's, or a team's. The good ones stopped being only mine.

Scroll down to know more about me

surajsm218@gmail.com · github.com/Surajsm60720 · www.linkedin.com/in/surajmenon60720 · x.com/surajsm223 · www.instagram.com/stargazer60720 · surajmenon.vercel.app/cv.pdf

Work

Every one of these started as a complaint

Ordered by what they took, not by when they happened.

Every anime client I tried wanted an account, an ad, or a subscription.

Saizen

A personal iOS anime client that resolves installable stream modules and plays them in a custom native player.

Watch installs source modules rather than shipping a fixed scraper, so a broken source is a module update instead of an app release. Playback runs through custom AVPlayer chrome with AniSkip opening and ending marks, gesture seeking and speed control. Downloads hold a resilient queue with pause, resume and offline library playback; AniList and MAL sign-in back the home rails.

  • v1.4.2
  • Sideload only
  • HLS + MP4
  • AniList / MAL
  • Next.js
  • Capacitor 7
  • Swift
  • AVPlayer
  • TypeScript

Written firstModule contractSecurity test plan

Nobody notices a lake is dying until it already has.

NammaLakes

A distributed IoT system monitoring the health of urban lakes in real time.

Sensor readings move through RabbitMQ into fault-tolerant FastAPI microservices with structured logging, so a failing node degrades the feed rather than dropping it. An Isolation Forest model flags water-quality anomalies automatically, and the dashboard renders the live series without waiting on a full refresh.

Published in IJLTEMAS, 2025.

  • 3 sensors @ 5s
  • 17,000+ points/day
  • Isolation Forest
  • FastAPI
  • RabbitMQ
  • Vite + React
  • Recharts
  • PostgreSQL
I kept missing things I had already told myself I would remember.

LifeOS

A calendar-centric iOS app for tracking day-to-day life, game events and entertainment progress — locally, with no accounts.

One entry model covers IRL plans, gacha-game cadence and reading logs, with recurrence and occurrence-level completion. A Dynamic Island Live Activity surfaces today at a glance, an Ongoing Events tab holds multi-day windows and the current weekly or monthly cycle, and everything stays on device behind an optional Face ID lock with JSON backup and restore.

  • v1.0.2
  • Local-first
  • Live Activity
  • No accounts
  • Swift
  • SwiftUI
  • WidgetKit
  • MapKit
You cannot tell whether a model fits on the device until after you have already compressed it.

NanoPrune Canvas

A browser toolkit for simulating magnitude pruning and post-training quantization before deploying to edge hardware.

Upload a PyTorch or ONNX model and it parses the architecture into an interactive node graph, colour-coding edges by weight magnitude. Pruning threshold and quantization precision update global and per-layer sparsity live, and the hardware panel reports flash and SRAM fit, inference time, energy per inference and battery life across a catalogue of embedded targets.

  • 26 embedded targets
  • FP32 → INT4
  • PyTorch + ONNX
  • FastAPI
  • Next.js
  • React Flow
  • Recharts
  • PyTorch
Fresh install, twelfth time, and I am looking up the package manager syntax again.

Linux Starter Pack

A cross-platform TUI that installs your usual packages on whichever distribution you just landed on.

Detects the package manager, resolves dependencies and falls back intelligently when a package is named differently downstream. Mirror latency is checked in parallel so downloads pick a live mirror instead of the default one, and every generated command is reviewable before it runs.

  • 12 distributions
  • 60% faster installs
  • Parallel mirror checks
  • Python
  • Textual
  • Next.js
  • Tailwind CSS
The answer was somewhere in this chat, forty messages ago.

LLM Chat Navigator

A browser extension that indexes your own prompts in a long LLM conversation so you can jump straight to one.

Builds a searchable index of every message in the thread and scrolls to any of them on click, with live filtering and a running count. Handles platforms that lazy-load older messages as you scroll up, so the index keeps growing instead of silently truncating.

Published on the Firefox add-ons store.

  • ChatGPT + Gemini
  • Lazy-load aware
  • JavaScript
  • WebExtensions API

Escaped

Where it was for other people

Three internships. The constraint changes; the work does not get easier.

  1. Feb 2026 — Present

    Current

    Forward Deployed Engineer Intern · Plivo

    Built and shipped an internal automation in Python and n8n that the support team now uses daily: on ticket creation it queries Redshift for the customer's recent call and message history and posts an LLM-generated summary, removing the manual log lookup that used to precede every triage. Debugs production voice and messaging failures across Plivo Voice, SMS, WhatsApp, Verify, Zentrunk SIP trunking and PHLO, running root cause analysis through application logs, OpenSearch, Wireshark packet captures and Postman replay. Instrumented customer traffic monitoring in Grafana to catch capacity and rate-limit problems before they became outages.

    • Shipped internal tooling, used daily
    • 200+ tickets/month
    • APAC · EMEA · US
    • Python
    • n8n
    • Redshift
    • OpenSearch
    • Grafana
    • Wireshark
    • SIP / Voice APIs
  2. Oct 2025 — Feb 2026

    Full Stack Developer Intern · Jabsz Gaming Studios

    Led a full UI/UX redesign of the company website, then migrated the production frontend from React to Next.js App Router, integrating legacy JavaScript and global CSS through custom build tooling. Also moved the production database off Firebase onto Supabase, porting the data into a relational PostgreSQL schema and rewriting every client-side access path against the new SDK.

    • Lighthouse 50 → 90
    • Firebase → Supabase
    • React → Next.js
    • Next.js
    • React
    • TypeScript
    • Supabase
    • PostgreSQL
    • WebP
  3. Jun 2025 — Aug 2025

    Full Stack Developer Intern · BharatCrest

    Built HRMatcher, a recruitment platform automating candidate screening with skill-based filtering and similarity ranking through the Google Gemini API. Also developed a full-stack restaurant management system with real-time order tracking, billing and automated inventory with low-stock alerts.

    • 100+ resumes in <5 min
    • 20–30% faster load times
    • React
    • FastAPI
    • Python
    • TypeScript
    • Gemini API
    • SQLite

Ship log

Releases, not resolutions

Most recent first. Releases sync from GitHub each week.

  1. Aug 2026

    Saizen site

    One-page static site for the app. No animation dependencies.

  2. Aug 2026

    LifeOS site

    Rebuilt from a single-file prototype onto Next.js.

  3. Aug 2026

    Saizen v1.4.2

    Home personalization reliability and liquid-glass chrome controls. Shipped in-app, not as a GitHub release.

  4. Aug 2026

    LifeOS v1.0.2

    Map-first place picker and occurrence-cycle Ongoing Events.

  5. Aug 2026

    Saizen v1.0.0

    First release

  6. Mar 2026

    NanoPrune Canvas

    Pruning and quantization simulator with edge-hardware fit analysis.

  7. Feb 2026

    Started at Plivo

    Forward Deployed Engineer Intern.

  8. Nov 2025

    LLM Chat Navigator

    Published on the Firefox add-ons store.

  9. Oct 2025

    NammaLakes paper

    Published in IJLTEMAS.

  10. Sep 2025

    i-made-an-oopsie

    A recovery script, written after the fact. Repeatedly.

Releases last synced 2026-09-07.

Proof

On the record

  • Publication

    NammaLakes: IoT-Based Real-Time Distributed Lakes Monitoring System

    International Journal of Latest Technology in Engineering, Management and Applied Science · 2025

    A distributed IoT architecture using RabbitMQ and ML-based anomaly detection for real-time water quality monitoring.

    DOI
  • Education

    B.E. Information Science, Dayananda Sagar College of Engineering

    VTU · Bengaluru · 2022 — 2026

    CGPA 8.9

  • Certification

    The Complete Full-Stack Web Development Bootcamp

    Udemy · 2025

    Certificate

Rhythm

When the work actually happens

Two peaks, not one — 10:00 and 20:00: before the day starts and after it ends. Tinted bars are the hours after 19:00 and before 06:00 in Bengaluru — how much of this lands at night, rather than a claim about it.

  1. 00:001 commit
  2. 01:000 commits
  3. 02:002 commits
  4. 03:001 commit
  5. 04:001 commit
  6. 05:000 commits
  7. 06:005 commits
  8. 07:0011 commits
  9. 08:0023 commits
  10. 09:0016 commits
  11. 10:0037 commits
  12. 11:0016 commits
  13. 12:0013 commits
  14. 13:009 commits
  15. 14:0015 commits
  16. 15:0015 commits
  17. 16:0013 commits
  18. 17:0015 commits
  19. 18:0013 commits
  20. 19:0019 commits
  21. 20:0060 commits
  22. 21:0012 commits
  23. 22:0032 commits
  24. 23:0012 commits

341 commits · 20 repositories · merges excluded · synced 2026-09-07

Stack

Each one, and where it was used

A tool with no project next to it is not a tool I know.

Languages

TypeScript
Saizen · NanoPrune · this site
Python
NammaLakes · NanoPrune · Linux Starter Pack
Swift
Saizen · LifeOS
SQL
NammaLakes · HRMatcher
Bash
i-made-an-oopsie

Frontend

Next.js
Saizen · LifeOS site · Jabsz migration
React
NammaLakes · TravelEase · HRMatcher
SwiftUI
LifeOS
Tailwind CSS
Linux Starter Pack · TravelEase
Recharts
NammaLakes · NanoPrune

Backend

FastAPI
NammaLakes · NanoPrune
Node.js
TravelEase
RabbitMQ
NammaLakes
SIP / Voice APIs
Plivo

Data & cloud

PostgreSQL
NammaLakes
Supabase
TravelEase
Amazon Redshift
Plivo triage automation
OpenSearch
Plivo — log and trace search
Vercel
Everything with a live link

Tooling

Docker
NammaLakes
GitHub Actions
Saizen · LifeOS
n8n
Plivo automation
Grafana
Plivo — traffic and concurrency
Wireshark
Plivo — PCAP root cause
Capacitor
Saizen