Projects
Orchestruct
In ProgressAI-Powered Calendar & Life Optimizer — github.com/graysonman/orchestruct
Full-stack productivity application using FastAPI (Python), SQLAlchemy, and a vanilla JS/HTML/CSS frontend that integrates an LLM to intelligently schedule tasks around user goals, stress levels, and burnout risk.
Architected a multi-user backend with authenticated REST APIs, persistent user state, and structured prompting to drive AI scheduling recommendations. A second-phase integration layer is in design to ingest data from external note-taking apps (Obsidian, Google Docs) and surface actionable insights from unstructured content.
LLM Inference Console
FastAPI-based LLM operations platform — github.com/graysonman/llm-inference
Built a self-hosted LLM platform combining inference, RAG, dataset management, and operational controls in a single Dockerized service. Supports chat, embeddings, retrieval-augmented generation, and async batch evaluation with queue and status tracking.
Implemented API key authentication with role/scope-based authorization, SLO monitoring, circuit breaker controls, and pluggable vector backends (in-memory/FAISS). Designed as a local-first tool for testing prompts, running repeatable evaluations, and tracking quality metrics with an optional OpenTelemetry tracing integration.
Jobkit
In ProgressAI Job Search & Networking Tracker — jobkit.info
Full-stack job search management tool with a FastAPI backend, SQLAlchemy ORM, and Groq LLM API integration to generate tailored resume variants and personalized outreach messages per job listing.
Implements an application and networking pipeline tracker with status management across roles and contacts, replacing manual spreadsheet workflows.
Star Wars: Empire at War Mod
3,500+ UsersSteam Workshop — Steam Page
- Extended an existing large-scale mod by enabling additional factions to utilize boarding mechanics while maintaining compatibility with upstream systems
- Modified health-based probabilistic calculations by adjusting success weighting and thresholds, significantly increasing boarding reliability while preserving randomized outcomes
- Rebalanced interconnected gameplay systems by tuning ship health, shield values, and shuttle ability cooldowns to support smoother and more consistent gameplay
- Packaged, deployed, and maintained the mod via Steam Workshop, supporting 3,500+ active players and delivering iterative updates based on community feedback
Image Classification API
Custom CNN on CIFAR-10 served via REST API — github.com/graysonman/Image-Classification-API
Trained a convolutional neural network from scratch on the CIFAR-10 dataset (10 object classes) and exposed it as a production-style REST API using FastAPI. The service accepts image uploads via POST /predict and returns the predicted class.
Containerized the full training and inference pipeline with Docker for reproducible deployment. Demonstrates end-to-end ownership of an ML system from model architecture and training through API design and containerized delivery.
Deep Q-Learning from Scratch
DQN / Double DQN on CartPole-v1 — github.com/graysonman/rl-cart-pull
Implemented Deep Q-Learning (DQN) from scratch using PyTorch and Gymnasium — no RL-specific libraries. Built core components including experience replay, a target network, and a Double DQN variant to address value overestimation bias.
Standard DQN plateaued around 180 average reward with instability. Double DQN with tuned exploration scheduling consistently exceeded the 200-reward benchmark on CartPole-v1, demonstrating how exploration strategy and training stability interact in value-based RL.
Fantasy Card Game
Designed and built a full browser-based card game using Next.js, PostgreSQL, and Supabase, supporting persistent player accounts, inventories, and progression systems with 150+ collectible cards.
Implemented secure multi-user systems using authenticated REST APIs, transactional database operations, and row-level security. Deployed and actively maintaining a live production environment.
Wedding Registry & RSVP
A full-stack wedding registry and RSVP application built with Next.js and Supabase. Guests can browse the registry and submit RSVPs, with all data persisted in a relational database.
This project reinforced authentication and session handling with Supabase and structuring reusable React components for a clean, responsive UI.
Lego Database Website
This personal project displays a database of lego sets that can be searched for and shows relevant information for different sets. It has a prisma database hosted on vercel and has python web scrapers that are run to update the database automatically for new sets or any other things that need updated. This project was made to continue in development and I plan to continually add to this as I learn of new things and have new ideas for it.
This project taught me how full stack applications work and was my first time using React and NextJS. I learned how to host and manage a database as well as how to pull and push to it.
Automated Product Pricing Updates
This project was done for my company to automate the pricing update of our entire product catalog. This saved the company every fiscal quarter 2 weeks of work for an employee. This totalled for an entire 2 weeks worth of work each year being done automatically by a computer. This not only frees up the employee to no longer do this manually but saved the company thousands a year.
This project taught me how to update a database. I also learned how web scraping works and the legality of what can be done with scraping.
Blackjack Game
This Java based game was done in collaboration with 5 other developers in a week. The project was created to show how multithreaded client server design structures work. I coded the client side and the GUI for the client.
This project taught us how to use requirement documentation and how to read UML diagrams and create code from documentation.
C++ Data Structures
I have created many different C++ applications testing different data structures.
One was a chunk list that stores data inside the chunk and allows editing to it.
Another was a tree that was a dictionary to play a boggle game.
The last was a bucket or an array of linked lists that would contain words by each character.
Java DVD Collection
This project was a way to store and organize a movie collection.
Users could add or remove or pull a movie at random and see some basic information like runtime, rating, and the poster for the movie.