
TennisFlow
A journal-first companion app for recreational tennis players. Easy logging, progress you can actually see, and a nudge on what to practice next.
Read more
I'm a full-stack software engineer in Long Beach, California. Right now I'm the first engineering hire at Lemon Law Champions, a law firm in Costa Mesa, where I'm building the firm's internal operations platform and modernizing the reporting system it runs on. On the side I consult through QaasLab and I'm building TennisFlow, a tennis journal app that's in private beta.
Before that I was on product teams at Ally Financial and Apartments.com. At Ally I shipped an internal dashboard that cut manual loan verification in half. At Apartments.com I helped with the Canada launch. Mostly TypeScript, React, and Angular, with C#/.NET, Python, and SQL when a project called for it.
Outside of work I play a lot of tennis, run when I can, and still get a lot out of the music minor I picked up at UC San Diego. I'm always open to hearing about full-stack roles and contract work. If you're working on something, say hi.

Two recent projects I've spent a lot of time on.
The short version. Happy to go deeper on any of it.
The firm's first full-time engineering hire. I'm building a greenfield internal operations platform, starting with an intake tool that scores case strength, applies the firm's eligibility rules, and routes leads by quality. I also took over a live Google Apps Script reporting system that runs intake, settlements, payroll, and case activity, and brought it under version control with local development, credential management, and a safer way to deploy.
Project-based consulting on client web projects. I lead smaller engagements from the first conversation through delivery and act as the client-facing engineer on larger ones, translating what the business needs into requirements the team can build.
Shipped an internal ops dashboard that cut manual loan verification by 50% and funding time by 25%, about 30 minutes saved on every loan. Before that, built a custom landing page and application flow for one of Ally's partners. All of it on the auto refinance platform, which processes around $280M a year in originations.
Mostly worked on the Canada launch: localization-ready UI and region-specific configuration. Also shipped new components for a sitewide overhaul and added structured logging for the fraud and upload checks in the listing flow.
Full-stack work on proprietary movement capture software, with the goal of moving stroke recreation to the cloud.
Automated the data pipelines behind personalized solar savings outreach, replacing a manual process. Added unit tests along the way so they'd stay reliable after I left.
A few things I keep coming back to when I'm building something.
I used to think there'd be a point where I finally felt ready to take on something new. That point honestly never came. Most of what I know came from starting anyway and figuring out the next step once I was in it.
Conversations with other players changed what I paid attention to while building TennisFlow. Hearing what they cared about, and what they ignored, gave me more direction than my roadmap did. Client work is the same, so I ask a lot of questions before I write a lot of code.
I've caught myself spending hours getting one detail just right when I should have moved on. Shipping the smaller version usually gives me something real to learn from, and that decides what's next.
If you want to talk about a role, a project, or tennis, send me an email. I'm always up for a great conversation.