Galileo Enterprise Web Platform

As Senior Staff Full Stack Engineer at Galileo Financial Technologies (SoFi), I led an enterprise-wide initiative to modernize web architecture and standardize UX development across the organization. The goal was to unify disparate technologies and deliver a consistent user experience across all Galileo web applications, improving scalability and maintainability for multiple engineering teams.

Key Responsibilities:

  • Architected and developed an enterprise-grade React component library (25+ production-ready components)
  • Established comprehensive testing frameworks achieving WCAG 2.1 accessibility compliance
  • Implemented automated visual regression and integration testing, reducing QA cycles
  • Spearheaded cross-squad collaboration, reducing design-to-development handoff time by 50%
  • Mentored 8 junior/mid-level engineers in component development best practices
  • Authored technical documentation and guidelines, reducing onboarding time by 70% and support tickets by 45%
  • Architected automated build pipelines and versioning systems for seamless updates across 3 applications

Impact:

  • Modernized 3 major web apps, migrating from PHP/Angular to React/Next.js with 99.99% uptime
  • Reduced duplicate code by 60% and improved system reliability
  • Increased deployment frequency from weekly to 5+ daily deployments
  • Achieved 100% adoption across 3 engineering squads, directly impacting 20+ developers
  • Reduced onboarding time from 2 weeks to 2 days and code review cycles by 50%

Galileo AI Developer Productivity Initiative & Config Assist PoC

As Senior Staff Full Stack Engineer at Galileo Financial Technologies, I actively contribute to the “Month of AI” initiative, a program dedicated to exploring AI tools to boost developer productivity and satisfaction. My work includes evaluating and establishing best practices for AI tools (notably Cursor IDE), and rapidly delivering production-ready features such as a Next.js “Notes” app using Figma imports and AI-assisted coding.

A key highlight is architecting and developing the “Config Assist” AI chatbot PoC, which brings natural language capabilities to the Galileo Console. This solution leverages AWS Bedrock (LLM), a Python Model Context Protocol (MCP) server, and a Next.js Vercel AI SDK frontend to enable users to query, compare, and understand 650+ product configuration parameters using natural language. The PoC demonstrated a 75% reduction in complex query time and an 80% decrease in config promotion errors, with a clear path to production readiness.

Key Responsibilities:

  • Led adoption and guideline creation for AI tools (Cursor IDE) used by 10+ developers
  • Developed a production-ready “Notes” feature in Next.js with AI-assisted workflows
  • Collaborated with senior management on feedback and success metrics for the initiative
  • Architected and delivered the “Config Assist” PoC chatbot, integrating AWS Bedrock, FastMCP, and custom embeddings
  • Designed UI features for summarization and comparison of complex configurations
  • Outlined expansion and next steps for the PoC, sharing technical knowledge with peers

Impact:

  • Reduced development time for new features by 50% using AI-assisted workflows
  • Improved developer satisfaction and productivity (targeting 15%+ MR throughput increase)
  • Enabled users to analyze complex configurations in minutes instead of hours
  • Demonstrated technical leadership in rapidly applying cutting-edge AI and web technologies

TripIt Vue Web app

I am currently leading a dev team in developing TripIt’s new Web Application built from the ground up in VueJS. My initial goal was to create a POC that integrates with TripIt’s existing infrastructure of AWS ECS containers and CI/CD pipeline. Next, I deep dived into authentication mechanisms and created RFCs for team input. We decided upon industry best practices and chose cookie based mechanism over OAuth2 to reduce attack vectors.

Some of my responsibilities included doing architectural reviews with the threat modeling team, mentoring junior developers and creating onboarding documents. Before getting into the daily feature work, I also setup a comprehensive serializer/deserializer framework to abstract out our legacy API in order to reduce work when we transition to the new API.

As we rolled this app out in EU first, I had some significant challenges to overcome before we could launch. In particular, our old web app was only avalable to US, while our mobile app worked in EU and US. A lot of our code was written under the assumption that only mobile would ever work in EU. I needed a way for browser cookies to maintain sessions for EU, which required a good amount of collaboration with other senior engineers.

Some of the more interesting features that I worked on in this project include COVID Guidance, account email management, localization and inbox synchronization.

TripIt Vue Web app screenshot

Slots Challenges

Designed and implemented the core logic in PHP for a framework in Zynga Hit It Rich! Slots game that presents players with tasks/challenges which when completed grants them rewards. This has been extended and used for multiple features and events, all configurable from a single feature-rich admin page made in React JS and Redux.

