Headquarters SWE Internship


Nov 24 - Nov 30 : 

Designed the messaging/chat database schema

Implemented 2-way SMS using AWS SNS + Lambda and saved inbound messages to the database.

Built outbound SMS delivery logging using CloudWatch Logs Subscription Filters + Lambda → sent results to our server.

Designed the frontend chat UI (iMessage style) and implemented message list/detail/compose pages.

Implemented routing logic for patient SMS replies depending on available support team members.

Added real-time chat using SSE and completed end-to-end chat flow.


Nov 17 - Nov 23:

Implemented ghost preview for rehab templates and refactored related APIs.

Rebuilt the z-index system with Matan to unify multiple conflicting layers.

Added small UX improvements (email/phone input on patient creation, map UI for in-person appointments, timeline fixes).

Fixed multiple bugs and improved consistency across the interface.

Participated in bug-hunting and tested login + PWA features.


Nov 9 - Nov 16 : 

Added edit functionality on the timeline for appointments and evaluations (easy time adjustments).

Fixed SCAT-6 PDF auto-population and enabled sending the completed PDF via email.

Implemented saved priority/order for rehab items, preserving layout across refresh and syncing with the patient view.

Added UX improvements :

“Go back to today” badge + smooth jump animation

Patient sidebar auto-selects the first valid patient when filters apply

Tooltips showing evaluation completion time

Completed 20+ tasks on the Monkey Board and made 50+ commits.

Joined engineering meetings and appreciated Lucas’s updates and Orestis’s guidance.



Nov 3 - Nov 8 : 

  • Availability page - made users make appointment on availability page. Reused booking component.
  • Recommendation lists are shown on plan-builder. Clinicians can select recommended re
  • Timeline(Planbuilder) : Users can add rehab-items on the timeline. Timeline has zoom feature, and users can resize rehab-items and control time span. 
    • Evaluation icons : Evaluation is kind of survey that help diagnose users' status. Drafts are saved and can resume from where users stopped.
    • Appointment : users can make appointment. Appointments are also shown as icons. 
       Technical challenge : Timezone issue. Saving in db, applying org timezone, or even patient timezone. Time discrepancy between local and production environment


Oct 27 - Nov 1 : 

  • Launched and improved the new timeline: Gathered clinician feedback (Holly, Mary, Austin), replaced evaluation bars with icons, added appointment tab, hover details, and refined zoom/new-item visibility.
  • Refactored and fixed bugs: Improved API efficiency for fetching evaluations/appointments; solved complex resizing and alignment issues; completed 50+ commits and 10+ action items on Monkey Board.
  • Collaborated effectively: Productive meetings with clinicians and the engineering team; discussed API reuse, HIPAA compliance, and new productivity tools like Cursor 2.0.
  • Reflections & next steps: Learned lessons from accidental API deletion, suggested group brainstorm for AI rehab-recommendation feature, continued developing domain knowledge and communication through clinician interactions.
Oct 20 - Oct 25:  

  • Enhanced PlanBuilder UX: Added a drag-based “add-new” popover like Google Calendar with rehab item search; created appointment/evaluation chips with hover lists and smooth zoom animations; improved rehab-bar movement and snapping behavior.
  • Implemented and optimized key features: Built expandable popover modals, optimized “delete all,” “revert,” and “template” actions, and refined SQL/UX logic for replacing evaluation bars with icons.
  • Debugging and collaboration: Fixed Google Calendar webhook bug, debugged environment-specific popover issue, collaborated with Orestis via whiteboard and pair coding to resolve logic errors.
  • Growth and learning: Reflected on API and UX efficiency, explored AI agent integration in Masters project, and appreciated internship extension through May while preparing for continued innovation and teamwork.

Oct 13 - Oct 18:  

  • Focused on new PlanBuilder development: Continued major 2-week project with over 50 commits and full implementation of requirements; collaborated closely with Lucas, Orestis, and clinicians for design and usability feedback.
  • Applied feedback quickly: Added recurring icons and implemented user feedback promptly, emphasizing fast iteration and customer satisfaction as key strengths.
  • Collaboration and teamwork: Incorporated valuable feedback from Mike on timezone and optimistic updates; welcomed Matan to the team and benefited from his insights.
  • Reflections and learning: Improved communication to avoid deployment confusion, deepened understanding of React, TypeScript, and GraphQL, and identified the need to clarify requirements and ask more questions proactively.



Oct 6 - Oct 11 : 

  • Survey System Expansion:
    Added new survey questions for Headstrong, Travis One AG, and SISC in the database — a time-consuming but crucial task to improve data collection and user input flow.

  • Feature Polishing — CEUs & Plan Builder v3:
    Fixed bugs and built missing mobile pages for CEUs, and started developing Timeline (Plan Builder v3) to strengthen core scheduling and visualization features.

  • Collaborative Debugging & Knowledge Sharing:
    Joined a productive Friday debugging session where engineers reviewed each other’s code and discovered hidden issues together.

  • UX & Branding Enhancement:
    Implemented organization logo display on the booking page via S3 integration, improving both functionality and brand visibility.

  • Performance Insights & Growth Mindset:
    Investigated app performance bottlenecks (S3 latency, dev-mode overhead) and reflected on skill growth, communication, and long-term improvement as a software engineer.



Sep29 - Oct 5 : 

