HowDidI App
Paid Résumé-Sharing Platform
Overview
From June 2024 to October 2024, I served as both Project Manager and Technical Lead for the HowDidI App, an iOS application that enables professionals to upload their résumés, earn income from viewership, and offers readers first-hand application materials for purchase. We built this platform with Swift (front-end) and Firebase (back-end) to provide real-time content synchronization and user interactions.
The platform’s core concept:
- Uploaders share their CVs, personal statements, or interview experiences.
- Buyers purchase “passes” to access specialized or niche résumés for educational and career-boosting insights.
Key Highlights
-
Project & Team Management
- Led a 3-person university team using Agile sprints, continuous requirement refinement, weekly progress demos, and stakeholder feedback loops.
- Acted as the primary liaison with business stakeholders—translating business ideas into actionable user stories and sprint tasks.
-
Swift + Firebase Integration
- Built the app’s entire flow in Swift: navigation (SwiftUI/NavigationView), user sessions, in-app media (PDFKit, AVKit).
- Leveraged Firebase for real-time updates and data sync (e.g., storing PDF résumés, user metadata, and purchase records).
-
Mentorship & Knowledge Transfer
- Provided comprehensive guidance to junior developers on front-end design patterns (MVVM with SwiftUI), real-time data sync, user testing, and release management.
- Organized daily stand-ups, refined backlogs, and used tools like GitHub Projects to ensure a smooth development lifecycle.
Code & Technical Achievements
To illustrate my deep involvement in code design, here’s an overview of selected SwiftUI components (see below) along with advanced techniques I introduced:
1. Multi-Screen Navigation with SwiftUI
struct ContentView: View {
var body: some View {
TabView {
HomeView()
.tabItem { Image(systemName: "house.fill") }
LibraryView()
.tabItem { Image(systemName: "book.fill") }
PostView()
.tabItem { Image(systemName: "plus.circle.fill") }
ChatView()
.tabItem { Image(systemName: "bubble.left.and.bubble.right.fill") }
ProfileView()
.tabItem { Image(systemName: "person.crop.circle.fill") }
}
}
}
- Tabbed Navigation: Demonstrated clear user flows—Home, Library, Post, Chat, Profile—using SwiftUI’s
TabView. - Custom Tab Bar: Overrode
UITabBarAppearancefor consistent brand styling and theming.
2. PDFKit & AVKit for Rich Media
struct ResumeView: View {
@State private var selectedPDF: String = ""
@State private var isImageFullScreen = false
...
var body: some View {
ZStack {
// PDF Thumbnails, comment sections, pinch-to-zoom in full-screen
// ...
}
}
}
- Dynamic PDF Viewing: Employed
PDFViewto let users read or zoom in on uploaded documents. - Fullscreen & Pinch-to-Zoom: Tapped gesture to go fullscreen, combined
MagnificationGestureandDragGestureto handle offset + scale transformations. - Video Playback: Integrated
AVKitfor in-app demonstration videos; auto-scaling to device screen, gesture-based exit from fullscreen.
3. Custom Paging & Swipe Navigation
struct PagingScrollView<Content: View>: UIViewControllerRepresentable {
// A specialized scroll that allows vertical paging across multiple screens.
// ...
}
- Vertical Paging: A specialized
UIScrollViewbridging SwiftUI, enabling swipe between “Resume,” “Advice,” and “SoP” screens. - Manual Index Management: Controlled page offsets and index indicators for a custom, smooth user experience.
4. Firebase Real-time Sync
- Store & Retrieve PDFs: Automatic sync once a user uploads a PDF or media file, ensuring instant availability to other app visitors.
- Pass Purchase Flow: Maintained user purchase states (did they buy a pass? expiration date, etc.) in Firebase, controlling access to locked résumé content.
5. Mentorship & Code Review
- Guided Team on Swift best practices: usage of
@Statevs.@Binding, customUIViewRepresentablebridging frameworks like PDFKit. - Implemented Agile: daily stand-ups, backlog grooming, weekly sprints with tasks assigned to each developer, thorough code reviews for quality control.
Additional Responsibilities
- Stakeholder Communication
Set up requirement-gathering sessions with project owners, refined user stories, and validated acceptance criteria—ensuring each sprint delivered meaningful increments. - UI/UX Design
Collaborated on wireframes, tested color palettes, and tested user flows for frictionless reading/purchase experiences. - Database & Security
Advised team on Firebase rules for read/write privileges, preventing unauthorized access or data tampering. Proposed minimal data indexing for faster queries.
Personal Growth & Reflection
Technical Mastery
- Strengthened SwiftUI architecture knowledge, bridging Apple frameworks (PDFKit, AVKit) with custom UI controllers.
- Hands-on experience with advanced gesture handling (pinch, drag) for media.
Project Leadership
- Juggled PM tasks (Agile sprints, backlog refinement) with tech lead duties (code structure decisions, mentorship).
- Ensured code quality via peer reviews and continuous integration setups.
Communication & Adaptability
- Balanced stakeholder requests with pragmatic dev timelines, re-prioritizing features and scope as needed.
Final Thoughts
Building HowDidI App reinforced my ability to blend technical expertise in iOS (SwiftUI + Firebase) with project management responsibilities. Handling advanced media viewing, real-time sync, and a monetization model demanded meticulous planning and robust coding. The experience sharpened my cross-functional leadership and cemented my passion for delivering polished, user-centered mobile apps.
I’m confident this project demonstrates my Swift knowledge, Firebase integration, and team leadership—all invaluable assets for any role seeking a proactive, full-stack-minded iOS developer.