League
Software Engineering Intern · League Inc. · Jan 2023 — Apr 2023 · Toronto, ON (Remote)
First professional software engineering role at a Canadian unicorn (~500 employees, $1B+ valuation). Shipped a health dashboard feature to production across Web, iOS, and Android, driving 5,000+ daily active users. This internship validated the career pivot from mechanical engineering.
5K+
Daily Active Users
10+
UI Components
85%+
Test Coverage
The Company
League is a digital healthcare platform that powers personalized health experiences for enterprise clients. Employers and insurers use League's platform to provide their members with health programs, assessments, rewards, and dashboards. The platform spans Web, iOS, and Android, all powered by shared backend services and APIs. At the time of my internship, League had roughly 500 employees and operated as a remote-first company with a physical office in Downtown Toronto.
The Team
I was part of the Web team within a cross-functional product squad of ~10-11 people: 3 Web engineers (including me), 2 iOS engineers, 2 Android engineers, 1 Engineering Manager, 1 Product Manager, 1 Designer, and ~1 Staff Engineer. Every platform had dedicated engineers, but they all shipped the same features in coordination, driven by the same product requirements and backed by the same APIs.
The Product: About Me
The feature I helped build was called About Me — a personal health hub within League's platform. It combined the Health Dashboard, Rewards, Programs, and Health Assessments so users could understand their health and track their progress in one place.
The hub featured three tabs: Overview (health metric trends, program progress, recent achievements, profile prompts), Metrics (deep dives into specific health metrics like steps, flights climbed, and activity trends with interactive data visualization charts), and Achievements (gamified rewards for completing health activities). The Metrics and Achievements tabs were behind feature flags, togglable per client deployment.
After launch, the About Me feature drove 5,000+ daily active users.
The 16-Week Arc
One of the most valuable aspects of this internship was experiencing a complete project lifecycle in a compressed timeframe.
Weeks 1-3: Onboarding & Discovery
Dual-track period: the team was in discovery/planning for About Me, and I was ramping up. Completed FrontendMasters courses in JavaScript, React, and TypeScript. Got familiar with the monorepo structure and League's internal design system, Genesis. Started reviewing other engineers' pull requests — reading production code, asking questions, and developing an eye for what "good" looks like.
Weeks 3-12: Core Development
The building phase. I contributed directly to the About Me feature alongside the other two web engineers, shipping production code across the entire feature surface:
- Interactive data visualization charts for health metrics (steps, flights climbed, activity trends) using AirBnB's Visx library — React-based visualization built on D3
- Nested tab navigation for the Overview/Metrics/Achievements structure using React Router v5.2
- Modal components for detailed metric views and achievement details
- UI components that consumed League's Genesis design system and extended it for the About Me context
- 10+ production UI components total that shipped to real users
Launch & Next Project
The About Me feature launched across all platforms — Web, iOS, and Android — in a synchronized release in early April. After launch, the team transitioned to the next feature. I began contributing to this new project in the final weeks, experiencing the full arc: discovery, development, launch, and the beginning of the next cycle.
Cross-Platform Coordination
Every sprint followed a structured cadence: sprint planning on Monday, followed by a cross-platform API design review where all platform engineers — Web, iOS, Android, and Backend — aligned on API contracts. The sprint ended with a retrospective.
The API design review was critical. Because the same backend services powered all three frontends, everyone needed to agree on what data the API would return (shape, fields, types), what endpoints would be available, how feature flags would be structured, and edge case handling. The API is the contract between teams — if platforms drift, features break.
Before major releases, the team conducted bug bashes — dedicated sessions where engineers systematically tested the feature across browsers, devices, and edge cases.
Development Practices
The PR workflow was rigorous: write code against Jira ticket acceptance criteria, write tests to meet the 85%+ coverage threshold, develop in Storybook for component isolation, submit PRs with descriptions and screenshots, receive code reviews from senior engineers, iterate based on feedback, and merge once approved and CI passed.
WCAG accessibility was a first-class requirement. My very first pull request taught me this — a senior engineer flagged that point values needed aria-hidden spans with visually hidden text for screen readers. From that point forward, accessibility was a consideration in every component I built: keyboard navigation, screen reader compatibility, color contrast.
I also authored SDK Web documentation for the About Me feature — structured technical documentation that other engineers across the organization would reference when integrating with or extending the About Me SDK.