About

Solution-oriented and problem solver with 6 years of experience building and maintaining 9 different products and their architecture. Highly skilled in communication, collaboration, and technical documentation. I live for good UX. I sometimes write blogs, love to grow plants, cook, play flute and travel.

Looking forward to new challenges and exciting collaborations!

Experience

  1. 15 February, 2022 — Present

    Created and maintained algorithms for orderflows (buy, manage, rebalance, exit) in investment platforms for Indian/US equities and mutual funds. Fixed ROTA tasks with end-users...

    • ReactJs 18
    • Javascript
    • TypeScript
  2. 01 July, 2019 - 14 February, 2022

    • Mindtree (LTI) logo BCG
    • Mindtree (LTI) logo GE Healthcare
    • Mindtree (LTI) logo Internal

    Was a part of the COE (center of excellence) team, conducted code reviews, developed multiple POCs, and assisted teams in overcoming blockers while enhancing code quality. Bu...

    • ReactJs
    • Node.JS
    • SCSS

Apps

  1. Local Safe icon

    Local Safe

    Android

    Privacy-first offline vault for cards, docs & bank details

    An offline-only Android wallet that stores your cards, documents, bank accounts, and addresses on-device with AES-256 encryption. Zero cloud sync, zero tracking, zero ads. Supports biometric & PIN auth, NFC card reading, camera OCR, optional Google Drive backups, and address auto-fill via reverse geocoding — all locally processed.

    • React Native
    • Android
    • AES-256
    • Biometrics
    • NFC
    • OCR
    • Google Drive
    Coming soon Privacy Policy
  2. Mac Gesture icon

    Mac Gesture

    Desktop macOS only

    Custom multi-finger trackpad gestures for macOS

    Map 3-finger, 4-finger, and 5-finger trackpad taps to configurable actions — middle click, keyboard shortcuts, system controls, and more. All your existing swipe and pinch gestures keep working.

    • Swift
    • macOS
    • CGEvent
    • MultitouchSupport
    First-time setup
    1. Open the DMG → drag MacGesture.app into Applications
    2. Remove the quarantine flag (required because the app is not notarized):
      xattr -cr /Applications/MacGesture.app
    3. Open MacGesture → grant Accessibility permission when prompted
    4. Tap your trackpad!

    Without the xattr step, macOS will show "the app is damaged" — this is normal for unsigned apps downloaded from the internet. You only need to do this once per version.

  3. React Secret Easter Egg icon

    React Secret Easter Egg

    Web

    Custom React hook library for adding hidden easter eggs to your apps

    A React hook library designed to help developers add hidden easter eggs to their applications. Supports key combinations, mouse click patterns, and voice commands as activation triggers with customizable callbacks and TypeScript support.

    • React
    • JavaScript
    • TypeScript
    • Hooks
  4. Avifify icon

    Avifify

    CLI

    Convert images to AVIF — on demand, in CI, or as a git hook

    Production-ready CLI and programmatic API to convert JPEG, PNG, WebP, TIFF, GIF, BMP, and HEIF images to AVIF using sharp/libvips. Parallel encoding with smart defaults, skip-if-larger protection, dry-run previews, JSON Lines output for pipelines, and one-command pre-push / pre-commit git hook installation (Husky-aware). Configurable via .avififyrc.json, package.json, or CLI flags — delivering 30-60% smaller assets than JPEG and 20-40% smaller than WebP at equivalent quality.

    • Node.js
    • CLI
    • AVIF
    • sharp
    • libvips
    • Git Hooks
    • CI/CD
  5. CommitConfetti icon

    CommitConfetti

    CLI

    Celebrate every git commit with sound and a native notification

    A cross-platform Node.js CLI that hooks into git's global `core.hooksPath` to fire a tier-based celebration on every commit — first-of-day fanfare, big-commit chime, or a quiet acknowledgement. Plays OS-native sounds (afplay/paplay/PowerShell) and posts notifications via node-notifier on macOS, Linux, and Windows. Detached post-commit trigger keeps commits instant, idempotent install/uninstall preserves your existing hooks path, and config + stats live in `~/.config/commitconfetti/`. Free, MIT, zero telemetry.

    • Node.js
    • TypeScript
    • CLI
    • Git Hooks
    • node-notifier
    • commander
    • Cross-platform
  6. Food Timetable icon

    Food Timetable

    Web

    Weekly meal planner with randomizer, swap, and exports

    A browser-only meal planner for the household. Maintain a tagged dish inventory (breakfast/lunch/dinner), generate a 7-day timetable with a soft-constraint randomizer that avoids back-to-back repeats, swap meals between cells, and pick 1–3 alternates per slot for the cook. Export to PNG/CSV/JSON or print-friendly HTML. All data stays in your browser — no account, no cloud, no server.

    • React
    • TypeScript
    • Astro
    • localStorage
    • html2canvas
  7. Text Extractor icon

    Text Extractor

    Desktop

    Drag-to-OCR any region of your screen — 100% local

    A cross-platform Tauri tray app that extracts text from any region of your screen — including text inside images, videos, and other non-copyable interfaces — using local Tesseract OCR. Press the global hotkey (Cmd+Shift+T on macOS, Ctrl+Shift+T on Windows/Linux), drag a rectangle, and the recognized text lands on your clipboard. No cloud calls, no account, no telemetry.

    • Tauri 2
    • Rust
    • React
    • TypeScript
    • Tesseract OCR
    • xcap
    First-time setup
    1. Open the DMG → drag Text Extractor.app into Applications
    2. Remove the quarantine flag (required because the app is not notarized):
      xattr -dr com.apple.quarantine "/Applications/Text Extractor.app"
    3. Launch Text Extractor → grant Screen Recording permission when macOS asks (System Settings → Privacy & Security → Screen Recording)
    4. Press Cmd+Shift+T anywhere → drag a rectangle → paste

    Without the xattr step, macOS will show "the app is damaged" — this is normal for unsigned apps downloaded from the internet. You only need to do this once per version. Without Screen Recording permission, captures will come back black.

Blogs

  1. No `querySelector()` for testing React components thumbnail

    Because that is not how the user would find the element on the screen.

    • #react-testing-library
    • #best-practices
    • #accessibility
  2. Shortcuts for VSCode macOS+windows thumbnail

    There are a countless number of shortcuts, I am only writing the ones that I use daily.

    • #vscode
    • #code
    • #hacks
    • #fast
    • #ninja
    • #senior-dev
  3. React - Error handling with (HOC) thumbnail

    How can we avoid blank screens using error boundaries as (HOC).

    • #react
    • #hoc
    • #error
    • #errorHandling
    • #errorBoundary