Divine Davis

Portfolio

Ollama logo — the local model runtime this project runs on

divine-health — A Health Model That Runs Entirely On My Laptop

Private tool

  • Ask it anything about my health in the terminal and it answers from my own records — it reads the lab PDFs straight out of my files, quotes the actual value and reference range, tracks a marker across years of draws, and picks up a new report the moment I drop one in
  • Every morning it sweeps PubMed, Europe PMC, medRxiv and ClinicalTrials.gov for research on whatever I am actually trying to work out — the topics live in a plain-text list I edit, crossed automatically with every marker that has a value, so adding a line changes tomorrow’s search with no code touched
  • No API keys, no cloud, no account — the whole thing runs offline, and the only thing that ever leaves the machine is a literature search term, never a lab value; a pre-commit hook blocks health data from reaching git by both path and content
  • Architecture: two open-weight models under Ollama — II-Medical-8B (a Qwen3-8B medical fine-tune, Q5_K_M) for reasoning and Google’s MedGemma 1.5 4B (Q8_0) for reading scans; retrieval is hybrid, fusing SQLite FTS5 BM25 with 768-dim nomic-embed-text vectors through reciprocal rank fusion so a question phrased in plain language still finds the clinically-worded paper; 24k context holds the records, the retrieved abstracts and the conversation at once, and prompt-prefix caching plus suppressed chain-of-thought took a lookup from 75 seconds to under 8 on 16 GB of unified memory
NEMO Seamless Gutter homepage

NEMO Seamless Gutter — Booking That Checks the Weather, Plus an AI Phone Assistant

Client work

Visitors40
Returning visitors1 (2%)
Calls to the AI phone assistant2
Jobs booked on the site1
Shown in Google search975
Clicks from Google5

Google Analytics 4Google Search Console — verified

  • A website, online booking, and an AI assistant that answers the phone for a gutter company in York County, PA, live and taking real customers
  • Gutter work depends on the weather, so the site checks the forecast before offering you a time and moves the job itself if rain is coming
  • Stack: Node/Express + SQLite on DigitalOcean, an ElevenLabs voice agent that performs no date arithmetic of its own, the National Weather Service API, Google Workspace SMTP with ICS invites, and a Python cron for SEO
Visit NEMO Seamless Gutter →   View on GitHub →
Arina Tanacheva digital business card for ABG Equities

Arina Tanacheva — A Business Card That Lives at a Web Address

Client work

  • A digital business card for an acquisitions associate at a Brooklyn private equity firm — one link and one QR code doing the job the paper card used to do
  • Every number dials when you tap it, and Save Contact drops a proper contact card into the phone, so nobody retypes a digit wrong
  • Built to her firm’s existing card design, rebuilt in the layout she picked, and sized so the card holds its exact proportions on any screen instead of reflowing like a web page
  • Stack: one static page on nginx and DigitalOcean, portrait cut out of the printed card and embedded in the file itself, no JavaScript and nothing loaded from anywhere else, so it opens on bad reception in a lobby
Visit the Card →
Jordan’s Job Finder daily job board screenshot

Jordan’s Job Finder — A Job Search That Runs Itself

Google Ads — running now, and it tracks sign-ups

  • Checks more than 340 company job pages every day and keeps only the senior product and program manager jobs that fit your city, pay, and level
  • You set up your search once and get a short list by email each morning, so you see a handful of real matches instead of hundreds of postings
  • Stack: Flask + Jinja2, SQLAlchemy / SQLite, Requests + BeautifulSoup + Playwright scrapers, Gunicorn + nginx on DigitalOcean, and a daily cron pipeline
Visit Live Site →    View on GitHub →
Collegiate Athletic Planning landing page screenshot

Collegiate Athletic Planning — Getting High School Players Recruited

82 people have signed up (58 players, 24 coaches)

Google Analytics 4Google Search Console — verified

  • Gives a high school football player one page with their highlight video, stats, and contact details, so college coaches find it all in one place
  • Players and coaches message each other instantly, and sharing a profile in a text shows a real preview instead of a bare link
  • Stack: FastAPI, SQLite, Jinja2 templates, a DigitalOcean Spaces + CDN video pipeline, and nginx + Let’s Encrypt SSL on DigitalOcean
Visit Live Site →    View on GitHub →
Kinnkolk shared family tree landing card

Kinnkolk — Shared Family Tree

