Portfolio / 2026 Edition --:--:-- EST Atlanta · Miami

Nicholas Moffett

Nicholas Moffett

A senior at the University of Miami, building the AI workflows so humans can do the interesting work — not the manual data entry.

A little about me,
since you're here.

A senior at the University of Miami building at the intersection of AI, automation, and the businesses that need both.

I enjoy finding manual, repeatable processes and building automated versions of them. That instinct started at Eduply, where I built AI tools for educators later adopted by Atlanta Public Schools and Georgia Tech, and sharpened at SK Commercial Realty, where a request for a faster stacking-plan template became the seed for N&S Digital, the firm I co-founded to ship StackingPlanner and Scholairly.

Now, as an Investment Intern at Goldenrod Companies, I build AI workflows for market research, reporting, and deal analysis. I'm working toward a career in financial analysis because expertise and AI fluency have to grow together: AI can generate an answer instantly, but only real domain knowledge tells you when it's wrong.

Selected experience.

Click any role to expand.

/01
Goldenrod Companies
Investment Intern, Real Estate Tech
Jan 2026 — Present
  • Built an end-to-end automated underwriting pipeline using the Claude API to ingest unstructured deal documents (OMs, T-12s, rent rolls) and live FRED/Treasury data to populate financial models and automate comps analysis.
  • Designed a market intelligence tool ranking 224 metro markets on economic, real estate, and demographic metrics, replacing manual Excel-based submarket comparisons.
  • Built an automated ETL pipeline that parses semi-structured Yardi tenancy data into a unified dashboard, eliminating manual rent-roll and lease-renewal tracking.
/02
N&S Digital LLC
Co-Founder
Apr 2025 — Apr 2026
  • Built StackingPlanner.com, automating commercial real estate stacking plans with interactive visual layouts and saved dashboards.
  • Created Scholairly.com — an AI-powered EdTech platform that reached 147 student signups.
  • Owned the full product lifecycle: conception, development, launch, and user adoption.
/03
SK Commercial Realty
Commercial Real Estate Intern
Jul — Aug 2025
  • Sat in development meetings for major assets including a $500M mixed-use project in Atlanta (The Henry).
  • Built a full-stack web app automating manual stacking plans, replacing Excel with interactive visualization.
  • Built comprehensive financial models evaluating cap rate, LTV, amortization, and leasing commissions.
/04
Eduply
Generative AI Prompt Engineer
May 2024 — May 2025
  • Built AI chatbots adopted by Atlanta Public Schools and Georgia Tech for curriculum planning.
  • Created a video lesson planner tool generating tailored lesson plans for educators and administrators.
  • Optimized prompts for AI tools integrated into school systems, enhancing educator effectiveness.
/05
YMCA Camp High Harbour
Program Director — Watersports
Seasonal · 2021 — 2025
  • Directed all watersports programming, safety procedures, and staff management for 200+ campers and 80+ staff.
  • Oversaw a waterfront facility with 7 speedboats and $1M+ in equipment, mentoring counselors while keeping schedules and risk management on track site-wide.
  • Led watersports at a nationally recognized camp — Newsweek named Camp High Harbour one of America's Best Summer Camps in 2024.
/06
Acadomia & JC Academy Miami
Tutor
Aug 2024 — Dec 2025

What I've built.

Click any project to expand.

StackingPlanner

Visit ↗
The Problem

At SK Commercial Realty, I watched analysts rebuild the same stacking plan in Excel for every property. Hours of manual work for a static file nobody could share, update, or search without starting from scratch.

What I Built

The President of SK Investment Group asked for a better Excel template. I built a full-stack SaaS instead: it turns any tenancy schedule, messy or clean, into an interactive, color-coded building chart in seconds, with a natural-language AI assistant built in from day one.

Highlights
  • AI-powered Excel parser ingests messy, non-standard rent rolls — no fixed template required
  • Natural-language AI assistant reconfigures colors, labels, fonts, and per-block overrides on request, and can flag ROFR encumbrances and rights per suite
  • Shareable public plan links with live chart rendering, plus named version-history snapshots for any plan
  • Stripe-gated Pro tier unlocks logo upload, Modern/Bubbly chart styles, custom fonts, and PDF/PPTX export
  • Persistent Python chart worker — fast, cold-start-free rendering
Stack
Node.js React Python Claude AI Supabase Stripe EC2 Resend

AI Automation Suite

Internal Build
The Problem

Investment analysts at Goldenrod Companies were losing hours per deal to repeatable manual work: re-keying deal documents and tenancy data into models by hand, then hunting across scattered sources for market context before any real analysis could start.

What I Built

An internal AI toolkit that keeps growing as new bottlenecks come up: an automated underwriting pipeline that turns a deal's OM, T-12, and rent roll into a populated financial model using the Claude API and live FRED/Treasury data, an ETL pipeline that turns raw Yardi tenancy schedules into an executive dashboard, and a market intelligence portal that pulls demographic, employer, and real estate data for any market into one AI-written brief.

