Projects

🌞 Golden Sol Tanning

A modern, fast, and fully custom website for a mobile spray tanning company in Scottsdale.

Golden Sol Screenshot

Tech Stack

  • Next.js 15 – App Router, Turbopack
  • React 19
  • Tailwind CSS 4
  • Firebase Admin SDK + Firestore
  • React Icons, clsx, custom hooks

Key Features

  • Custom analytics system (no third-party scripts)
  • Tracks page views, screen size, IP address, referrer, user agent, and visit time
  • Appointment booking with email notifications via Resend
  • Serverless tracking and appointment data logging with Firebase Firestore
  • Responsive, accessible, and mobile-optimized design

🧰 Tauri List Tool

A fast, cross-platform ETL utility built with Tauri + Next.js + TypeScript to process DNC lists, scrub call center data, and save hours of manual work.

Tauri list tool screenshot 1Tauri list tool screenshot 2

Tech Stack

  • Tauri – Native desktop app shell powered by Rust
  • Rust – Backend system and app bundling via Tauri
  • Next.js – Frontend UI
  • TypeScript – Typed app logic
  • Tailwind CSS, React, Bun

Key Features

  • Scrubs and preprocesses DNC and lead data lists
  • Locally bundled .EXE and MSI builds for Windows users
  • Used daily by call center coworkers
  • Two-process dev flow with Tauri and Next

🛡️ ThreatDetector

A modular Apache log parser written in Perl to detect intrusion attempts on Linux-based web servers and Vicidial systems. Install the module, call ThreatDetector::ThreatDetector::analyze_log(), and it just works — no config needed.

SQL Injection
XSS & Command Injection
Brute Force Logins
Suspicious Headers
Encoded Payloads
Client Errors & Method Abuse
Parsing log file...
[2025-07-06 12:21:33] [SQLInjection] 192.168.1.42 GET /index.php?id=1%20OR%201=1
[2025-07-06 12:21:35] [XSS] 192.168.1.42 GET /search?q=<script>alert(1)</script>
Threat summary saved to ./2025-07-06_threat_results.log

Key Features

  • Detects and classifies 10+ web attack types from Apache logs
  • Drop-in usage with analyze_log()
  • Verbose output for CLI visibility
  • No external config or setup required
  • Minimal dependencies: Perl 5.10+ and core CPAN modules

Modules Used

  • JSON, File::Slurp, Getopt::Long
  • Time::HiRes, POSIX, IPC::System::Simple

🚀 nvm-pl — Node Version Manager for Perl

A fast, lightweight, cross-platform Node.js version manager written in pure Perl. Install, switch, and manage multiple Node.js versions with ease — with full support for Linux, macOS, Windows, Bash, Zsh, Cmd, and PowerShell.

Fast (Pure Perl)
Linux Support
macOS Support
Windows Support
# Install NVM::Perl
cpanm NVM::Perl

# Install Node.js
nvm-pl install 25.1.0

# Switch to a version
nvm-pl use 25.1.0

# List installed versions
nvm-pl ls

Key Features

  • Fast & lightweight — written entirely in Perl
  • Cross-platform: Linux, macOS, Windows
  • Supports Bash, Zsh, Cmd, and PowerShell
  • Smart caching avoids re-downloading Node.js
  • Auto-updates shell configuration
  • 72+ tests, CI/CD on 3 platforms

Why nvm-pl?

  • No slow shell hacks or massive JS deps
  • Reliable, well-tested, clean codebase
  • Same commands as nvm — easy migration
  • Instant switching via symlink/junction system