A Lifetime of Learning
About Me
I'm a hands-on builder fueled by a lifetime of learning — from the Marine Corps to the cloud.
Contact
What I Bring
- ✓Rapid learner who proactively acquires and masters new skills
- ✓Calm and effective in high-stress, fast-paced environments
- ✓USMC-forged discipline, leadership, and ownership mindset
- ✓Strong team player and leader; equally effective working solo
- ✓Driven by business-positive, outcome-focused solutions
USMC — Network Administrator (Jun 2018 – Mar 2022 · Quantico, VA)
I served nearly four years in the United States Marine Corps as a Network Administrator in the National Capital Region — providing engineering, deployment, maintenance, and end-user support for U.S. government networks including the FBI Field Academy, USMC Officer Candidate School, and HQ Marine Corps. Day-to-day I configured and maintained routers, switches, firewalls, and network infrastructure for environments where reliability was non-negotiable.
I directly supervised two junior Marines — responsible for their complete management including work schedules, inspections, grooming standards, physical training, and professional development. As an NCO I was also co-responsible for the broader junior enlisted group alongside other NCOs, collectively pushing the standard on professionalism, fitness, and effectiveness across the unit.
After the Corps, I spent nearly three years as a support technician — resolving over 4,200 tickets at 18% faster than the company average — before transitioning fully into software development, where I've been building ever since.
What drives me?
Building software
that
helps people — tools that save time, deliver better information, and make everyday work a little less painful.
I can't stop learning, tinkering, and hunting for the next problem worth solving — and I wouldn't have it any other way.
See some examples of my work below!
Light Labs
SMS-powered tools for dumb phone users who refuse to compromise.
The Problem
I’m a Light Phone user — a dumb phone with a deliberately closed “OS” (technically a React Native launcher, but we’ll let them have it). Their system uses “tools” instead of apps and is intentionally locked down. No TikTok, no distractions — but also no easy way to get news, weather, or quick answers without pulling out a second device.
The Solution
SMS is still a way in — even on a fully locked-down platform. Light Labs delivers weather, news, AI answers, and AI-powered search — all via text message. Stay light. Stay informed.
Technologies Used
- AlpineJS
- Cloudflare Workers AI
- Cloudflare Pages
- Twilio
- Self Hosted Firecrawl
TewDewAI
An AI-powered take on the humble to-do list — currently in alpha.
My take on the to-do app trope — but actually useful. Drop in a high-level goal and let AI break it into clear, actionable steps. Less staring at a blank list, more getting things done.
Still in alpha, but fully functional — give it a spin and see how it handles your next big task.
Technologies Used
- AlpineJS
- Cloudflare Workers AI
- Cloudflare Pages
Microtunnel
Centralized credential sync and permission management for your LAN.
The Problem
Businesses relying on SMB shares and LOB apps often manage user access manually — adding, updating, and revoking permissions one at a time. It's slow, inconsistent, and a security liability. Remote workers VPNing in only add more complexity to an already fragile setup.
The Solution
Microtunnel is a SaaS platform I built that syncs and manages user credentials across a LAN — giving users consistent, reliable authentication against SMB shares and LOB apps whether they're on-site or connected via VPN. No more manual permission wrangling or one-off access requests.
Technologies Used
- TypeScript / React / Next.js
- Cloudflare Workers, KV, D1, R2, Durable Objects
- Tailwind CSS
- Clerk (Authentication)
- SMB / Windows credential integration
TeamSender
Affordable, no-app-required SMS blast messaging for teams and organizations.
The Problem
Many organizations struggle to communicate well with fleet employees, volunteers, or other large groups of people. Downloading apps is a huge headache and other SMS solutions involve a ton of overhead and are WAY too expensive.
The Solution
That's why we're building TeamSender.com, A better way to communicate using one way bulk sms sending. Built for schools, amateur sports leagues, churches, companies with fleet workers and more! It's simple easy and affordable
Technologies Used
- AlpineJS
- Cloudflare Workers
- Cloudflare Pages
- Cloudflare R2, D1 and KV
- Twilio
EDNA — Automated VoIP Documentation via Nanoservice
I built EDNA to eliminate the manual overhead of VoIP documentation — saving technicians real time, every single day.
The Problem
Making updates to client phone settings and users via a third-party VoIP vendor dashboard was inefficient and slow. Each request could take 15–30 minutes due to slow UI performance, making the process frustrating and time-consuming for technicians.
The Original Solution
EDNA is a service I wrote in Node.js and spun up in a Docker container. It pulls documentation data from our RMM/PSA tool, compares it with live VoIP user data from our vendor's API, and updates the more responsive documentation interface accordingly. This replaced slow dashboard navigation with fast, accurate updates.
Optimized
I optimized EDNA with a smart cache. It stores the last-known-good vendor state and syncs only when changes are detected. This reduced API calls to our RMM provider by over 99%, improved performance, and reduced resource consumption cutting wall time by ~50%.
Technologies Used
- Node.js
- REST APIs (RMM/PSA + Vendor API)
- Docker
- Synology Hardware
- Cron Scheduling
EDNA became a trusted internal tool — saving technicians 5–20 minutes per user update and cutting API overhead by over 99%. (The name never quite stuck, but the time savings did.)
ClockToggle
A Stream Deck + Python automation that killed the manual clock-in habit for good.
I built this out of frustration with forgetting to clock in. It’s a simple automation—but it made a real impact.
The Problem
Clocking in manually with our PSA was unreliable. Forgetting to track time hurt reporting accuracy and cost up to 15 seconds, it also cost time to fix mistakes on the backend and it was just one more thing to remember in the morning.
The Solution
I created a Python script to hit our PSA’s clock-in/out endpoints via HTTP, then bound it to a custom Stream Deck button. Time tracking became a one-tap action, which removed friction from my workflow. Made it easy to remember and saved me a few seconds each day, which adds up!
Technologies Used
- Python
- Requests (HTTP auth)
- Stream Deck
- PSA API
Improvements
Later I added error handling, credential prompting, and TOTP authentication — turning a personal hack into a shareable team tool. Small project, big confidence boost.
This project taught me something I've never forgotten: the right automation in the right place can make daily work dramatically smoother. It also lit the fuse on my love of scripting and backend tooling.
NOTE: I didn’t know much about security then, so the API token was stored in the registry (we’ve since switched time tracking tools and I haven’t rebuilt it—yet).
Support Dashboard
A purpose-built Electron ticketing app that replaced email chaos with structure and clarity.
Our clients deserved better than hunting through cluttered inboxes for support updates. I built this to give them a clean, reliable alternative — and to give our team a process they could actually depend on.
The Problem
Many clients found email-based ticketing unreliable—easy to overlook, hard to track, and messy to use. Important issues were buried, and users had no clear process for submitting tickets. We needed to give them structure and visibility.
The Solution
I built an Electron desktop app with a clean, modern UI, ticket templates for consistent intake, and seamless sign-in via a home-rolled TOTP auth system. I also built a custom auto-update mechanism and integrated it with our RMM provider for fast, friction-free ticketing.
Technologies Used
- Electron + Electron Forge
- Node.js
- Custom Updater System
- Home-Rolled TOTP Authentication
CLIO Cleaner
Document archive automation that drastically reduced OneDrive sync issues
This custom web app solved an enterprise-scale file sync disaster for a legal client — giving them a self-serve archive tool that fit their existing workflow without disrupting it.
The Problem
A legal firm using CLIO had over 1 million folders shared across dozens of users in OneDrive. The massive sync load caused constant failures, helpdesk tickets, and frustration—without a clear way to fix it from CLIO.
The Solution
I built a secure web app that let users archive or "thaw" CLIO folders with a single click. Archived folders were moved to a SharePoint "cold storage" site with restricted access, while thawed folders returned to OneDrive—complete with preserved permissions and audit logs via Microsoft Graph.
Technologies Used
- Microsoft Graph API
- Azure Multi-Tenant App Registration
- SharePoint Online
- Cloudflare Tunnels
- Synology Docker Host
Sync issues dropped from weekly disruptions to fewer than two tickets in six months. The client gained a reliable, self-serve tool that fit into their existing workflow and extended CLIO’s value—no messy workarounds required.
Employee Upskilling Notification Parser
Custom data parsing where Power Automate couldn’t keep up
This lightweight background service turned messy, unreliable Microsoft Lists exports into clean, real-time training milestone notifications — unlocking automation that Power Automate simply couldn’t handle.
The Problem
Our in-house LOB app tracked employee training milestones using MS Lists, but the data structure was too complex and inconsistent for Power Automate to handle reliably. This made it impossible to trigger notifications or downstream workflows based on training events.
The Solution
I built a lightweight Node.js nanoservice that parsed and normalized the MS List export, identified key triggers like completed training, and sent that data to our LOB system via custom webhooks. This allowed us to bypass Power Automate completely while keeping the system responsive and accurate.
Technologies Used
- Node.js
- Docker
- Synology NAS
- Express.js
The service gave the client real-time, automated milestone alerts, and reduced manual oversight. (It also saved the tech trying to get it to work in Power Automate an unknowable amount of pain and tears trying to get it to work)
New Company Website
Built in-house with performance and maintainability in mind
When the company needed a new website, I stepped up to lead the build. I partnered with our design-focused tech to translate concepts into a fast, polished front-end that accurately reflected our brand and values.
We're actively migrating to Alpine.js to replace heavier JavaScript dependencies, improve page load speed, and make the site easier to maintain long-term.