Numbers.
Risk.
Everything in between.
Chartered Accountant Affiliate by qualification. Risk analyst, ML builder, and app developer by compulsion. If it involves capital, code, or complexity — it's usually on my screen.
Accountant
Chartered Accountant Affiliate (ACCA) based in Pakistan. I qualified through one of the most rigorous accountancy programmes in the world — and then immediately started breaking the mould. Audit, UK tax, financial planning are my professional foundation. But where my mind actually lives is in the intersection of risk, capital markets, and the systems that move money at scale.
I've built that out with a parallel track in software development — shipping mobile apps, building AI/ML models, and writing Python that models what most analysts can only spreadsheet. Not a side interest. A core part of how I operate.
Risk & Finance
Liquidation heatmaps, order flow, macro gauges, stress testing — the full stack of risk intelligence.
AI & ML Models
Random Forest classifiers, LSTM networks, and custom indicators built in Python for trading edge.
Mobile Development
React Native, Next.js, Node.js — professional-grade apps built alongside the CA qualification.
Macro Interests
Fed PCE, CPI, geopolitics, DeFi regulation — tracking the systems that determine market structure.
Where the real
work happens.
Sophisticated models.
Real-world edge.
Beyond spreadsheets. I build and deploy quantitative risk tools using Python — the same class of models used by CFA-level analysts and institutional desks.
import numpy as np
from scipy.stats import norm
class MonteCarloVaR:
def __init__(self, portfolio, sims=100_000):
self.portfolio = portfolio
self.sims = sims
def compute(self, confidence=0.99):
returns = np.random.multivariate_normal(
self.portfolio.mu,
self.portfolio.cov, self.sims)
pnl = returns @ self.portfolio.weights
var = np.percentile(pnl,
(1-confidence)*100)
es = pnl[pnl <= var].mean()
return {"VaR_99": var,
"ES_99": es}
from dataclasses import dataclass
SCENARIOS = {
"GFC_2008": {"equity": -0.52,
"credit": +0.45,"fx": -0.18},
"COVID_2020": {"equity": -0.34,
"vix": +0.300,"oil": -0.67},
"FED_TAPER": {"rate_shock": +2.0,
"duration_loss": -0.16},
}
def run_scenario(portfolio, scenario):
shocks = SCENARIOS[scenario]
pnl = portfolio.apply_shocks(shocks)
return RiskReport(pnl, scenario)
class RiskScorer:
WEIGHTS = {
"market_vol": 0.30,
"credit_risk": 0.25,
"liquidity": 0.20,
"concentration": 0.15,
"macro_regime": 0.10
}
def score(self, data) -> dict:
scores = {k: self._norm(data[k])
for k in self.WEIGHTS}
composite = sum(scores[k] *
self.WEIGHTS[k] for k in scores)
return {"composite": composite,
"grade": self._grade(composite)}
▶ RISK SUITE v2.4 — PORTFOLIO ANALYSIS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Portfolio: MULTI_ASSET_01
Positions: 14
AUM: $4.2M
Monte Carlo VaR (99%, 1D)
VaR: -$82,440
ES (CVaR): -$104,210
Stress Testing
GFC 2008: -$682,100
COVID 2020: -$441,600
Fed Taper: -$198,300
Risk Rating
Composite: 6.2 / 10
Grade: MODERATE-HIGH
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Built alongside
the CA. Seriously.
While most accountants were mastering Excel shortcuts, I was learning React and shipping mobile apps. Full-stack development isn't a hobby — it's a parallel professional skill that shapes how I solve problems. Productivity apps, fintech tools, portfolio dashboards — all built professionally from scratch.
import { RiskDashboard, PortfolioChart } from '@/components'
export default function App() {
const [portfolio, setPortfolio] = useState([])
const [riskScore, setRiskScore] = useState(0)
useEffect(() => {
fetchPortfolio().then(setPortfolio)
computeRisk(portfolio).then(setRiskScore)
}, [portfolio])
return (
<RiskDashboard score={riskScore}>
<PortfolioChart data={portfolio}/>
</RiskDashboard>
)
}