Since these features are timed events, servers were usually under heavy load during this time. To mitigate this, I implemented a caching strategy for storing the latest configuration files in each web server as well as in-memory.

Slots Challenges screenshot

Galileo Enterprise Database Environment Standardization

At Galileo Financial Technologies, I initiated and led a transformative test database infrastructure modernization project that fundamentally changed how UX development teams worked with data. The project addressed critical challenges in the development pipeline, enabling efficient, isolated, and reproducible environments for multiple squads and local development on modern hardware.

Key Responsibilities:

  • Architected and implemented Oracle Container Database (CDB) and Pluggable Database (PDB) infrastructure within Kubernetes
  • Developed automated scripts and workflows for rapid creation/teardown of test environments
  • Created proof of concept for Oracle database compatibility with ARM-based MacBook systems
  • Built custom Oracle Docker images with company-specific schemas and seed data
  • Implemented visual testing capabilities in development pipelines
  • Established automated environment provisioning integrated with CI/CD
  • Designed AWS EFS-based storage for persistent database management
  • Authored maintenance tools and documentation for schema/seed data updates

Impact:

  • Reduced environment setup time by 75% and testing environment setup by 95%
  • Enabled concurrent development for 20+ developers across 3 squads
  • Achieved 100% compatibility with ARM-based MacBook systems
  • Reduced feature delivery time from weekly to daily releases
  • Reduced regression issues by 70%

Vue Slot Table (Open Source)

Vue Slot Table is a highly flexible and unopinionated table component for Vue 2 that leverages the power of scoped slots for maximum customization. Designed for performance and extensibility, it allows developers to define custom templates for columns, headers, and cells, making it easy to build complex tables with sticky columns, grouped headers, and custom cell rendering—all without imposing any CSS or design constraints.

Key Features:

  • Per-column templating and styling using Vue’s slot system
  • Support for column group headers and sticky columns
  • Custom cell rendering and row event handling
  • Functional component design for high performance
  • No built-in CSS—fully customizable by the user
  • Works seamlessly with native table features

Impact:

  • 100+ stars and 60+ forks on GitHub
  • Used by developers seeking a lightweight, flexible alternative to heavy table libraries
  • Open source under the MIT license

Explore the project on GitHub

YouSpot

I listen to a lot of YouTube song mixes to discover new music. But of the 20 odd tracks in the video, I usually like only a couple of them. So, I created this chrome extension which parses YouTube page data and adds them to your Spotify playlist of choice.

During this project, I had to find solutions for problems that I had never faced before. Dealing with CORS, especially in the Chrome Extension context was quite chalenging. This was also the first time I had used an OAuth flow (for Spotify Integration).

Image here shows a screenshot of a YouTube page with the YouSpot extension overlaid on the right side. The extension shows the songs that were parsed from the page that match a song name in Spotify. I chose most of the songs (green = selected, grey = unselected) and added them to one of my existing (or new) playlist in Spotify.

YouSpot screenshot

Geo Spatial Data Explorer

This product startup aimed to present complex geospatial data in easy-to-understand formats of Tables and Maps. I worked as Full Stack Engineer, all the way from the UI in VueJS to the deployment in Kubernetes including the backend in Flask/Python and managing user data in MongoDB.

I took ownership of the data table component and made a completely in-house open sourced VueJS table component that uses the power of scoped slots. Some of its features are sticky columns, grouped headers and unopinionated styling that allow end-users to customize the look and feel while not sacrificing functionality.

I also handled the Python mini-server code, which would interact with a much larger data API using Keycloak as its authentication mechanism. Consequently, I worked on all the token exchange mechanisms between various clients, Keycloak JavaScript library integration and Keycloak login page theming (using kubernetes init containers managed via Helm and Apache Freemarker).

Geo Spatial Data Explorer screenshot

JS Rendering Pipeline

In this project, I created the rendering pipeline in JavaScript in a single HTML page. The user can change position of object and lights in 3D space through the browser and see results immediately. The steps involved are world transformation, lighting calculation, view transformation, perspective transformation, z-clipping, culling, z-sorting and resterization.

I use a library called Sylvester to do matrix calculations and Raphael for rasterization. The native HTML5 canvas element created blurry lines due to anti-aliasing. In the future, I plan to access pixel data and implement Bresenham’s line drawing algorithm to render it in canvas.

