Back to Projects
November 2020 - February 2021 Full Stack

Personal Finance Insights Platform

Full-stack engineer building a personal finance app with bank aggregation, spending alerts, and payment tracking using Plaid integration.

A fintech startup building personal finance management tools with bank account aggregation and intelligent spending insights

Project Overview

Built a personal finance management application that helps users understand and manage their spending through intelligent alerts and insights. The platform aggregates bank account data via Plaid and provides actionable notifications about large transactions, upcoming payments, and spending trends.

The Product

Spendfriend connects to users’ bank accounts and credit cards to provide:

  • Spending Alerts: Notifications when large transactions occur
  • Payment Tracking: Reminders for upcoming credit card payments
  • Financial Insights: Analysis of spending patterns and trends
  • Account Overview: Unified view of all connected accounts

Technical Architecture

Backend (Ruby on Rails)

RESTful API built on Rails 5.2 with comprehensive financial services:

  • Database: PostgreSQL for transactional data
  • Cache/Queue: Redis with Sidekiq for background jobs
  • Authentication: Firebase Auth integration
  • Bank Data: Plaid API for account aggregation
  • Notifications: Twilio SMS and SendGrid email
  • Security: Field-level encryption for sensitive data
  • Scheduling: Whenever gem for cron job management

Frontend (React)

Modern React application with robust state management:

  • State Management: Redux with Redux-Saga for side effects
  • Data Normalization: Immutable.js with Normalizr and Reselect
  • Styling: Tailwind CSS with styled-components
  • Authentication: Firebase SDK
  • Forms: Formik with Yup validation
  • Bank Connection: react-plaid-link for account linking

Key Contributions

React Frontend Development

Built the React frontend with comprehensive state management (96 commits):

  • Developed financial dashboard with Redux-Saga for complex async flows
  • Implemented data normalization with Immutable.js, Normalizr, and Reselect
  • Built responsive UI with Tailwind CSS and styled-components
  • Integrated react-plaid-link for bank account linking flow

Rails Backend & Plaid Integration

Developed the Rails API with bank aggregation (68 commits):

  • Integrated Plaid API for account aggregation and transaction data
  • Implemented webhook processing for real-time transaction updates
  • Built field-level encryption using attr_encrypted for sensitive financial data
  • Set up Sidekiq background job processing for alerts and sync

Alerting & Insights Services

Built intelligent financial analysis services:

  • Implemented large transaction detection (>$100 purchases)
  • Created credit card payment due date tracking with 14-day advance warnings
  • Built filtering logic to reduce noise from regular payment transactions
  • Developed liability data fetching from Plaid for accurate due dates

Created comprehensive financial metrics tracking:

  • Built income analysis for deposits to checking/savings
  • Implemented spending analysis for credit card and account withdrawals
  • Created account balance tracking and savings calculations over time
  • Developed structured insights for dashboard display

Key Services

Alerts Service

Intelligent notification system detecting:

  • Large transactions over $100
  • Upcoming credit card payments (14-day advance warning)
  • Filters out regular payment transactions to reduce noise
  • Fetches liability data from Plaid for accurate due dates

Insights Service

Financial analysis providing:

  • Historical analysis of large transactions (30-day window)
  • Credit card due date warnings
  • Transaction categorization
  • Structured insights for dashboard display

Comprehensive financial metrics:

  • Income analysis (deposits to checking/savings)
  • Spending analysis (credit card and account withdrawals)
  • Account balance tracking
  • Savings calculations over time

Plaid Integration

Real-time bank data synchronization:

  • Account connection and storage
  • Transaction ingestion and updates
  • Webhook processing for real-time updates
  • Liability data extraction for credit accounts

Key Features

Account Aggregation

Connect and monitor multiple accounts:

  • Checking and savings accounts
  • Credit cards with balance and due date tracking
  • Unified dashboard across all institutions
  • Secure OAuth-based bank connections

Smart Alerting

Proactive notifications:

  • Large purchase detection
  • Payment due reminders
  • Customizable alert thresholds
  • Multi-channel delivery (SMS and email)

Visualize financial health:

  • Income vs. spending over time
  • Savings rate tracking
  • Credit utilization monitoring
  • Historical comparison

Security

Bank-grade security measures:

  • Firebase authentication with JWT validation
  • Field-level encryption using attr_encrypted
  • Secure Plaid token management
  • No storage of bank credentials

Technologies Deep Dive

The technology choices balanced rapid development with financial security:

  • Plaid provided bank-grade account aggregation without PCI compliance burden
  • Firebase Auth enabled secure, scalable authentication with minimal setup
  • Sidekiq handled background processing for alerts and notifications
  • Redux-Saga managed complex async flows for financial data fetching
  • attr_encrypted added field-level encryption for sensitive transaction data

Technologies

React Redux Ruby on Rails PostgreSQL Redis Sidekiq Plaid Firebase Twilio SendGrid Tailwind CSS Docker

Key Highlights

  • Built React frontend with Redux-Saga and Tailwind CSS for financial dashboard
  • Developed Rails API with Plaid integration for bank account aggregation
  • Implemented intelligent alerting for large transactions and upcoming payments
  • Created trends analysis for income, spending, and savings tracking
  • Integrated multi-channel notifications via Twilio SMS and SendGrid email