Opinionated tools.
Intentional choices.
Every tool selected for a reason. Every integration tested in production. This is what "code-native finance" actually means.
Open Source First
Prefer tools that don't lock you in. DuckDB over Snowflake for most workloads. Evidence over Tableau. Your data, your models, your code.
Version Control Everything
If it can't live in Git, it probably shouldn't exist. Models, dashboards, pipelinesβall tracked, diffed, and reversible.
Boring Where It Counts
QuickBooks is fine. Gusto works. Don't overthink the foundation. Save the innovation for the analysis layer.
Clean books are a prerequisite, not a deliverable. These tools keep the foundation solid.
QuickBooks Online
FOUNDATIONGeneral ledger, AP/AR, bank reconciliation. The boring center of every financial stack.
Gusto
FOUNDATIONPayroll, benefits, compliance. Handles state registrations, tax filings, and HR basics.
Ramp / Brex
FOUNDATIONCorporate cards with automatic categorization, receipt capture, and spending controls.
Bill.com
FOUNDATIONAP automation, approval workflows, vendor payment scheduling. Beats manual check runs.
The modeling and transformation layer. Python and SQL working together.
Python + Pandas
ANALYSISThe core modeling language. Operating models, cohort analysis, scenario enginesβall in Python.
# Bottoms-up MRR proration
def prorate_mrr(contracts_df):
return contracts_df.assign(
prorated_mrr=lambda x: x.mrr *
x.days_active / x.days_in_month
) DuckDB
ANALYSISIn-process SQL database. Handles gigabytes of data without a server. Perfect for financial modeling.
-- Fast aggregation, no infrastructure
SELECT cohort_month,
SUM(mrr) as total_mrr
FROM read_parquet('contracts/*.parquet')
GROUP BY 1 dbt
ANALYSISSQL transformations as code. Version-controlled, tested, documented. The backbone of the data pipeline.
PostgreSQL
ANALYSISWhen you need a real database. Production analytics, shared data stores, API backends.
Machine learning for prediction, LLMs for augmentation. Not AI-for-AI's-sake.
Claude API
INTELLIGENCENatural language on your data. Automated variance commentary, anomaly explanations, data quality checks.
# AI-generated variance commentary
response = claude.messages.create(
model="claude-sonnet-4-20250514",
messages=[{
"role": "user",
"content": f"Explain: {delta}"
}]
) scikit-learn
INTELLIGENCEClassical ML for structured data. Churn prediction, revenue drivers, anomaly detection.
# Churn risk scoring
model = RandomForestClassifier()
model.fit(X_train, y_churn)
risk_scores = model.predict_proba(X_new)[:,1] XGBoost
INTELLIGENCEGradient boosting for when accuracy matters most. Demand forecasting, driver analysis.
Claude Code
INTELLIGENCEAI pair programmer. Accelerates model development, automates boilerplate, catches bugs.
BI tools that deploy from Git, version control like code, and scale without manual work.
Evidence.dev
VISUALIZATIONMarkdown + SQL = production dashboards. Version controlled, deploys on commit, looks beautiful.
```sql monthly_arr
SELECT month, SUM(mrr) * 12 as arr
FROM contracts GROUP BY 1
```
<LineChart data={monthly_arr} x=month y=arr/> Rill
VISUALIZATIONBlazing fast exploration. OLAP cube on your laptop. Perfect for ad-hoc analysis.
Streamlit
VISUALIZATIONPython apps in minutes. Internal tools, scenario models, interactive reports.
Power BI
VISUALIZATIONWhen the client needs Microsoft. Enterprise integration, familiar interface.
Deployment, version control, and orchestration.
GitHub
All code, all models, all dashboards
Vercel
Dashboard deployments
Cloudflare
Static sites, edge caching
GitHub Actions
CI/CD, scheduled jobs
Docker
Reproducible environments
uv + rye
Python package management
Ready to see this stack in action?
Let's talk about upgrading your financial infrastructure.
Schedule a Discovery Call