Image here shows a screenshot of a 3D plane which is rendered as a series of pixels after going through the rendering pipeline. Click the Live Demo above to play with these values in real time.

JS Rendering Pipeline screenshot

Shapes AI Game

In this project, we created a game where we controlled a simple shape that required us to solve puzzles. The interesting thing was that some puzzles were only partially solvable by the player, the remaining part required a companion AI.

This AI would analyze the expected final state and the data it has at hand and figure out all possible ways in which it can succeed and then use the most optimal solution. If player changes state during this time, the AI would recompute its state.

Image here shows a screenshot of the player shape on its route to solve one of the puzzles. After this, the AI would have gone on to solve the rest of the puzzle

Shapes AI Game screenshot

Forest L-System

In this project, we created different types of tree structures using L-systems. In a forest, many such trees compete for light and fight against gravity (resulting in sagging trees due to “geotropism”)

We used Three.js for rendering the forest and a Turtle to draw the trees using grammar rules from the L-system theory.

Image here shows a screenshot of a snapshot of the forest after a few iterations of randomized seed distribution. Redder colors are older trees and generally taller. They grow and die, leaving the younger ones to thrive after a certain time, resulting in a very dynamic environment. Try out the Live Demo link above to see it in action

Forest L-System screenshot

Kinect Soccer

This is a graduate special problem that I did to track finger position using Microsoft Kinect (and OpenNI) and simulate soccer with it. Fingers are tracked using their position in 3D space (with depth information tracked by Kinect IR sensors). The slope of fingers is calculated in XY and YZ planes by approximation of an over-constrained problem.

This is then rendered in 3D through OpenGL. One of the challenges that I faced was that the Kinect provided gave high confidence values to depth information. I had to use neighboring pixel values to calculate my own confidence values so as to reduce jittering.

Image here shows a screenshot of the different states by which the RGB and depth info of the fingers is translated into fake legs in the 3D world

Kinect Soccer screenshot

Network Bandwidth Visualization

A huge network of routers had to be built for live TV feed transmission from different stadiums during the Commonwealth Games. The tool that I developed helped identify suitable positions for backup links, bandwidth utilization of every link and points of failure in the network. It also helped track primary and backup paths of individual TV feeds and provided a simple interface to monitor large amounts of live information in a browser window.

Image here shows a screenshot of data for one stadium. The color of the line between two routers represents the average utilization of all the links in that bundle, while feed paths are shown in glowing colors. The selected bundle contains 3 links, one of which carries the blue feed as shown in the table.

Network Bandwidth Visualization screenshot

JavaScript RayTracer

In this project, I created the rendering pipeline in JavaScript in a single HTML page. The user can change position of object and lights in 3D space through the browser and see results immediately. The steps involved are world transformation, lighting calculation, view transformation, perspective transformation, z-clipping, culling, z-sorting and resterization.

I use a library called Sylvester to do matrix calculations and Raphael for rasterization. The native HTML5 canvas element created blurry lines due to anti-aliasing. In the future, I plan to access pixel data and implement Bresenham’s line drawing algorithm to render it in canvas.

Image here shows a screenshot of a 3D plane which is rendered as a series of pixels after going through the rendering pipeline. Click the Live Demo above to play with these values in real time.

JavaScript RayTracer screenshot

Multi-Provider Social Auth & Email System

This website uses multiple social platforms for logging into the application including Facebook, Google and Twitch. I used PassportJS and NodeJS to accomplish the Oauth2.0 and Oauth1.0 (for Twitter) flows.

I used Redis for storing user session data since long-lived sessions were important. I also allowed a regular username/password login option with options to verify email and reset password. For this purpose, I used AWS SES to generate templates for sending custom emails to users.

Multi-Provider Social Auth & Email System screenshot

Cloud Infrastructure & Recovery (AWS, SAP.IO, Zynga)

Over the last couple of years, I have worked on multiple products within Amazon Web Services.

At SAP.IO, I monitored the usage of our unmanaged Kubernetes Cluster (before EKS) and reduced costs by 60% by downscaling them using kops.

I also worked through the high pressure process of restoring the latest EBS snapshot of an accidentally deleted volume that was attached to a super important EC2 node.

At Zynga, I oversaw the migration plan for moving volatile keys from internal Memcached solution to AWS Elasticache. I also wrote AWS Lambda functions in Python to handle automatic replacement of bad nodes.

I have also worked on Amazon SES templates and workmail integration in my side projects.

Let's Connect

Have a project in mind or just want to chat about tech? Find me on these platforms: