Umakant Vashishtha
Engineer, Teacher, Blogger
About Me
I am a Software Engineer from India 🇮🇳 with around 3 years of experience in web and mobile development across multiple industries such as Fintech, e-commerce, entertainment, SaaS, etc. I am currently working at Razorpay as a Software Development Engineer.
I am interested in Problem Solving, Application Design Patterns, Software Archicture, Product Management and also enjoy teaching Software Development. I am always trying to learn something new. Currently I am learning Kubernetes, Web3.0 and Github workflows.
I have strong skills in JavaScript, Typescript, React, React Native, GraphQL, Node.js, Sequelize, PostgreSQL, MongoDB, AWS. I have developed cross-platform applications for Web, Android, iOS, Desktop using latest tools.
Blog
All Posts →Generics in Java
Implementing generics in Java
Sep 22, 2024 · 25 mins
Collections in Java
Review collections in Java
Sep 22, 2024 · 25 mins
Using Reflection in Go
Using Go's reflect package to filter based on selective fields on struct
Mar 10, 2024 · 15 mins
C++ Data Structures Handbook
A handbook of built-in data structures and their methods with examples and complexity analysis.
Feb 01, 2024 · 45 mins
Buffered vs Streaming Data Transfer
Comparing buffered and streaming data transfer in Node.js server
Oct 27, 2023 · 15 mins
Resources
I have prepared the following resources in an attempt to educate and help other engineers who are interested in learning the topics I have covered.
Video Lectures
Content
Problem Solving: Algorithms, Data Structures and Low Level Design
List of essential question which can help you practive Algorithms and Data Structures quickly.
You can also find system design questions like LRU (Least Recently Used) Cache, Multiset, Min-Stack, etc.
Notes from Head Design Design Patterns
This is a collection of notes from the book Head First Design Patterns by Eric Freeman and Elisabeth Robson. This book is a great resource for learning design patterns.
Interactive Problems with which visualizations help
Game of Life
Conway's Game of Life is a cellular automaton devised by the British mathematician John Horton Conway in 1970. It is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input.
Oct 1, 2024 · 20 mins
Sand Pile
Adding grains to a sand pile and finding the final state.
Sept 29, 2024 · 20 mins
Experience
Razorpay
Bengaluru, India
Working as Backend Engineer at RazorpayX
Senior Software Development Engineer
- Led the complete architecture, design and development of a microservice for managing and verifying vendors KYC details for onboarding and editing vendor with approval workflows with a team of 6+ engineers, setup on-call process with observability via metrics and alerts, optimized bottlenecks, powered 1500+ vendors for 10+ merchants with 500+ RPS
- Mentored juniors and created guidelines for backend development for minimizing code review process
- Created Razorpay's VS Code Extension to enable GenAI Powered single-click Payment Integration - LinkedIn Post Youtube Demo
- Worked on Pricing/Billing systems, complex batch processing system to recover fee as per usage equipped with atomicity & retry mechanisms . Found loopholes, fixed pitfalls and improved performance to scale for a larger number of customers, reducing the leakage of automated fee collection by ~80% (> 1 Cr). Used AWS SQS for queue, as Redis for mutex, set up critical alerts. Later built dashboard for visibility into the performance of fee recovery, implemented with data analytics through Looker
Software Development Engineer
- Owned the solutioning and led the development as engineering owner of big bet projects such as supporting multiple Current Accounts for 30+ enterprise customers, migration and onboarding of ~50k customers from existing unsupported payout system to new Pay-On-Behalf-Of scheme as per RBI guidelines, ensured good planning and timely delivery for time-sensitive projects, having multiple components with different stakeholders
- Found bottlenecks in existing slow APIs by profiling (using Go’s pprof) and monitoring (Grafana, prometheus) and improved performance by optimizing SQL queries and replacing slow packages, reducing latency from 8s to 200ms
- Led the design, development and delivery for collaborative platform to manage onboarding and activation of Current Accounts at RazorapyX, features like reporting, comments, status management while maintaining backward compatibility requiring data migration. Enhanced the conversion funnel up to 45% by automating certain actions of document generation and email communications and creating internal dashboard and tools to facilitate easy operational activities
- Carried out critical reviews of PRs and Tech Specs to ensure following of design patterns, best practices and test-driven development with backward compatibility and retry mechanisms, mentored interns and juniors and helped with finding solutions, and gaining knowledge around product and codebase
- Spearheaded planning and migration of our pod’s code module from PHP monolith to Golang microservice serving 70k+ merchants
- Maintained and monitored services owned by pod and managing on-call responsibilities, tech stack includes Docker, Kubernetes, Kafka, Observability (Prometheus, Grafana, Sumologic, Hypertrace, Jaeger, etc)
Technologies Used:
Golang, Kubernetes, Docket, MySQL, PHP (Laravel), Apache Kafka, Grafana, Prometheus, SumoLogic, Test-driven development, CI/CD, HyperTrace, React, Nodejs, Salesforce etc.
Butterpaper
Gurugram, India
Founding Full Stack Software Developer
- I led the development of a complete agri-tech e-commerce SaaS platform with multiple components like Customer App, Admin Dashboard, Delivery Management System, Analytics Dashboard with features like Built-in Wallet, Automatic Subscriptions, Catalog Management with Product Variants & Categories from scratch.
- Completely managed Design, Development and Deployment with a team of 2 other Software Developers and 2 Interns. Later modified the whole codebase to support multiple organizations for the SaaS model.
- Took decisions pertaining to the technology used, development and deployment workflow.
- Directly reviewed code written by the team for security issues. Designed and implemented an end-to-end traceability solution.
- I developed a delivery system which handled - assignment of orders to delivery executives based on location, submission of assigned deliveries by a rider, dashboard to view the delivered orders with various other analytics.
- I created various customer metrics for analysis by writing complicated SQL Queries.
Technologies Used:
Nodejs, Typescript, PostgreSQL, React, GraphQL (Apollo), React-Native, MongoDB, Message Queue and Schedulers, AWS (SES, EC2, Lambda, Load Balancer), Nginx, Prisma, Sequelize, TypeORM, DLT etc.
CredFlow
Delhi, India
Software Development Engineer
- Designed and implemented Subscription Management with different pricing plans and usage-based SMS Credit System, an Admin Dashboard to view and manage organizations and their subscriptions.
- Built a new service to execute jobs to optimize the analytics dashboard
- Built internal tool to send personlized marketing emails to users using data from CSV with markdown template and editor.
Worked on features to build custom Invoices and Receipts directly in the application, - Contributed in Product Roadmap and Management, suggested potential features, improvements in security and some task automation. It helped us secure our users account and prevented potential threats from exposing customer data.
- Built a new dashboard for our customers' clients to track their invoices, payments, communications, etc.
- Refactored React code to support code-splitting and optimized bundle sizes
Software Development Engineer Intern, Delhi
- Task Management CRM with Due Date and Email/SMS Reminders with daily task reminder emails
- Analytical Dashboard containing Sales, Collections, Outstanding and Average Collection Period Trends
- Machine Learning models for Payment Projection Dashboard using payment history producing Average Payment Period
- Designed and implemented Incentive Scheme Management with discount feature to enable early payments
- Handled sending emails via SES and automatically forwarding emails to dynamically generated email addresses. Worked on setting upAWS SES, & Lambda to automate send emails and email forwarding for virtual email addresses.
Technologies Used:
Nodejs, PostgreSQL, React, Electron, Message Queue, Puppeteer, AWS (SES, EC2, Lambda), etc.
Others
Masai School
Part-time Instructor
I instruct a 3-weeks backend development course each month with Nodejs, Express, MongoDb, OAuth, Passportjs and AWS
Skills
Languages
- Javascript, Typescript, NodeJS
- Golang
- C++
- PHP
- Python
Frameworks
- React, React-Native, NextJS
- Express, GraphQL, Socket.io, Laravel, Gin
- Prisma, Apollo Graphql
- Sequelize, TypeORM, Mongoose
- Jest for Unit Testing
Databases & Queues
- Postgres, MySQL
- MongoDB, DynamoDB, Cassandra
- Redis, ElasticSearch
- Kafka, AWS SQS
Deployment/DevOps
- AWS (EC2, RDS, S3, EB, Route 53, Load Balancer, SES)
- Heroku
- Docker, Kubernetes
- CI/CD - Github Workflows, TravisCI
- Observability - Grafana, Jaegar, Prometheus
Education
Interests
- Low Level Design
- Competitive Programming
- Web Development
- Machine Learning
- Data Analysis
- Robotics
- Mathematics