Mahjong-Meetup is a feature-rich iOS social platform connecting
players with local events and competitive leaderboards. I architected a scalable system integrating Firebase for
authentication and real-time data, implemented advanced visualisations using radar and line charts, and
engineered a multi-service layer handling location services, geocoding, and media management.
The app
demonstrates full-stack iOS development capabilities including complex UICollectionView implementations, RESTful
API integration, and thoughtful UX design.
I architected this iOS application from scratch, implementing a
service-oriented design with Firebase integration and singleton pattern services for authentication, database
operations, and location services.
I engineered complex UICollectionView interfaces with multiple custom
cells and integrated professional charting libraries for data visualisation.
I solved critical edge cases
around event filtering and state management while delivering a seamless user experience across six feature
modules.
Real-time Firebase synchronisation introduced me to asynchronous programming
challenges. I debugged state management issues, implemented proper error handling, and learned to think about
edge cases like cancelled events and network failures.
I built real-time Firestore synchronisation with
intelligent error handling, so every event, score, and RSVP stays live across the community.
Early on, I recognized that scalability and maintainability were critical, so I
invested time in designing a service-oriented architecture. I implemented singleton pattern services for
authentication, database operations, and location handling — decisions that paid dividends as the project
grew in complexity.
Alongside auth and data, a polymorphic game system keeps scoring rules tidy behind a
single interface.
The geocoding feature tested my problem-solving skills. I initially used
CoreLocation, then expanded to the Nominatim API for better coverage, implementing intelligent fallback
strategies and caching mechanisms to optimise performance.
That's what guides players from a pin on the
map to a seat at the table.
Integrating professional charting libraries was a turning point; seeing player
statistics transform into interactive radar charts and score trajectories made the data meaningful.
Building Mahjong-Meetup was a transformative experience that took me from concept
to a fully-functional iOS application. I started by defining the core problem: creating a community platform for
Mahjong players to discover events and track performance. This clarity shaped every architectural decision that
followed.
The UI development proved challenging but rewarding. I built dynamic UICollectionView interfaces
with multiple custom cell types, learning to balance aesthetics with functionality.
Throughout
development, I discovered that great apps aren't just about features — they're about solving real problems
elegantly. This project taught me that persistence, thoughtful architecture, and attention to detail transform
ambitious ideas into polished, production-ready applications.
Personal project · Mobile
Application Developer · August 2025 — December 2025
Want to work together? If you like what you see and want to build something, get
in touch over a cup of tea — or a round of Mahjong.
That laptop on the console is running another story: a full-stack environmental
reporting system built for Acoem Australasia — Python, Flask and Pandas turning raw
monitoring data into automated client reports on Linux infrastructure.
The teal book on the shelf is Atelier — a CEFR-graded French
learning platform built with Next.js and React: 240 lessons across 48 modules, a 20-type exercise engine, custom
JWT auth and a fully bilingual FR/EN interface. Live at french.chrisverse.uk.