What I Built
Most of my summer went into these six things.
Bank integrations
Slash and Rho bank connections, built from the OAuth flow up
Cards & spender filters
Filter transactions by card or by who spent, across every bank
Agentic AI tools
Four Ask Finta tools plus a 50+ scenario eval suite
Slack delivery
Alerts, summaries and Ask Finta updates in the Slack channels founders already use
Referral system
Invite a founder, match them at signup, apply the coupon
Stripe bookkeeping
One routing policy so every Stripe event lands in the right place in the books
The Work
Bank Integrations
I built Finta's Slash and Rho bank integrations from scratch, covering OAuth connect, account, transaction and treasury sync, multi-account support and reconnect alerts, all behind feature flags. Later on I added reconnect logging across all four bank providers that never writes a token or raw payload to the logs. Finta announced the Slash partnership once it went live.
The bug I remember most was Slash sync quietly stopping after 100 rows, so accounts looked synced when they weren't. I fixed the pagination, added a regression test and backfilled the accounts that got affected.
Slash API
banking + treasury
Rho API
banking + cards
OAuth2 connect
full-page return · guarded token recovery
Accounts
multi-account persistence
Transactions
multi-page sync
Treasury
balance history
The books
Flipper staged rollout
Cards & Spender Filters
These are two filters customers kept asking for, one by card and one by who spent the money, and they work across Mercury, Rho, Slash and Plaid banks like Amex, Chase and Citi. When a Slash card deploy got rolled back I reconciled the production schema and got both filters working again. Here are the launch demos Finta put out:
Agentic AI Tools
Ask Finta is the in-app assistant. I gave it tools that can search, edit and split transactions and create rules, with permission and company checks on every call, and built a Respan eval suite to make sure it behaves before anything goes live.
Ask Finta
the in-app assistant
Search
Edit
Split
Rules
The books
permission and company checks on every call
50+
scenarios
×3
repetitions
99%
pass rate
Slack Delivery
Founders already live in Slack, so that's where Finta meets them: transaction alerts and monthly summaries land in a channel they pick, and Ask Finta posts its updates there too. I built out the Slack side of that, with a settings flow that walks you through connecting your workspace and picking a channel, a welcome DM once you're connected, and delivery that only counts a message as sent once Slack confirms it, so nothing quietly goes missing.

- 1
Connect your workspace
One Slack sign-in, with a clear connected state and a welcome DM
- 2
Choose where Finta talks to you
A channel for alerts and monthly summaries, and Ask Finta’s own channels
- 3
Hear from Finta, reliably
Every message is confirmed by Slack before it counts as sent, so nothing quietly goes missing
Referral System
I built the referral program end to end, from the invite in settings and matching at signup to applying the Stripe coupon on upgrade, the claim link and the accept and reject emails, and shipped it behind a feature flag.
Invite
settings page
Attribute
signup match
Coupon
auto-applied
Claim
token URL
Follow-up
accept / reject email
Invite
settings page
Attribute
signup match
Coupon
auto-applied
Claim
token URL
Follow-up
accept / reject email
Stripe Bookkeeping
Every Stripe event, whether it's a charge, a refund, a dispute or a payout, has to get booked to the right category in a customer's books. The trouble was that webhooks, admin tools and cleanup jobs each had their own copy of those rules, so the same event could get booked differently depending on which path touched it. I moved the rules into one routing policy that all three paths call, then worked through the edge cases one by one: credits, cancellations, disputes, reversals, sales tax, financing and missing balance transactions. Along the way I also made the multi-page catch-up jobs resumable and capped admin imports at 100 transactions.
Reflection
Finta was my first startup job and my first summer living in San Francisco, working on a small team where the code I wrote went in front of real customers within days, and a few things from that stayed with me.
The first week is a work trial
Nobody at an eleven-person company has time to onboard you. The summer started to click once I started picking up real tickets instead of waiting to be pointed at things, and Slash, the first big thing I got handed, ended up being the area I knew best.
Do the thinking first
Before bringing anything to anyone I got into the habit of starting from why we were building it, figuring out the real options and picking one. In code that meant finding the riskiest piece first and designing around it, which saved me a lot of rework.
Don’t run from the painful bugs
A sync that stopped at 100 rows or a message marked as sent that never showed up is easy to patch. The real job was figuring out why each one was possible and making sure it couldn’t happen again.
It was the most I've grown in a few months, and I'm grateful to the Finta team for trusting an intern with work that customers actually relied on.
