Portrait of David Schraedel

David Schraedel

Data Engineering & Applied AI

Projects

Cue

Improvising accompaniment for contemporary dance rehearsals means responding to fast, specific instructions — tempo, meter, phrasing, texture — and I wanted a practice tool that mimics that call-and-response without an instructor in the room.

I built an offline prompt generator that randomizes musical parameters and weaves them into spoken-style cues via client-side template grammar (no API). Users can lock or reroll individual fields, toggle a UI tempo light pulse, and randomize a new generated new prompts from the keyboard.

  • JavaScript
  • HTML
  • CSS

Reading List API

My previous reading list lived in Notion with star ratings, notes, and cover images in a half-readable format, and I wanted to use it to explore working with Flask.

I built a simple script to transform a Notion export into SQLite, aFlask REST API with search and filter query params, and a browser gallery with reading stats and JSON export functionality for the visually-filtered books.

  • Python
  • Flask
  • SQLite
  • REST API

Browser Creative Tools

My go-to Figma plugin for turning photos into layered vector art disappeared, and I still wanted that workflow without creating a or complex application.

I built a small suite of static creative tools inspired by this problem: a layer vectorizer with presets, histogram layer cut-offs, and a before/after compare view; two image pixel-shuffle experiments. Everything runs client-side in the browser.

  • JavaScript
  • HTML

Photo Book Generator

Building a 70-page family photo book in PowerPoint by hand takes a long time, and online photo book services are marginally easier with an increased price.

I built a Python script that builds templated PowerPoint pages, auto-fills photos, and outputs print-ready files, cutting 30+ hours of manual work on 15 books to 5–8 hours.

  • Python
  • Microsoft PowerPoint

Refactored Portfolio Website

I needed a simple portfolio that is easy to update and doesn't rely on complexity for interest or engagement.

I refactored an old React portfolio draft into Astro with a single json-based source of truth for content.

  • Astro
  • Tailwind CSS
  • TypeScript

YouTube Transcript Pipeline

Hours of spoken content in YouTube playlists are locked in the UI and not queryable or exportable, and integrated tools like NotebookLM are limited in capability, control, and experience.

I built a Python pipeline, with an idempotent medallion architecture, that ingests YouTube playlists and turns ~6M+ words of transcripts into a clean, queryable dataset for analysis.

  • Python
  • DuckDB
  • SQL

Distribution Center Forecast

Weekly shipping volume at a distribution center follows annual seasonality and occasional holiday peaks that can triple normal volume.

I compared three modeltime approaches to see which handled that pattern best on a 24-week holdout, using external regressors for peak flags and environmental factors. Prophet captured seasonal structure most reliably (lowest RMSE), but peak weeks remained difficult — none of the models beat a naive baseline when spikes were rare in training. I refit the best model and deployed it as a Docker API.

  • R
  • tidyverse
  • tidymodels
  • modeltime
  • timetk
  • vetiver
  • Docker
  • AWS S3

Adventure Works Data Engineering Pipeline

With sales data in PostgreSQL, support chat in MongoDB, and clickstream events behind a REST API, disparate systems prevent stakeholders from tying campaigns to conversions or browsing patterns to purchases.

I built an end-to-end pipeline that lands all three sources in Snowflake via a watermark-based Python ETL processor and a Prefect-orchestrated API flow, transforms them through 18 tested dbt models with dbt Cloud CI, and exposes the compiled graph to Snowsight and MCP-compatible agents through a dbt MCP server.

  • Python
  • Snowflake
  • dbt
  • Prefect
  • Docker
  • PostgreSQL
  • MongoDB
  • SQL

Capstone Project - I AM Scale

Content creators with a large audience struggle to connect with the whole of their audience on an individual level, and current solutions to this are robotic and impersonal.

In a team of 5, collaborating with a local startup, I built and refined core features so creators can respond to an audience at scale without losing their voice and brand, using social media integrations and Amazon Bedrock AI services to roughly double response rate and let creators triage comments ~3x faster.

  • React
  • TypeScript
  • Node.js
  • Amazon Bedrock
  • AWS

MicroDeck

Individuals with ADHD, executive dysfunction, or digital burnout struggle to bridge the intention-behavior gap; trackers and blockers often add friction instead of helping them start.

I built, user-tested, and refined core functionality for a minimalist mobile habit-initiation app with user-authored micro-action cards and 2-minute timers, avoiding streaks, history, and intoxicating gamification.

  • Flutter
  • Dart
  • Agentic Development
  • Cursor

Midi Randomizer

My music production tools lacked an easy way to get fresh, random MIDI patterns when I wanted unhinged creativity.

I built a browser-based MIDI randomizer that offers various parameters for intentional generation of unpredictable MIDI patterns, offering fast randomization external to usual human strengths.

  • TypeScript
  • HTML
  • AI Studio
  • Agentic Development

YouTube KPI Framework

In product management coursework, I was tasked with building a KPI framework to measure a digital product's performance, focusing on valuable outcomes rather than outputs.

I built a KPI framework based on YouTube, prioritizing outcomes like engagement quality and creator value over vanity metrics like view count.

  • Canva
  • Product Management

Wingd

Most dating apps center on swipes and algorithmic feeds, but a lot of real-world matching still happens through mutual connections, and that word-of-mouth path has no dedicated product surface online.

I defined and prototyped an MVP for reciprocal referral-based dating (trusted circles, peer introductions, accept/decline, messaging). I ran validated learning with 3 testers, using NPS, CSAT, CES, and task metrics to pressure-test navigation, copy, and core flows for product refinement.

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Figma
  • Product Management

Calendar Dashboard

I use separate calendars in Google Calendar to categorize events with time goals for each, but there's no built-in way to compare scheduled time against those goals, against unscheduled time, or across calendars.

I built a Google Apps Script automation that populates event durations in Sheets and feeds a Looker Studio dashboard where I can see time ratios by calendar and compare them to my scheduling goals.

  • Google Apps Script
  • Google Sheets
  • Looker Studio

Soundwatch

Morning routines with multiple timed activities require repeatedly starting timers or watching a clock.

I built a stopwatch that tracks elapsed time with interval audio cues to allow unhindered presence and focus.

  • React
  • TypeScript
  • Vite
  • Tailwind CSS