Skip to content

Built for UnderPinned · Live · Mobile · AI

UnderPinned

A mentoring platform connecting students with verified industry professionals. Native iOS and Android apps with AI‑powered session notes, real‑time chat, and identity verification.

SwiftUIJetpack ComposeDjangoAI / NLPReal-timeWebSocket

The problem

Students and early-career professionals struggle to find relevant mentors. Even when they do, the logistics (scheduling, tracking conversations, following through on advice) create enough friction to kill the relationship before it starts.

Try the flow ↓

1 / 11

Tap the highlighted areas to navigate

UnderPinned needed a native mobile experience on both iOS and Android that reduced that friction to near zero: sign up, get matched, book a call, and walk away with AI-generated notes afterwards. The apps had to feel polished enough to earn trust from both students and the senior professionals volunteering their time.

From design to delivery

I partnered with the design team to deliver UnderPinned end to end. I built the iOS and Android apps, the backend API, and the AI-powered session notes system. Beyond the code, I was involved in product decisions: scoping features, identifying edge cases, and making trade-offs between ambition and what we could ship reliably.

Onboarding

Role-based multi-step flows collecting career interests, goals, meeting preferences, and profiles. Mentors go through identity verification: document upload plus selfie, verified server-side.

Mentor discovery

Recommended mentors with match scores and ratings. Three-tab profiles (about, specialities, reviews) with a sticky action bar for requesting mentorship or messaging.

Session booking

Four-step mentor-driven flow: select mentee, pick date and time slot, choose platform, confirm. Google Meet and Zoom links generated server-side.

Real-time chat

One-to-one messaging with optimistic sending, typing indicators, online presence, photo and file attachments, and paginated history over WebSocket presence channels.

AI session notes

After every call, both parties get an AI-generated summary with key takeaways and checkable action items. Captions-only, no audio or video stored.

Account management

Personal info, academic details, mentorship preferences, notification controls, and GDPR-compliant account deletion with password confirmation.

The AI layer

The flagship feature: after every mentoring video call, both parties receive an automatically generated session summary with key takeaways and a checkable action-item list.

01

An AI meeting assistant is scheduled to join the video call automatically

02

It captures a text transcript from the call's live captions. No audio or video is stored

03

A language model processes the transcript into a structured summary with takeaways

04

Both users receive a push notification when their session notes are ready

05

Action items extracted from the conversation appear as checkable tasks with a progress bar

The pipeline was deliberately designed around captions-only capture, not audio or video recording, which dramatically simplified the privacy model and eliminated media storage costs. Transcription failures are tracked across seven status states, and the system gracefully degrades when a bot can't join or a call runs without captions.

Beyond session notes, the platform also uses language models to generate structured job listings, parsing scraped job data into clean headlines, company summaries, and role descriptions for the web jobs board.

Decisions & trade-offs

Native SwiftUI + Jetpack Compose over cross-platform

The onboarding flows, chat, and gesture-heavy interactions needed platform-level polish. Cross-platform frameworks would have added a translation layer in exactly the places where feel matters most: keyboard handling, scroll behaviour, and navigation transitions.

Thin-client architecture

All business logic lives server-side in the Django API. The apps are pure presentation and state management. This made feature parity between iOS and Android straightforward and kept the AI pipeline, matching logic, and verification flows in one place.

Captions-only transcription

Recording audio or video would have required explicit consent flows, media storage infrastructure, and a much harder privacy conversation with users. Captions-only transcription captures the substance of the call at a fraction of the complexity and cost.

WebSocket presence channels for real-time

Chat messages, typing indicators, online status, session notifications, and verification events all run through WebSocket channels. This eliminated the need for polling and gave the apps the responsive feel users expect from a messaging product.

My role

Sole mobile developer. I built both the iOS app (SwiftUI) and the Android app (Jetpack Compose / Kotlin) from scratch, achieving near-complete feature parity. On the backend, I built the AI transcription and summary pipeline, the real-time chat system, the identity verification flow, and the session scheduling infrastructure.

The scope covered the full product surface: authentication with OTP-based password reset, multi-step onboarding for both roles, mentor discovery and matching, mentorship request flows, session booking and rescheduling, one-to-one chat with attachments, push notifications across both platforms, the AI meeting-notes pipeline, and GDPR-compliant account management.

Outcomes

The platform is live with verified mentors from organisations including Goldman Sachs, Google, and Morgan Stanley. Both apps shipped to the App Store and Google Play with full feature parity. The AI session-notes pipeline runs in production: every completed call generates a summary, takeaways, and action items within minutes of the call ending.