NEONVIL & Confidential FinTech Client
A Case Study: Building a Full-Stack Institutional Portfolio Analytics Platform for Corporate Finance Teams

Business Outcome
A three-service institutional portfolio analytics platform, delivered end-to-end and running in production.
FULL-STACK DELIVERY

Institutional-Grade Analytics

Offline-First + Multi-Tenant

Context & Challenges
The platform had to run advanced quantitative workflows with no dedicated compute backbone — statistical computation in-browser to keep the UI responsive, and algorithmically dense portfolio optimization in a stateless serverless environment where every invocation starts cold.
Four critical engineering challenges:
01
Serverless cold-start connection exhaustion: singleton Prisma client with warm-instance detection.
02
Yahoo Finance rate limits on concurrent fetches: 10-parallel concurrency limiter with per-ticker fallback.
03
CVaR optimization in a stateless context: Monte Carlo bootstrap at 3,000 resamples / 1% alpha, every invocation cold.
04
In-browser probability modeling (CDF, inverse CDF, covariance, multi-horizon risk) with no math backend — memoized for responsiveness.
Project Goals
Frontend SPA
A React 19 SPA with offline-first state (Zustand + IndexedDB) and multi-format export.
Backend API
A serverless Node.js API on Azure Functions, backed by PostgreSQL/Prisma, with Azure AD auth and Yahoo Finance ingestion.
Optimization Service
A stateless Python service running MVO, Information Ratio, CVaR, Risk Parity, and Custom strategies via SciPy SLSQP.
Our Solution
Three services, three responsibilities. The SPA owns the interface. The Node.js API owns data and access control. The Python service owns the mathematical core.
Frontend SPA
Visual interface & user interaction
Portfolio management with offline persistence
Asset allocation modeling with scenario comparison
Backtesting engine with attribution against standard benchmarks
Attribution analysis with Brinson decomposition
Backend API
Persistence, ingestion, access control
Yahoo Finance integration: prices, sector/industry, Brinson attribution
Workspace-scoped multi-tenant isolation via Azure AD
Fund statistics: Sharpe, Sortino, alpha, beta, max drawdown, volatility, return
Optimization Service
Heavy math & risk modelling
Monte Carlo CVaR bootstrap: 3,000 resamples at 1% alpha
Dynamic risk-free rate via SHV ETF; NaN detection with >50% threshold exclusion
Constraint system: long-only, fully-invested, 30% max weight per asset
Effort Allocation
Requirements & Specification (12%)
Business Logic (23%)
Codebase (40%)
Infrastructure (15%)
Security (10%)
Infrastructure & Technologies
React 19 + Vite
Chosen to keep a data-dense analytics UI responsive — concurrent rendering prevents heavy chart and matrix recalculations from blocking user interaction, and fast HMR accelerates iterative quant work.
Node.js / Azure Functions
Chosen for a pay-per-invocation backend that scales elastically during traffic spikes in price ingestion and attribution workloads, with no idle infrastructure between trading sessions.
Python + SciPy
Chosen to run the mathematical core of the platform — constrained portfolio optimization, CVaR Monte Carlo, and covariance modeling rely on SciPy's numerical stack, which has no practical equivalent in JavaScript.
PostgreSQL + Prisma
Chosen for ACID-guaranteed storage of financial records — the relational model cleanly expresses portfolio hierarchies and historical snapshots, while Prisma keeps schema migrations type-safe across the Node.js layer.
Azure
Chosen to align with the client's enterprise security posture — Azure AD provides the identity backbone for multi-tenant workspace isolation, and managed services remove ops overhead for a lean team.
