The Problem
Tax-aware rebalancing and TLH are hard to do correctly from raw holdings without spreadsheets and mistakes. Brokerage statements and portfolio exports come in messy, inconsistent formats. Users are rightfully concerned about uploading sensitive financial data. And requiring signup too early kills conversion.
The Solution
Built a consumer-facing tool with a secure signed URL upload pipeline (time-limited access, no permanent server storage), a dedicated harvest algorithm for tax-optimal sell sequences, and a guest mode that lets users try the full experience before creating an account. Admin-configurable limits provide business flexibility without code deploys.
Product Decisions
- Signed URL uploads instead of direct uploads—safer, time-limited access, scales better
- Guest mode first to reduce friction and let users validate value before commitment
- Educational approach: explain *why* each trade is recommended, not just what to do
- Statement upload meets users where they are (PDFs/Excel) rather than API-first
- Admin-configurable guest limits for business flexibility without deploys
Architecture
React 18 with TypeScript, Vite build, Tailwind CSS, context-based state management
Firebase Cloud Functions for signed URLs and PDF/Excel parsing
Cloud Firestore for user data and portfolios
Firebase Auth, getSignedUploadUrl callable for secure uploads
XHR PUT with progress tracking, PII redaction service
Technical Highlights
- Signed URL upload pipeline: Cloud Function generates time-limited URL → XHR PUT with progress → strict validation
- Harvest algorithm with tax-lot selection (FIFO or tax-optimized), ST/LT classification, cross-offset calculations
- Tax budget enforcement—stop selling when cumulative tax exceeds user-defined limit
- Guest vs registered user flow with GuestContext and admin-configurable limits (portfolios, rebalance counts)
- File validation: PDF statements ≤25MB, portfolio files (Excel/CSV/JSON) ≤10MB
- PII redaction service for sensitive data removal before processing
Results & Outcomes
- Live production site at taxrebalancer.com
- Demonstrates end-to-end product thinking from problem to solution
- Combines domain expertise (FINRA Series 7/63) with engineering skills
- Forced real product tradeoffs around privacy, onboarding friction, and secure cloud processing
What I'd Do Next
- Additional brokerage PDF format support
- Recurring rebalancing schedules
- Direct brokerage API integration for real-time data
- Wash-sale guardrails for TLH candidates