HEROICS.DEV

Work & Projects

Professional experience, side projects, and tools I've built. I focus on backend systems and developer tooling, with a strong lean toward integrating AI into the development workflow.


Professional Experience

Enterprise Transportation & Logistics

Software Engineer · Freight Management Platform · July 2024–Present

Company name available on request

Current

A freight management platform handling real-time load visibility, event tracking, and data delivery for carriers, shippers, and internal operations at scale. I work on the distributed microservices backend built on Java/Spring Boot, wired together by event streams, with Elasticsearch as the read layer and Kubernetes for orchestration. My work spans feature development, production debugging, observability, and tooling in roughly equal measure, with a consistent thread of finding ways to use AI to reduce manual toil.

Event-Driven Systems

AMQ listeners and Kafka consumers that process load lifecycle events (dispatches, check calls, pickups, equipment changes) and fan them out to downstream services and an Elasticsearch read layer.

REST API Development

Feature work and bug fixes across several Spring Boot APIs, including a Load Details API and a Unified Load Events topic. Covers DTO mapping, pagination, query optimization against SQL Server and DB2, and backward compatibility across API versions.

Observability

Dynatrace dashboards for seven owned services, covering request throughput, failure rates, AMQ queue depth, pod restarts, and response time trends. Built with DQL timeseries queries and Davis AI alert configuration.

Developer Tooling & AI

Built MCP server integrations (Dynatrace, Azure DevOps) into daily development workflow for faster context switching. Wrote a Copilot CLI skill that automatically surfaces work items merged but not yet deployed, replacing a multi-step ADO navigation chain.

Java 17/21Spring BootKafkaElasticsearchKubernetesDynatraceSpring CloudApache CamelAzure DevOpsRedisKeycloakBigQuery

Education

M.S. Information Technology

Arkansas Tech University

2017–2019

B.S. Computer Science

Arkansas Tech University

2012–2016

Projects

NFL Momentum Analyzer screenshot 1
CLICK TO EXPAND

NFL Momentum Analyzer

Play-by-play momentum visualization for every NFL game

In Progress

Full-stack tool that ingests NFL play-by-play data and converts it into a continuous momentum score for each team. Twenty-plus event types (touchdowns, turnovers, sacks, fourth-down conversions) are weighted by a multi-factor system accounting for game clock, score differential, field position, and down-distance. The result is an interactive chart showing exactly when and why a game shifted.

  • Momentum decays at 0.995× per second and earns streak bonuses up to 1.5× for consecutive positive plays, creating realistic ebb-and-flow dynamics
  • Comeback detection flags teams that overcame a 40+ point momentum deficit and regained the lead, with full context on timing and swing magnitude
  • Timeout leverage modelled after academic research: opponent momentum decays 12% on timeout, calling team gets a 3% reset bonus
PythonFastAPISvelteKitPostgreSQLChart.jsnfl_data_pyRailwayVercel
Coffee Recipe Manager screenshot 1
CLICK TO EXPAND

Coffee Recipe Manager

Full-stack recipe platform with JWT authentication and sharing

Complete

Spring Boot application for creating and sharing coffee brewing recipes. Users register beans (origin, roast, flavor profile) and brewing instructions (method, grind size, water temp, ratios) independently, then combine them into recipes that can be kept private, made public, or shared directly with other users. Exposes a full REST API alongside a traditional web UI, both secured through different auth strategies.

  • Dual security filter chains: the API layer uses stateless JWT Bearer tokens while the web UI uses session-based form login, both running in the same Spring Boot app via @Order-separated SecurityFilterChain beans
  • Custom DatabaseValidatingSecurityContextRepository validates active sessions against the database on each request, automatically invalidating sessions if a user account is modified or deleted
  • Recipe access control enforced at the query level: a single JPQL JOIN FETCH checks three conditions (public, owned by the requester, or explicitly shared) before returning any recipe
Java 21Spring BootSpring SecurityJWTJPA/HibernateH2REST APIMaven
Fantasy Football Discord Bot screenshot 1
CLICK TO EXPAND

Fantasy Football Discord Bot

ESPN fantasy league data, right inside Discord

Complete

Discord bot that connects to the ESPN Fantasy Football API and surfaces league data through slash commands. Covers team rosters with live scoring, player stats, head-to-head comparisons, league standings, and a sleeper-pick finder. Supports multiple leagues per user with persistent registration so each person gets their own default league.

  • Handles inconsistent ESPN API responses across versions by checking 4+ alternate attribute names and fallback dict keys for scoring data
  • League analytics suite: calculates consistency (score std dev), efficiency, luck index, schedule difficulty, and weekly extremes across the full season
  • Exponential backoff retry logic with 2-second delays keeps the bot stable when ESPN's API is slow or rate-limiting
Pythondiscord.pyESPN APItabulate
Spotify MCP Server screenshot 1
CLICK TO EXPAND

Spotify MCP Server

Give Claude full control of your Spotify account

Complete

Local MCP server that connects Claude Desktop to the Spotify Web API, letting the LLM read your listening history, search tracks, manage playlists, and control playback through natural language. From a single prompt, Claude can analyze your taste across saved tracks and recently played history, then create and populate a curated playlist without you ever opening Spotify.

  • Implements the Model Context Protocol so Claude Desktop discovers the server automatically and exposes each Spotify action as a named tool
  • OAuth 2.0 flow handled server-side, so Claude can authenticate and refresh tokens on your behalf with no manual token management required
  • Dockerised with a compose file so the server runs as a persistent background service and survives reboots without manual restarts
JavaScriptNode.jsMCPSpotify APIOAuth 2.0Docker
ClickDPS screenshot 1
CLICK TO EXPAND

ClickDPS

How fast can you click? A retro-styled damage counter

Complete

Interactive browser game that tracks your clicks-per-second in real time. Every click spawns a floating damage number styled after classic RPG combat text, with six switchable visual themes ranging from green phosphor terminal to arcade neon. Built as an experiment in browser animation APIs with no framework dependencies.

  • Six retro visual themes (DOS amber, green phosphor, hacker terminal, arcade) plus three hit-marker animation styles toggled with zero page reload
  • DPS calculated over a sliding 2-second window refreshed every 100ms for a smooth, responsive readout
  • Five distinct randomization modes control trajectory, rotation, and scale of damage floaters, each producing a noticeably different feel
HTML5CSS3JavaScriptCSS Animations
ShpleetCode screenshot 1
CLICK TO EXPAND

ShpleetCode

A terminal LeetCode environment with built-in Claude integration

Complete

Bash tool that spins up a three-pane tmux session (Neovim for writing code, a problem description pane, and Claude Code with a custom MCP server) so you can practice LeetCode problems without leaving the terminal. Includes 150 NeetCode problems scraped with descriptions, boilerplate, and metadata. Claude can see your current file in real time through the MCP server with no manual copy-pasting.

  • Custom Node.js MCP server exposes 6 tools to Claude: fetch current file, list/search/filter 150 problems, retrieve problem details, mark solved, and pull progress stats
  • fzf problem browser shows difficulty, category, Blind 75 status, and completion state with full problem preview on hover
  • Auto-save Neovim integration triggers on CursorHold so Claude always has the latest version of your solution without manual intervention
BashtmuxNeovimNode.jsMCPfzf
Personal Hub screenshot 1
CLICK TO EXPAND

Personal Hub

This site: gaming dashboard, portfolio, and more

In Progress

Central hub built with Next.js App Router. The gaming section pulls live rank data from ballchasing.com for Rocket League, syncs 290+ Steam games with playtime and achievement completion, surfaces the rarest unlocked achievements across the library, and lets you mark games as completed or dropped with optimistic UI updates.

  • Achievement rarity sync script processes 110+ qualifying games against the Steam global percentages API to surface genuinely rare unlocks
  • FOUC-free light/dark mode via an inline script that reads localStorage before React hydrates, with CSS variable theming throughout
Next.jsTypeScriptTailwind CSSSteam APIballchasing.com

Skills

Languages

  • Java 17/21
  • TypeScript
  • JavaScript
  • Python
  • Bash
  • SQL

Frameworks

  • Spring Boot
  • Spring Cloud
  • Apache Camel
  • React
  • Next.js
  • FastAPI

Data & Messaging

  • Apache Kafka
  • Elasticsearch
  • SQL Server
  • PostgreSQL
  • Redis
  • ActiveMQ

Infrastructure

  • Kubernetes
  • Docker
  • Azure DevOps
  • Helm
  • Keycloak
  • CI/CD

Observability

  • Dynatrace
  • DQL
  • Google BigQuery

Tools & AI

  • MCP
  • GitHub Copilot
  • Git
  • Linux
  • tmux
  • fzf