Private app

  • One family tree the whole family adds to, drawn out by generation with marriages, parents and children, and whose birthday is coming up
  • An edit shows up on everyone else’s screen right away, and you can plan a reunion, RSVP, and look relatives up in public records
  • Stack: single-file vanilla JS, Supabase (Auth + Postgres RLS + Realtime), Photon / OpenStreetMap geocoding, and nginx + Let’s Encrypt on DigitalOcean
  • Private app — invite-only for family, so there is no public link
Personal Doctor AI health marker dashboard

Personal Doctor AI — Your Lab Results, Explained

Private tool

  • Upload your lab results as a PDF or a photo, and it pulls out 20 health numbers with the normal range, what each one means, and what to do about it
  • Your files are never saved on our end, and it will never name a drug or a dose, because that call belongs to a doctor
  • Privacy-first — documents are processed in memory and results live in the browser, never on the server — on Next.js 16 with the Anthropic API behind nginx + Let’s Encrypt on DigitalOcean
Crease order list showing two-leg dry cleaning progress

Crease — Dry Cleaning Picked Up and Delivered (iPhone App + Shop Portal)

TestFlight

  • You book a pickup, a courier takes your bag to a partner cleaner, and a second courier brings it back — two separate trips, because no delivery network will hold a package for the two days a cleaner needs it
  • Nobody can price a bag before opening it, so the card is authorised at checkout and only charged once the shop has counted; if the count lands above the hold the order stops and asks you rather than quietly charging more
  • The shop portal is built for a tablet on a counter, operated one-handed — the total updates as the counter types, next to the customer’s original estimate, so an unusual gap is obvious in the moment instead of in a dispute two days later
  • Live courier quotes made the economics measurable rather than assumed: $12.99 a leg in Brooklyn, $25.98 a round trip — 78% of a median order’s cleaning value, which is the number the whole business turns on
  • Stack: SwiftUI (iOS 17+), Next.js portal, a Fastify dispatch service on DigitalOcean, Supabase Postgres with RLS, Stripe authorise-then-capture plus Connect payouts, and Uber Direct behind a carrier interface with a simulator standing in for it
Visit Live Site →    View on GitHub →
Spendcap today screen showing spending against the daily cap

Spendcap — Know the Moment You’re Over Budget (iPhone App)

TestFlight

  • You pick one number, a daily spending cap, and connect your bank; the app watches the day’s spending against it
  • Most budgeting apps tell you what you overspent on last month — this one taps you on the shoulder at 80% and again at 100%, while you can still do something about it
  • Stack: SwiftUI (iOS 17+), Plaid for bank transactions, Supabase (Postgres with RLS + Edge Functions + hourly pg_cron sync), and APNs push, with the bank access tokens kept server-side only
View on GitHub →
Encounter documentation system sign-in screen

Encounter — Records System for a Disability Support Agency

Synthetic-data MVP

  • Replaces the paper forms at a Pennsylvania agency that supports people with disabilities: visit notes, goals, scheduling, and proof a caregiver showed up
  • Everyone sees only what their job allows, notes can be spoken instead of typed, the app switches between English and Spanish, and state reports save as a PDF
  • Stack: Next.js 15 (App Router) + TypeScript, Tailwind + shadcn/ui, Prisma + Postgres, Auth.js v5, and @react-pdf/renderer
Visit Live Site →

Common Tech Stacks I Use

Category Technologies
Languages Python, Swift, TypeScript, JavaScript, HTML, CSS, Bash, SQL
Frameworks & Libraries FastAPI, Uvicorn, Flask, Express, Jinja2, SQLAlchemy, Alembic, Prisma, Auth.js, Starlette, Pydantic, Next.js, Tailwind CSS, shadcn/ui, SwiftUI, StoreKit, MapKit, CoreLocation, Leaflet.js, WebSockets, BeautifulSoup, Playwright, httpx, aiofiles, apscheduler, bcrypt, python-jose, Pillow, boto3, itsdangerous, python-dotenv
Databases & Storage SQLite, Supabase (Postgres), DigitalOcean Spaces (S3-compatible CDN)
Infrastructure Nginx, DigitalOcean, systemd, cron, GitHub, SSH, Let's Encrypt / Certbot
APIs & Integrations Square API, Anthropic API, Twilio, Stripe, NYC Open Data, SMTP / Gmail
AI Tools Claude (Anthropic), Claude Code