2 Years of Experience.

A Lifetime of Learning

TewDewAI

This one's in progress have mercy...

In a world that can't get enough AI... I finally felt obligated to work with it a little and produce something with some (at least theoretical) real world value. Which is how TewDewAI came about.

It's still in alpha but you can see the concept in the video below and if you want to give it a try, click through and play with it yourself!

EDNA โ€“ A friendly Nano service for better documentation

EDNA was implemented to increase efficiency through automated documentation

๐Ÿšฉ The Problem

Making updates to client phone settings via a third-party VoIP vendor dashboard was inefficient and slow. Each request could take 15โ€“30 minutes due to poor UI performance, making the process frustrating and time-consuming for technicians.

๐Ÿ› ๏ธ Technologies Used

  • Node.js
  • REST APIs (RMM/PSA + Vendor API)
  • Docker ๐Ÿณ
  • Synology Hardware
  • Cron Scheduling

๐Ÿš€ Initial Solution

EDNA is a service I wrote in nodeJS and spun up in a docker container. I run it on one of our work Synology servers. Initially it pulled documentation data from our RMM/PSA tool, compared it with live voip user data pulled from our vendors API, and updated phone group assignments accordingly in the far more responsive documentation of our RMM Tool. This gave our team a quick and consistent source of truth, replacing slow and frustrating dashboard-hunting with instant clarity.

โš™๏ธ Iterative Improvements

I optimized the service by introducing a smart cache: EDNA now stores the last-known-good vendor state locally. It re-syncs only if something has changed, reducing API calls to our RMM tool by over 99% and also decreasing resource consumption while increasing overall responsiveness.

๐Ÿ“ˆ Results

EDNA has become a trusted internal tool, (although not by the name EDNA ๐Ÿคฃ) saving technicians anywhere from 5-20 minutes each time a user is created or modified. It improved response time, eliminated guesswork and mistakes, and most importantly made everyone happier :)

EDNA Service Flow Diagram

A simple clock tool

I used Python + my Stream Deck to help me not forget to clock in!

๐Ÿšฉ The Problem

Clocking in and out of work using our PSA's timekeeping tool was a manual task that was easy to forget. Forgetting to track time properly created reporting issues and reduced the accuracy of billable hours.

๐Ÿ› ๏ธ Technologies Used

  • Python
  • Requests (for HTTP authentication)
  • Stream Deck
  • PSA API

๐Ÿš€ Initial Solution

I wrote a Python script that logged into our PSA timekeeping tool and triggered clock-in and clock-out events using simple HTTP requests. I then connected this to a custom Stream Deck button, turning time tracking into a one-tap action.

โš™๏ธ Iterative Improvements

After initial success, I refined the script to include error handling and simple notifications to confirm that clock-in/out was successful. I also generalized it so I could share it with others, I setup a system to get API tokens and subdomains from others and detect if they weren't present on the system running the script and to ask for them if they weren't.

๐Ÿ“ˆ Results

This simple tool helped me consistently clock in and out on time, reduced administrative overhead, and gave me a taste of how automation can make daily work smoother. It also kickstarted my interest in scripting and backend tools.

โš ๏ธ NOTE

It is worth noting that I knew nothing about security at the time so I was storing the API tokens in the registry. Now I know much better, but we also switched time tracking tools so... I haven't rebuilt the tool yet.

The Support Dashboard

A purpose built internal ticketing and communication tool built for clarity and speed

๐Ÿšฉ The Problem

Many of our clients found traditional email-based ticketing to be disorganized and difficult to manage or easy to miss. Important support requests were often buried in threads, and users lacked structure when submitting new tickets. We needed a better way for clients to create and track tickets.

๐Ÿ› ๏ธ Technologies Used

  • Electron
  • Electron Forge
  • NodeJS
  • Custom Updater System
  • Home Rolled TOTP Authentication

๐Ÿš€ Solution

I built the Support Dashboard as a lightweight desktop app with a clean modern user friendly interface and pre-built ticket templates to streamline submission and tracking. I implemented a TOTP-based sign-in system to keep access secure and developed a custom version control and update mechanism so users always had the latest features.

๐Ÿ“ˆ Results

The dashboard helped our clients isolate support conversations from their inbox and made the support process feel more intuitive personal and reliable. It also added that "We're thinking about you" touch. It strengthened our MSPโ€™s value proposition by improving response clarity, speeding up ticket resolution, and reducing friction for end users.

Employee Upskilling Notification Parser

A custom parsing service for development tracking where Power Automate fell short

๐Ÿšฉ The Problem

Our client used a line-of-business (LOB) app we built in house to track employee development milestones, but the data from MSFT Lists was too complex and inconsistent to be parsed by Power Automate. This made it difficult to trigger notifications or workflows when employees completed training or upskilling.

๐Ÿ› ๏ธ Technologies Used

  • NodeJS
  • Docker
  • Synology Hardware
  • ExpressJS

๐Ÿš€ Solution

I built a lightweight NodeJs service that ingested the raw output from the LOB app, parsed it into a consistent structure, and checked for relevant triggers like training completion. Once a match was found, the service sent data back to the system through a custom webhook for notification purposes.

๐Ÿ“ˆ Results

This service enabled the client to receive real-time notifications when employees finished key training milestones. It improved internal workflows, reduced manual checks, and provided better visibility into staff development.

New Website

When work needed a new website I was happy to put one together, with a little help from the more design oriented people at the company...

Currently we are migrating to AlpineJS in order to get away from some expensive JS functionality

๐Ÿ’ก Skills Showcase

I use Python for automation, parsing, and building lightweight services that bridge gaps between systems and improve workflow efficiency.
Iโ€™ve integrated and built webhook endpoints to allow systems to notify each other in real-time, improving responsiveness and automation.
Iโ€™ve built tools that interact with documentation and time-tracking in RMM platforms to speed up work and eliminate manual overhead.
I created custom Stream Deck integrations that allow me to quickly execute scripts, such as clocking in/out or triggering automation jobs.
Iโ€™ve used Cloudflareโ€™s API and tunneling capabilities to secure and expose internal services with minimal setup and great reliability.
Iโ€™ve used Cloudflareโ€™s API and tunneling capabilities to secure and expose internal services with minimal setup and great reliability.