I'm a credit and lending professional and self-taught software developer based in New York. I spent a decade underwriting merchant cash advances, then built a production lending platform from the ground up.
I'm a credit underwriter by training, with a decade spent analyzing bank statements, cash flow, and fraud indicators to decide which businesses get funded and on what terms.
When the business needed software to run on, I built it rather than outsourcing it. I taught myself Apex, Lightning Web Components, SOQL, Supabase, and the Claude API, and built the full system: a production CRM and lending platform that manages real deals, payments, and underwriting decisions.
I work where finance and software meet. Having been both the underwriter using the tools and the developer building them, I tend to understand a problem from the user's side before writing a line of code.
A production Salesforce-based lending platform that operates a full merchant cash advance business end to end. It is live software handling real deals, payments, and underwriting decisions. The following are four of the core systems within it.
A configurable rules engine that scores each deal across more than twelve risk signals, including time in business, FICO, revenue, deposits, negative days, existing positions, and bank type. It then assigns a risk tier or flags the deal for manual review with a complete audit trail, triggering automatically when a deal enters underwriting.
Bank-statement PDFs are submitted; structured underwriting data is returned. The Claude API extracts deposits, balances, NSFs, and negative days, automating a process that previously required manual line-by-line review. Built asynchronously to respect platform processing limits.
Role-gated portals for syndicators, investors, and accountants, each with access limited to their own data. Monthly payout settlement, ROI and performance views, and server-generated PDF and CSV reporting, all behind authenticated access.
Data models, triggers, queueables, processing-limit management, and a decline workflow with 27 categorized reasons and automated broker notifications. Related-submission detection matches repeat applicants by normalized SSN. 248 passing tests in production.
The platform handles the full lifecycle of a deal, from the moment an application arrives to collecting payments and settling investor returns.
An application comes in and creates the merchant, business, and deal records. Bank statements are uploaded and analyzed automatically, with deposits, balances, NSFs, and negative days extracted into the deal.
Competitor positions are tracked, and a configurable rules engine scores the deal across more than twelve risk signals to assign a risk tier or flag it for manual review, with a full audit trail behind every decision.
An offer is built and sent to the merchant from within the platform. Deals can be syndicated across multiple investors, with each investor's share tracked on the deal.
Payments are collected automatically through Actum (ACH), and syndicator invoices and statements are generated without manual bookkeeping.
Syndicators, investors, and accountants each get a role-gated portal showing only their own data: positions, payouts, and returns. An Open Deals view lets syndicators choose how much to commit to each live deal and submit on their own.
A full screen-recorded walkthrough of the platform is available on request.
Beyond the features, the platform is built and maintained like production software.
A GitHub Actions pipeline runs roughly 260 automated tests on every deploy, so changes ship without regressions.
The Claude API reads bank statements and broker application PDFs, turning unstructured documents into structured deal data.
Plaid integration verifies merchant bank data automatically at the application stage.
Migrated the syndicator portal's authentication from Salesforce OAuth to Supabase Auth with no interruption to live users.
Generates California DFPI-compliant commercial financing disclosures, including actuarial APR calculation.
Bidirectional webhook integration with Actum keeps payment status in sync with the processor in real time.
I'm open to roles where finance and technology meet. If that's something you're working on, I'd be glad to hear from you.