Project: SoFi





Experimentation Platform Accelerator
SoFi
A lightweight experimentation platform that enables rapid testing and validation of new features through A/B testing and data-driven insights.
Project Demo
Project Metrics
Project Details
The Experimentation Platform Accelerator accelerates innovation by providing a structured approach to testing and validation, reducing the technical overhead of implementing experiments. It helps SoFi rapidly test and validate new features to maintain competitive advantage.
Business Value
- Data-Driven Decisions
- Innovation Acceleration
Key Features
Experiment Management Interface
Create and configure A/B tests with multiple variants, define experiment parameters and success metrics, and view active and completed experiments.
Sample Page with Live Experiments
Demonstrates experiments in action on a sample checkout page, shows different button colors based on experiment variant, and tracks user interactions with experimental elements.
Event Collection System
Records user interactions with experimental elements, captures conversion events for statistical analysis, and stores events in DynamoDB with experiment context.
Report Generation Pipeline
Processes collected event data using AWS Batch, calculates conversion rates and statistical significance, and generates comprehensive JSON reports.
Technologies Used
Frontend
Backend
DevOps
Other
Challenges & Solutions
AWS Batch connectivity issues
Added public IP assignment to Fargate tasks, created security group with outbound internet access, and granted ECR pull permissions to task execution role.
CloudFront 403 Forbidden errors
Removed website configuration from S3 bucket, added S3 managed encryption, simplified CloudFront distribution configuration, and added handling for 403 errors.
DynamoDB query expressions in Java
Fixed the ExperimentEvent class by moving annotations, updated query approach to use QueryConditional.sortBetween(), and ensured consistent AWS region settings.
Key Learnings
- NX Monorepo Structure: The NX monorepo structure provides a clean separation of concerns while enabling code sharing, though it requires careful configuration to avoid nested directories.
- TypeScript/Java Integration: Maintaining consistent data models between TypeScript and Java components requires careful planning, including mirrored class structures and proper serialization.
- AWS Integration: AWS services provide powerful capabilities for building cloud-native applications, but require careful configuration and error handling for reliable operation.
- API Robustness: Implementing comprehensive validation, logging, and error handling in the API is essential for building a maintainable application.