Writing
Blog
Notes on backend engineering and the decisions behind things I've shipped.
I accidentally built four pieces of the same financial app
PickMe, Looply, MarketLens and MoneyTalks began as separate projects. Eventually I realized they were each solving a different part of the same problem.
System DesignFintechProduct EngineeringArchitecturePersonal FinanceBuilding in PublicI turned an iPhone Shortcut into a transaction feed
MoneyTalks started with a question: how much of my spending could I capture automatically without paying for bank aggregation?
iOS ShortcutsApple WalletNext.jsEvent-Driven SystemsPersonal FinanceSystem DesignI have too many credit cards, so I built an app to pick one
The idea behind PickMe is intentionally simple: at checkout, tell me which card gives me the most value.
SwiftUIiOSDecision EnginesFintechProduct EngineeringPrivacyYour inbox already knows what you bought
Building Looply taught me that a surprising amount of financial automation can start with data people already receive.
Next.jsPostgreSQLGmail APIAutomationPrivacyBackend EngineeringWhy scorekeeping had to work with no signal
Building offline-first sync with version conflict resolution for The Pickleball Social, where the network fails exactly when the app is needed most.
Offline-firstSyncReact NativeDistributed SystemsWhy I stopped treating stock prices like a frontend problem
Building MarketLens, a Spring Boot market-data pipeline that turned a simple portfolio feature into a real backend system.
JavaSpring BootPostgreSQLData EngineeringREST APIsObservability