JMZhiao (Jacky) MoAI / Software / Robotics
HomeProjectsExperienceAboutResumeContact

Zhiao (Jacky) Mo

AI / Machine Learning · Software Engineering · Robotics & Computer Vision

Melbourne, Australia

zhiaomo@gmail.com
ProjectsExperienceAboutResumeContactLinkedInGitHub

Built with Next.js, three.js, Framer Motion and hand-made SVG.

Back to all projects
Mobile · Algorithms · Product

splitB — iOS Bill-Splitting App

SwiftUI group-expense app with a network-flow settlement optimiser, released on the App Store

SI

Role

Sole developer — product design, app architecture, persistence and sync, and App Store release.

When

Personal project · released

Tech

  • SwiftUI
  • Core Data
  • Firebase Firestore
  • Swift

Designed, built and released independently: group creation, expense and record management, member balances, Core Data local persistence, and Firebase Firestore sync with invite codes and real-time group updates.

Numbers that are real

Apple App Store

Released on

10+

Real users

What I did

  • ✓Implemented a network-flow-based settlement algorithm that restructures inter-member debt into a lower-cost repayment path instead of preserving the original pairwise debts.
  • ✓Built both persistence layers: Core Data for local data and Firebase Firestore for shared groups, with invite codes and real-time group updates.
  • ✓Shipped the app to a working, real-user state rather than a UI prototype, and released it on the Apple App Store.
  • ✓Owned the full product loop: data model, balance calculation, sync edge cases and release.

Honest limitations

  • The settlement optimiser is implemented, but settlement quality was not benchmarked — no reduction in transfer count or total transferred amount is claimed.
  • The exact cost function (and whether the optimiser explicitly minimises transfer count) is not documented outside the code yet.
  • Next steps: quantify settlement quality and publish the repository.

Projects

QMT Adapter for NautilusTrader

Read case studyBack to all projects
Backend