Fits App
A fashion-centric social network designed to celebrate personal style and drive fashion discovery — a place to showcase outfits, gain insight, and take inspiration from a global community.
- Role
- CTO & Co-founder
- Duration
- May 2023 – Present
- Users
- 10K+


Selected problems
A feed that doesn't jump while you read it
The home feed is a waterfall: variable-height images in staggered columns, which is the right shape for outfit photography and the wrong shape for UIKit. There is no built-in layout for it, so it was written from scratch — programmatic UI throughout, SnapKit for constraints, no storyboards.
The hard part of a waterfall is not placing the tiles. It is that heights are unknown until images resolve, so a naive implementation reflows under the user's thumb mid-scroll and loses their place.
Recommendations by vibe, not by recency
A model vectorises each image, reading background, colour, text and composition. A custom Postgres image queries those vectors directly, so the feed can surface posts with a similar feel — connecting people with content that matches their style rather than whatever is newest.
The response from users centred on this and on the clarity of the interface, which are the two things the product was actually betting on.


A shared outfit that isn't a dead link
The web companion shows recent top fits on the home page, and turns profiles into portfolios that work outside the app. Dynamic embeds mean a shared profile or outfit unfurls as a rich preview rather than a bare URL — which is where most of the cross-platform engagement came from, and the single change that moved reach hardest.

Stack
Design
Figma for wireframes, mockups, and interactive prototypes across mobile and web platforms.
Frontend
iOS app built with Swift and UIKit, implementing a programmatic UI using SnapKit. Custom components including a waterfall layout for the home feed.
Backend
Scalable backend in Go, with PostgreSQL for storage and Redis for caching. Custom authentication, push notifications, load balancers, an admin panel, and full unit test coverage. Containerised with Docker across staging and production.
DevOps
GitHub Actions for CI/CD into staging and production, Docker images on Amazon ECR, and automated testing workflows to hold code quality across deployments.
Impact
Fits passed 10,000 users within a few months of launch, with a global spread that gave the feed genuinely different cultural reference points to draw from.
The web version and its dynamic embeds moved the needle hardest on reach — a shared outfit stopped being a dead link and started being a preview worth clicking.
Reflection
Building Fits meant owning the whole surface — design, iOS, a Go backend, the ML pipeline and the deployment story — and the most useful lesson was how much of the product lived in the parts nobody sees. The feed only feels effortless because of the vector work behind it.