During the week of September 29 – October 5, 2025, work focused on stabilizing and automating the Scheduler system. The booking interface was revamped by replacing the old “dashboard” with a new BookingList page, adding filters for clinicians, event types, languages, and time zones to improve usability. A Zustand store was introduced to manage shared states such as organization ID, timezone, and scheduler state. Several bugs were resolved, including duplicate Google Calendar events, incorrect created_by values, and recurring availability issues. On the backend, automated webhook renewal was implemented using AWS EventBridge and Lambda (executed every 3 hours), along with a reminder notification system that sends SMS and email reminders 24 hours, 1 hour, and 1 minute before appointments. The participant editing flow and UI components were also refined, and all updates were successfully deployed to production.








Sep 22 - Sep 28 : 

Scheduler Building

  • Booking & Participant Pages

    • Refactored booking page to support different user types (patient, team member with/without portal, public), enabling them to add patients, caretakers, and associations across tables.

    • Added dropdown lists for patients and team members with portal permission; integrated query parameter injection into scheduler workflow (using zustand store).

    • Fixed booking page bugs, including the “go-back” button error and participant page issues.

    • Removed unused API file (book/create), unused store selectors, and extracted shared interfaces (BookingParams, Patient, Caretaker, TeamMember) into types/scheduler.ts.

  • Payments & UX

    • Implemented Apple Pay and Google Pay, updated their card order, and deployed to production.

    • Fixed UI/UX issues: carousel empty card bug, availability modal popup position, and timezone/state priority logic in scheduler welcome & booking pages.

  • Infrastructure & Notifications

    • Prevented Slack notifications from firing when running locally.

    • Implemented SQS + Lambda to queue Google Calendar webhook notifications, resolving DB connection pool issues.

    • Now, all Google Calendar changes are reflected in our DB within ~1 minute.


Webhook & Calendar Integration

  • Registered domain with Google to watch calendar changes.

  • Built flow:

    1. Google sends push notification → API receives headers.

    2. Headers stored in DB (google_calendar_channels).

    3. Events fetched & processed to update appointments.

  • Fixed major blocker: DB pool exhaustion caused by concurrent pushes. Solved by routing through SQS FIFO + Lambda consumer.

  • Deployed consume API route for Lambda → our server processing.



Sep15 - Sep 21 : 

-New pages: Built Payment, Address, and Insurance pages, focusing on UX by benchmarking other services and designing data schemas aligned with FHIR standards.
-Clinician scheduling: Polished the clinician scheduling page, incorporating 20+ pieces of feedback from boss, which significantly improved both design and practicality.
-Booking page: Collaborated with boss to improve the booking page design and resolved a time zone issue that caused incorrect date display on test devices.
-Stripe integration: Added environment variables in Amplify, enabling Stripe API to run successfully with the live key.


Seo 12(Fri) - Sep 14(Sun) : 

Features & Improvements

  • Added buffer_inputs and min_advance_minutes fields on the clinician availability page

  • Introduced a location (address) page for patients to enter details after booking, with Google API autocomplete

  • Moved the “Add” button to the bottom of the caretaker section

  • Enhanced calendar UX: improved drag functionality with precise grid alignment, fixed hover line alignment, and corrected z-index issues in the availability modal

Notifications & Calendar

  • Fixed Google Calendar invitation issues in production

  • Enabled Google Calendar email notifications for appointment invites

  • Resolved JSON parsing error causing intermittent POST failures in the process-notification API

  • Fixed timezone issue that caused Slack and SMS messages to display one day late

API

  • Added a public scheduler address API endpoint: /api/scheduler/public/address/route.ts





Sep 8(Mon) - Sep 11(Thu) : 

  • Infrastructure & Deployment

    • Integrated Amplify ENV and successfully merged/deployed to the main branch.

    • Fixed time-related errors in the deployed environment by eliminating improper Date() usage.

  • Integrations & Notifications

    • Completed Google Calendar, SMS, and Slack integration fixes by adjusting API call patterns.

    • Added AWS SNS SMS integration and stored Google event/meet links in the Appointment table.

    • Separated DB transactions from external notifications (Slack, SMS, GCal) to improve booking UX speed.

  • Database & Schema Enhancements

    • Created clinician–patient relation table when new patients are added.

    • Added buffer_minutes and min_advance_minutes columns to the schedule table.

    • Introduced a refresh token column in the organization table for GCal organizer use.

  • Frontend & User Experience

    • Improved booking pages:

      • Disabled/grayed out unavailable dates.

      • Enabled filtering slots by clinician ID and query params.

      • Combined First/Last Name fields into one input and made Name + Email mandatory.

    • Added caretaker input fixes and a confirmation page after booking.

    • Built a shared scheduling component for public, simple, and advanced booking flows.

  • Code Quality & Collaboration

    • Rebasing and syncing with main branch.

    • Addressed duplicated environment variables for Google credentials.

    • PRs submitted for fixes and new features, with ongoing feedback incorporated 



  • Sep 4(Thu) - Sep 5(Fri) : 

    Clinicians can make mark their availability (included 'recurring' function as well) 
    Worked on Patient Side Appointment Page
    Based on the availability clinician made, patients can make reservation.
    Made it one-click UI so patients with concussion can easily use it 
    Attached Google Calendar Invitation, so participants of appointment could get google calendar invitation
    ( To Do : Mobile view , Calendar Page that includes stakeholders' schedule ) 



    Sep 3(WED) - fixed db schema(reflecting convention), designed FE/BE of Clinician Side of Scheduling 
    (To Do : showing occupied time table on front end -> tomorrow )
    (To Do : finishing rest of scheduling dashboard -> tomorrow ) 

    Sep 2(TUE) - designed db schema for new feature (scheduling system) 



    Comments

    Popular posts from this blog

    2025 Spring CS686 DevOps - Final Project

    Open Source Project - Open Energy Dashboard