Khaled Elfakharany
Back to Projects
professionalacquired

CatchPay Platform - Amazon-like Marketplace

CatchSmart
Jan 2018 - Apr 2018
Team of 2
Overview

CatchPay was a native iOS marketplace application built from scratch in just 3 months. The app enabled users in Riga, Latvia to browse local shops, place orders online, and pick up in-store. A key innovation was the smart offline-first caching strategy that solved a real UX problem: users needed to access their orders, QR codes, and shop locations even when in-store internet coverage was poor. The platform achieved strong early traction with 20 shops and 500 users in the first week before being sold to another company.

Problem Solved

Users making orders online needed to access pickup details (QR codes, order information, shop locations) while in stores with poor internet connectivity, creating friction in the offline-to-online shopping experience.

My Role: Sole iOS Developer
  • Built the complete iOS marketplace from scratch as sole developer
  • Designed and implemented smart offline-first caching strategy using Core Data
  • Developed dynamic modular home screen with complex Auto Layout adapting to order status and promotions
  • Implemented background location updates using hybrid silent push and background task approach
  • Integrated Stripe payment processing and OneSignal push notifications
  • Optimized search algorithms with hashmaps and lazy loading for large product catalogs
  • Stress tested system with 1,000 shops x 500 products each
Key Outcomes
  • Built complete iOS marketplace from scratch as sole developer in just 3 months
  • Achieved strong early traction with 20 shops and 500 users in first week of launch in Riga, Latvia
  • Implemented smart offline-first caching strategy solving real UX problem of poor in-store internet coverage
  • Mastered iOS app lifecycle, GCD threading, and memory optimization under real-world constraints
  • Created highly dynamic modular home screen with Auto Layout adapting to order status, promotions, and events
  • CEO commissioned professional marketing video to showcase platform's support for local businesses
  • Successfully launched to production and later sold to another company

Scale

  • 500 users in first week
  • 20 shops onboarded at launch
  • Stress tested with 500,000 products (1,000 shops x 500 each)

Technology Stack

Primary Technologies
Swift 4UIKitCore Data
Secondary Technologies
AlamofireStripe iOS SDKOneSignalGoogle Maps SDKSwiftyJSONCore Image
Infrastructure
Custom REST APITestFlightGoogle Crashlytics
Tools
XcodeCocoaPodsXCTest
Challenges & Solutions
Technical

Challenge

Handling large product catalogs without performance degradation in a native iOS app with memory constraints.

Solution

Khaled stress tested with 1,000 shops x 500 products each, implementing lazy loading for images and search results, memory optimization techniques, and search algorithm optimization using hashmaps.

Impact

App remained performant even with massive product catalogs, enabling scalability.

Technical

Challenge

Background location updates in iOS were notoriously difficult at the time, with Apple imposing strict limits on background execution.

Solution

Khaled implemented a hybrid cost-optimized approach combining silent push notifications through OneSignal with background task identifiers running on background threads, cycling between location updates to keep the service alive.

Impact

Users received timely notifications when arriving at shops for pickup without excessive battery drain or API costs.

User Experience

Challenge

Users ordering online needed to access orders, QR codes, and shop details in stores with poor internet coverage.

Solution

Khaled built an offline-first architecture with Core Data caching of orders, QR codes, and shop locations, allowing users to browse orders offline and access pickup details without internet.

Impact

Seamless offline experience that solved a real user pain point in retail environments.

Technical

Challenge

Home screen needed to dynamically adapt to ongoing orders, promotions, ads, and different events while maintaining simplicity.

Solution

Khaled implemented complex Auto Layout with modular components that appeared simple to users but had highly dynamic implementation underneath.

Impact

Clean, intuitive interface that could display varied content types without UX complexity.

The Story

Situation

CatchSmart wanted to support local businesses in Riga, Latvia with a marketplace app. The challenge was that users would order online but need to access their orders in stores where internet coverage was often poor.

Task

As the sole iOS developer working with one backend developer, Khaled was responsible for building the complete iOS marketplace in just 3 months, including solving the offline access problem.

Action

Khaled insisted on using Swift over the company's preference for React Native, taking complete ownership of the iOS development. He built a smart offline-first architecture using Core Data to cache orders, QR codes, and shop locations. For the dynamic home screen, he implemented complex Auto Layout that adapted to order status, promotions, and events. He optimized for scale by stress testing with 500,000 products and implementing lazy loading with hashmap-based search algorithms. For background location, he created a hybrid approach combining silent push notifications with background tasks.

Result

The app launched successfully in Riga with 20 shops and 500 users in the first week. The CEO commissioned a professional marketing video showcasing support for local businesses. The platform was later sold to another company, marking a successful exit. The project established Khaled's confidence in technical decision-making and full project ownership.

What I Learned

Technical

  • GCD (Grand Central Dispatch) mastery for threading and concurrency
  • Deep understanding of iOS app lifecycle and state restoration
  • Memory optimization techniques critical for iOS apps
  • Search algorithm optimization with hashmap implementation
  • Dynamic Auto Layout for complex modular UIs
  • Background location services and silent push notification patterns

Soft Skills

  • Complete project ownership as sole developer
  • Standing firm on technical decisions (Swift over React Native)
  • Building confidence through full lifecycle delivery

Key Insights

  • 💡 Simple UI does not mean simple implementation - modular home screen looked simple but was highly complex
  • 💡 Loading screens are strategic opportunities for initialization
  • 💡 State persistence is critical for seamless user experience
  • 💡 Marketplace apps demonstrate app lifecycle importance in best form