Highlights
  • Automated underwriting pipeline extracts deal data from unstructured OMs, T-12s, and rent rolls, then populates financial models with live FRED/Treasury comps and financing data
  • Market intelligence tool ranks 224 metro markets on economic, real estate, and demographic metrics for instant submarket comparisons
  • ETL pipeline normalizes semi-structured Yardi tenancy data into a unified dashboard, eliminating manual rent-roll and lease-renewal tracking
  • Reduced multi-hour manual analysis to minutes per asset
Stack
Claude APIFRED/Treasury APIsn8nFastAPIExcel

Career Dashboard

Visit ↗
The Problem

Job searching means a spreadsheet for applications, a doc for cover letters, and no real signal on which postings are worth your time or how you actually stack up against them.

What I Built

A tracker-first job dashboard built around AI features that earn their place: an in-depth fit score on any job you import, a coach that actually knows your background, and a weekly scan of your own tracked companies' career pages that surfaces new postings for review. Multi-user with no accounts — every visitor gets their own scoped data from a 3-step setup, with a recovery key as the only way back in.

Highlights
  • Import a job from a URL, pasted text, or a screenshot: an AI pass extracts the structured fields, handles JS-rendered listings automatically
  • 5-category AI fit scorecard, gap analysis, tailored resume bullets, and a cover letter draft with tone/angle controls — auto-generated per job
  • Weekly board scan reviews every company you're tracking, scores new postings with the same fit rubric, and stages them in a Discovered queue — nothing touches your tracker without a click
  • Standalone Connections and Companies CRM, decoupled from any one job — log a contact or target before you have a role tracked there
  • Free Priorities strip ranks deadlines, connection follow-ups, and interview prep by urgency with zero AI calls; Coach overlay adds persistent-memory chat for everything else
  • No accounts, no API key: a 3-step setup collects your background and hands you a recovery key — the only way back into your data on a new device
Stack
Next.js TypeScript Turso Groq Vercel

StockStarter

Visit ↗

No signup — upload a statement (synthetic is fine) and it stays in localStorage on your device, nowhere else

The Problem

I wanted real performance tracking (TWR, IRR, tax-loss harvesting, income) and kept running into the same two bad options everyone does: pay a service that wants your account credentials, or do it by hand in a spreadsheet.

What I Built

A web app that turns broker export files into real portfolio analytics. Upload an Excel or CSV and it resolves holdings, pulls live prices, and tracks performance, income, risk, and taxes, with an AI chat layer to ask about your portfolio in plain English. Your transactions are parsed and stored entirely in the browser — no account, no login, no server-side database of anyone's holdings.

Highlights
  • Time-weighted return and dollar-weighted IRR computed from actual cash-flow history, not estimated
  • FIFO/HIFO tax-lot tracking with wash-sale risk flags and estimated tax savings
  • Built-in AI chat grounded in live holdings, prices, and transaction history
  • Open source and self-hostable, but the live demo needs none of that — data never leaves your browser's local storage
Stack
Bun TanStack Start localStorage Tailwind Claude AI

Scholairly

Visit ↗
The Problem

I kept watching students juggle a different app for every task: one for notes, one for flashcards, one for the syllabus PDF, one for the calendar. Nothing tied it together.

What I Built

So I built Scholairly, one platform with AI tools built around how students actually study: class-specific chatbots, syllabus analysis, auto-generated flashcards and practice tests, a scheduling assistant, and a document Q&A tool for asking questions straight out of a PDF.

Highlights
  • Class-specific AI chatbots, syllabus analysis, and auto-generated flashcards and practice tests
  • 147 students and educators signed up over its run
  • Built and launched end-to-end — conception through user adoption
Stack
Generative AISaaS

Signal

Visit ↗
The Problem

I kept defaulting to asking an AI assistant to "put this on my calendar" — there was no single fast place to capture a task, a deadline, or a someday idea, and no quick way to see what actually mattered today without re-triaging everything myself.

What I Built

A personal capture tool, installed as an iPhone home-screen PWA plus a Scriptable widget, that unifies three kinds of entries under one fast-capture flow: fixed-time events pushed one-way to Google Calendar, deadline tasks whose urgency auto-escalates as the date nears, and someday/backlog items that just sit until touched. A daily "pick your signal" ritual is the only manual triage step. Passcode-gated for personal use.

Highlights
  • Exactly one manual priority decision — urgency is computed automatically from date proximity, not hand-triaged
  • iPhone home-screen PWA + Scriptable widget for one-tap capture from anywhere
  • One-way sync pushes fixed-time events straight to Google Calendar
  • AI condenses long freeform notes into a clean title, keeping the full text as an expandable detail
  • Daily push reminder nudges the triage ritual — silent once you've already picked today's Signal
Stack
Next.js TypeScript Turso Groq Web Push PWA Vercel

World Cup Kits

Visit ↗
The Problem

I wanted one place with a nation's complete World Cup story — kit history, the real match record, and the stories behind each tournament — instead of piecing it together across a dozen Wikipedia tables.

What I Built

