Portfolio
Tech Lead, Full Stack Engineer · May 2023 — Sep 2025

Webledger — Cloud Accounting SaaS, Led from Architecture to Production

Led all engineering decisions for a cloud accounting platform serving businesses across India and abroad. Responsible for architecture, feature delivery, AWS infrastructure, and a small team.

My Contribution

  • Led all architecture and data model decisions for the platform
  • Designed the API structure and service layer patterns
  • Built multi-firm invoicing, RBAC, Razorpay billing, dashboards, reporting, WhatsApp integration, and document pipelines
  • Automated GST lookup via AWS Lambda + third-party API caching
  • Rewrote PDF and Excel generation from scratch (memory issues under load)
  • Authored all CI/CD deployment scripts for EC2/ECS
  • Coordinated junior developers on feature delivery

Feature Deep-Dives

Multi-Firm Invoicing Engine

Supports SGST, CGST, IGST for Indian multi-state transactions and international VAT for global clients. A single invoice can span multiple firms within one org. Tax rules applied per line item based on GST category and transaction state.

RBAC at Module Level

Role-based access at the module level — each module (invoicing, payroll, reports, clients, settings) has independent permission gates. Roles are org-specific and composable.

GST Automation via Lambda

AWS Lambda function polls third-party GSTIN verification APIs on demand, caches results in Redis with configurable TTL. Accounting teams no longer manually look up GSTIN details mid-workflow. Cache invalidated on GSTIN update.

Document Pipeline Rewrite

Rebuilt PDF generation (invoices, statements, reports) and Excel export from scratch using Node.js streaming. Previous system had memory leaks under concurrent load — rewrote to use streaming buffers, materially improving throughput and stability.

Razorpay Integration

Subscription plan management, webhook handling for payment events (payment.captured, subscription.charged, payment.failed), trial → paid conversion flows, plan upgrade/downgrade logic.

WhatsApp Integration

Third-party API bridge for sending invoices, payment reminders, and broadcast messages to client contact lists directly from the web app. Contact-based routing — messages thread per contact, not per phone number.

Draggable Dashboard

User-configurable widget layout using drag-and-drop. KPI cards, task summaries, invoice status widgets. Layout saved per user to database — persists across sessions.

Stack

Backend
Adonis.jsNode.jsC#Python
Frontend
Vue.jsTypeScript
Data & Infra
MySQLRedisAWS LambdaAWS S3AWS EC2