← Projects
AI product development · 2025 to present

UnruffledAI

An AI wellness platform that spots rising burnout risk early and explains exactly what is driving it. I took it from a Figma prototype to a live service on AWS.

Role
AI Product Developer
Scope
Requirements through deployment
Status
Deployed on AWS EC2
Year
2025 to present
PythonDjangoPostgreSQLTensorFlowREST APIsDockerGitHub ActionsAWS EC2

Quick view for recruiters

Problem solved

Burnout usually gets identified after someone has already checked out or quit. UnruffledAI predicts it early from behavioral data and shows its reasoning, so the person can act on it.

My role

I led delivery end to end. I defined the requirements, designed the data model, shipped the inference pipeline, tested it across every risk tier, and deployed it to AWS.

Technologies

PythonDjangoPostgreSQLTensorFlowREST APIsDockerGitHub ActionsAWS EC2

Key accomplishments

  • Turned a Figma prototype into a containerized service with automated CI/CD on AWS.
  • Caught duplicate predictions and mismatched risk percentages in acceptance testing, before any user saw them.
  • Rebuilt a third-party integration cache-first on a daily cycle so the app stops repeating calls.
  • Secured the product before launch: credentials externalized, browser API access restricted, every record scoped to its owner.

Verified results

  • In the walkthrough, one new check-in moves the score from 32% to 38%, shifts the level from low to medium, and names higher stress as the driver.
  • Fixes re-validated across low, medium, and high risk tiers.
  • Every result comes with a recommended next step and a clear note that it is a wellness insight, not a medical diagnosis.
Requirements and decisions

Designed to be useful, not just accurate.

Decision

Explain every score

Each prediction lists its contributing factors and what changed since the previous check-in. In the walkthrough: “Your risk has increased from 32.0% to 38.0% since your previous check-in. The biggest changes or contributors were higher stress.”

Decision

Turn a score into an action

Recommendations match the risk tier. Medium risk suggests a short reset such as breathing, stretching, or a screen-free break. High risk points to recovery, a breathing exercise, or a short guided meditation.

Decision

Be clear about what it is

Every entry in the history carries the line “Wellness insight only; not a medical diagnosis,” so the product builds trust instead of overclaiming.

Decision

Show the trend

A Reports page charts burnout risk over time and keeps a prediction history with factors and recommended actions, so patterns become visible.

Decision

Keep the user in control

An optional reflection layer sits beside the wellness data. Settings covers notifications, privacy and data sharing, appearance, and wearable devices.

Approach

Plan the work as stories

I turned user requirements into prioritized features, user stories, acceptance criteria, and data requirements, starting from a Figma prototype.

High-level architecture

How the pieces fit together.

  1. DesignFigma prototypeUser requirements became screens before any code.
  2. Internal · applicationDjango web appPrediction, reporting, and personalized experience workflows behind REST APIs.
  3. Internal · dataPostgreSQLApplication data, with every record scoped to the authenticated user who owns it.
  4. Internal · inferenceTensorFlow inferenceThe prediction step inside the application workflow.
  5. External serviceThird-party APIRetrieved on a daily cycle and served from cache first.
  6. DeliveryDocker, GitHub Actions, AWS EC2A containerized build with an automated deploy to AWS.

A high-level view. The model design, feature set, and data schema stay private while UnruffledAI grows toward a product.

Integration responsibilities

What I connected, and owned.

Application and database

Core application workflows in Python and Django, backed by PostgreSQL for predictions, reports, and personalized user experiences.

Model inference

TensorFlow inference wired into the application so a new data point produces a recomputed prediction in the same flow.

REST APIs

REST APIs connecting the interface to prediction and reporting, with browser API access restricted.

Third-party data

I analyzed how the external API behaved, then redesigned the integration to retrieve data once a day and serve it cache-first.

Troubleshooting examples

Two problems, traced to the cause.

Duplicate predictions and risk percentages that did not reconcile

Problem

User acceptance testing surfaced duplicate prediction records and risk percentages that did not reconcile.

Investigation

I traced the root cause instead of patching the symptom.

Solution

I added submission controls and corrected the reporting.

Validation

Re-validated across low, medium, and high risk-tier scenarios. Found and fixed before a single user saw it.

A third-party integration making redundant calls

Problem

The integration was requesting the same external data more often than it needed to.

Investigation

I evaluated how the API actually behaved before changing anything.

Solution

I rebuilt the integration cache-first on a daily retrieval cycle.

Validation

Fewer redundant requests and more consistent data across the application.

Hardening before launch

Credentials

Externalized, so secrets stay out of the code.

Browser access

Browser API access restricted.

Data scoping

Every record scoped to the authenticated user who owns it.

Testing and verification

How I made sure it works.

I ran user acceptance testing across the machine learning prediction workflows, isolated the defects above, and re-validated the fixes against low, medium, and high risk-tier scenarios.

The walkthrough below exercises the whole path: new data in, prediction recomputed, factors and next step explained.

Video and visual proof

UnruffledAI walkthrough.

1:36 walkthrough with sample data.

Chapters

  1. The dashboard: burnout risk at 32% (low), the latest biometrics, and the AI prediction with its contributing factors and a comparison to the previous check-in.
  2. A new check-in: heart rate, HRV, sleep duration, sleep quality, activity level, and stress level.
  3. Save, and the model analyzes the new data.
  4. The new result: 38% (medium). The explanation names higher stress as the driver and recommends a short reset.
  5. Reports: burnout risk over time, plus a full prediction history with factors and recommended actions.
  6. The astrology reflection layer: natal chart, the day’s transit, a reflection question, and planetary positions.
  7. Settings: feedback, notifications, privacy and data controls, appearance, and wearable devices.
UnruffledAI Add Biometric Data form open over the dashboard, with heart rate, HRV, sleep duration, sleep quality, activity level, and stress level filled in
0:30. A new check-in, filled in before saving.
UnruffledAI dashboard after the update, with the burnout risk gauge at 38 percent, level medium, and the latest AI prediction with contributing factors
0:38. The result: 38.0%, medium, with the change from 32.0% explained.
UnruffledAI Burnout Predictions Report with a burnout risk over time chart and a prediction history table
0:49. Reports: risk over time and prediction history.
Behind the demo

A check-in feeds the data model, the inference pipeline recomputes the score, and the interface presents the result with its explanation and next step. The model, features, and schema stay private as UnruffledAI heads toward a product.

Skills demonstrated

Each skill, with the example behind it.

  • Requirements to deliveryFigma · user stories · acceptance criteria

    Prioritized features, stories, and data requirements from a prototype.

    See requirements →
  • Application and data engineeringPython · Django · PostgreSQL · TensorFlow · REST

    Core workflows, inference, and reporting in one application.

    See integration →
  • Debugging and acceptance testingUAT · root-cause analysis

    Duplicate records and risk percentages traced and fixed across every risk tier.

    See the examples →
  • API and cost awarenessThird-party API analysis

    Redundant calls replaced with a cache-first daily retrieval.

    See the example →
  • Secure deploymentDocker · GitHub Actions · AWS EC2

    Credentials externalized, access scoped, containerized build, automated deploy.

    See the delivery path →
Built to become a product

UnruffledAI is being built as a commercial product, so the model design, feature set, data schema, and infrastructure configuration stay private. This page shows the product thinking and engineering behind it, and I am glad to go deeper in conversation.

Next step

Ask me how I turned a customer problem into this product.

I am open to Forward Deployed Engineer, Solutions Engineer, Solutions Consultant, and Implementation roles.

Emailspauleyinthecloud@gmail.com