A reference archive covering every nation that's ever appeared at a World Cup, built around an autonomous pipeline rather than manual entry: an AI research agent works a queue of 83 countries, researching each one from Wikipedia and Wikimedia Commons and writing a structured JSON file. A Node.js watcher picks up new files, converts them, patches them into the site, and commits and pushes straight to production — no manual step between research and a live deploy.

Highlights
  • 83 of 83 nations fully documented — every country to ever appear at a World Cup, 1930 to 2026
  • 91.2% of tournament entries carry an archival kit photo sourced from Wikimedia Commons — only set when a freely-licensed match exists, never guessed
  • Fully autonomous pipeline: research agent → structured JSON → file watcher → git commit and push → live Vercel deploy
  • Per-country dashboard computed straight from match data: win/loss record, biggest win and loss, head-to-head rival history, top scorers
  • Editorial per-tournament stories alongside the raw stats — kit lore, iconic matches, not just numbers
Stack
React Vite React Router Node.js Vercel

Hacky Sack CV

View Code ↗

A computer vision pipeline for hacky sack gameplay video: YOLOv8 pose tracking plus BoT-SORT with appearance re-identification keeps a persistent ID per player, a trained YOLO sack detector (color-threshold detection as a fallback) tracks the sack itself, and touch/drop detection combines proximity with a velocity-inflection check instead of distance alone. Everything runs locally — no hosted service or API key required.

Highlights
  • YOLOv8 pose model + BoT-SORT with appearance re-identification keeps a persistent ID per player across the clip, tracking ankle, knee, and chest keypoints every frame
  • Trained YOLO sack detector (from 180 bootstrapped examples) runs first, falling back to HSV color-threshold blob detection when no trained weights are available — never hard-fails on unlabeled footage
  • Touch detection checks proximity to a keypoint and a downward-to-upward velocity inflection, not distance alone — cuts down false positives
  • Outputs an annotated video, a timestamped JSON report, and an interactive session-review page — not just a number
  • Ships a synthetic test-clip generator so the whole pipeline is verifiable before pointing it at real footage or training a detector
Stack
Python YOLOv8 (Ultralytics) BoT-SORT OpenCV

8bit CRE

Visit ↗
The Problem

CRE fundamentals are usually learned by watching real deals play out over years, one at a time. There's no fast, repeatable way to build intuition for how financing, hold periods, repairs, and market cycles actually interact.

What I Built

A browser strategy game: manage a $5M fund across six CRE sectors for ten years, choosing financing, riding out repairs and market cycles, and exiting deals under real amortization and cap-rate math, not a simplified toy model.

Highlights
  • Real financial engine underneath: 30-year loan amortization, refinancing, deferred repairs, and IRR/equity-multiple math, validated against a parallel Python reference implementation
  • Six sectors with independently evolving cap rates and growth rates, a financing choice on every deal, and in-hold events that can force a decision mid-campaign
  • Deterministic seeds reproduce a full campaign exactly — same seed, same starting opportunities, every replay
  • TypeScript simulation and Python reference compared transition-by-transition in automated tests, not just spot-checked
  • No account, no backend — one campaign autosaves in the browser
Stack
React TypeScript Vite Python Playwright

CIM 423 3D World

Build Log ↗
The Problem

A class assignment to build a Meta Quest VR experience from scratch: a written story, a 3D environment, then real interactivity, with every AI call logged and disclosed, not just used silently.

What I Built

A short narrative VR walkthrough of a dead space station, built room by room in Unity for Meta Quest: a ship AI voice guides you from the Docking Bay through a Corridor and Control Room into a Lab, where the story's actual twist happens. I directed every asset, room layout, and interaction decision; Claude Code did the Unity implementation.

Highlights
  • Room-by-room set design (Docking Bay, Corridor, Control Room, Lab) built from primitives plus Kenney asset packs, with a custom-generated starfield skybox and three real 3D ringed planets, not a flat texture
  • An AI ship voice narrates the whole walkthrough; one scripted twist moment breaks the silence in the Lab
  • Built and deployed to real Meta Quest hardware through an on-device build/cast pipeline, not just tested in the Unity editor
  • Two real bugs only surfaced on physical hardware, caught and fixed after on-device testing
  • Every AI call disclosed per assignment: what was generated versus what I directed
Stack
Unity C# Meta Quest Kenney Asset Packs Claude Code
Older builds, no longer live
ToonaTools AI tools built for the counselors at the summer camp I worked at — generated devotionals and activity plans, and filled in counselor evaluations digitally instead of on paper.
Steal the Meal Scraped local fast food menus to surface the best nearby deal. Never quite worked well enough to use.

Life outside the laptop.

Hover to pause, drag to explore.

Nicholas with family

Family & friends

Nicholas at a wrestling tournament

Wrestling

Nicholas wakeboarding

UWake

Nicholas at Soares Jiu Jitsu

Brazilian Jiu Jitsu

Nicholas with friends at the beach in Miami

The Beach

An AR side project visualizing a water molecule

Side projects

05 — Contact

Have a project, a job, or just a good idea? Let's talk.