MEGA is a secure cloud storage and file hosting platform trusted by millions. I was working at MEGA The Privacy Company as an iOS Engineer, contributing to the Media Content feature, revamping existing features, and resolving performance issues including app hangs.
Engineering
Technologies and frameworks used while working on the MEGA iOS app.
Built with both SwiftUI and UIKit โ SwiftUI for modern declarative screens, UIKit for legacy components and complex custom interactions that require fine-grained control.
Applied MVVM with Clean Architecture layering to maintain separation of concerns across Presentation, Domain, and Data โ critical for a codebase of MEGA's scale.
Managed third-party and internal library dependencies with Swift Package Manager (SPM) for a clean, reproducible build environment.
Used CoreData for structured local storage โ caching user data, offline-accessible content, and persistent app state across sessions.
Contributed to the Media Content feature using AVKit, AVPlayer, and AVFoundation โ enabling in-app video/audio playback directly from MEGA's secure cloud storage.
Adopted async/await (Swift Concurrency) for structured async operations and network calls. Used Combine for reactive state pipelines and data binding between layers.
Integrated Push Notifications via APNs to deliver real-time file sharing alerts, collaboration updates, and account security notices.
Practised Test-Driven Development (TDD) throughout. Unit tests written with XCTest covering ViewModels, Use Cases, and repository logic.
Structure
Strict layer separation ensures testability and long-term scalability across MEGA's large iOS codebase.
SwiftUI & UIKit Views, ViewModels. State-driven, no business logic.
Use Cases & Entities. Pure Swift โ zero framework dependencies. Fully XCTest-covered.
Repositories, network services, CoreData storage. Maps DTOs to domain models.
Complete Stack
My Role
I was working at MEGA The Privacy Company as an iOS Engineer. Key contributions included the Media Content feature (AVKit/AVPlayer/AVFoundation), revamping existing screens in SwiftUI and UIKit, resolving performance issues and app hangs, and improving the overall stability of the iOS platform. Followed TDD with XCTest throughout, with Clean Architecture enforcing clean separation across all layers.