Hi, I'm Kevin Pruett

...and I'd love to work for Function Health

I’m a software engineer with over 14 years experience building products across a variety of companies and verticals. In a previous role, I led frontend efforts on the Diagnostics Team at Ro, where I helped customers gain access to convenient at-home blood testing and high-quality diagnostics data.

Learn more about my experience

This walkthrough will serve as my application for the Senior Frontend Engineer role at Function Health. Instead of submitting a traditional application, I’ll attempt to clearly communicate a real-world challenge I’ve personally encountered while using the service and provide an architectural solution to the problem. My goal is to effectively communicate technical concepts and solutions in an effective manner.

Identifying the Problem

Problem: Onboarding Gaps

After signing up for Function Health, both my wife and I experienced unclear communication about membership status and next steps — a gap that inspired this analysis.

Thesis

After signing up, new members face uncertainty around three key areas:

Membership Status
Is my membership active?
Next Steps
What should I do next?
Communication
When should I expect answers?
Impact:
  • Reduced trust after purchase
  • Increased support inquiries
  • Delayed activation
  • Potential churn during critical post-purchase window

Proposed Solution: Three-Part System

1
Data Foundation
Build a flexible relational schema to track accounts, memberships, and payment methods
2
Status Management
Implement a state machine to track membership lifecycle with full audit trail
3
Communication Layer
Automate notifications and provide real-time visibility into application progress

Important Context

This analysis is based purely on my personal experience. I obviously cannot say for certain whether or not this is a longstanding issue or a one-off situation that only affected me. Additionally, without having a complete knowledge of Function Health’s internal systems or strategic priorities, my proposed solution outlined here are mostly theoretical in nature and simply demonstratative of how I might approach a technical challenge. It’s not meant to be prescriptive or to suggest that this is the only or best way to solve this problem.

Step 1: Laying the Foundation

Architecture Goals

  • Separate identity from entitlements
  • Enable a flexible account management schema that can accomodate evolving business requirements
  • Design a relationship that affords multiple payment records for a single membership

Outcome

  • Solid foundation for member acquisition flow
  • Identity separated from entitlements for clear boundaries
  • Secure payment handling
  • Support for multi-stage approval process
  • Seamless payment method updates without service disruption
  • Extensible schema accommodates new membership types and pricing tiers

Step 2: Managing Memberships

Architecture Goals

  • Implement state machine architecture with immutable audit trail for every status transition

State Machine: Valid Membership Transitions

Outcome

  • Transforms black box into transparent, trackable process
  • Users gain real-time visibility into application progress, reducing support inquiries
  • Internal teams get clear workflow stages to manage applications efficiently
  • Every status change recorded with full context (who, when, why)
  • State machine ensures data integrity and prevents invalid transitions

Step 3: Communications

Architecture Goals

  • Safe-to-retry, idempotent notifications
  • Reusable and consistent messaging via templates
  • Complete audit trailtracking delivery attempts, provider responses, and retries

Outcome

  • Timely, relevant updates ensure users are never left wondering about their membership status
  • Queue-based approach with retry logic guarantees message delivery even during outages
  • Template management keeps messaging consistent across all channels
  • Preference management respects user communication choices
  • Full delivery tracking provides visibility into the entire pipeline for proactive issue resolution

Thank You

Thank you for taking the time to review this walkthrough of an onboarding architecture. I’m hopeful it effectively demonstrates my technical thinking, communication skills, and passion for building great user experiences in the healthcare space.

This experience was built using React.js, Next.js, TypeScript, TailwindCSS, shadcn/ui, and React Flow.

Get In Touch

I’d love to hear from you and discuss how I can contribute to Function Health’s mission.

pruett.kevin@gmail.com