portfolio.sh -- 80x40
bash 5.2.21
aaron@localhost:~/portfolio $ cat whoami.txt
  ██╗   ██╗███████╗████████╗██████╗ ███████╗██╗   ██╗
  ██║   ██║██╔════╝╚══██╔══╝██╔══██╗██╔════╝██║   ██║
  ██║   ██║█████╗     ██║   ██║  ██║█████╗  ██║   ██║
  ╚██╗ ██╔╝██╔══╝     ██║   ██║  ██║██╔══╝  ╚██╗ ██╔╝
   ╚████╔╝ ███████╗   ██║   ██████╔╝███████╗ ╚████╔╝ 
    ╚═══╝  ╚══════╝   ╚═╝   ╚═════╝ ╚══════╝  ╚═══╝  
      
// veteran  ·  engineer  ·  builder  ·  lifelong learner
# /usr/local/bin/about -- system profile
status ● actively building
background U.S. Army veteran (Active Duty, Reserve & National Guard)
current role AI & Automation Engineer @ MSP
focus Reducing toil through intelligent automation; owning the full stack
domains Software Engineering · Network Engineering · Systems Admin · Cloud Infrastructure
also pursuing B.S. (in progress) -- VA education benefits
kernel Mission-first. Learn fast. Ship clean.

I came up through the military -- where clear communication, structured processes, and doing the job right the first time aren't aspirations, they're requirements. That discipline carried directly into IT. I've held every rung of the ladder from helpdesk to automation engineering, and the constant across all of it has been a belief that simplicity is a force multiplier. Complex systems fail in complex ways. Simple, well-understood systems don't. I build things I'd be comfortable operating at 2AM.

# git log --oneline --career
AI & Automation Engineer ● current

Designing and deploying internal automation tooling for a managed service provider. Building services that cross-reference identity platforms, RMM data, and Microsoft 365 to reduce licensing waste and alert fatigue. Integrating LLMs and real-time APIs into operational workflows. [TypeScript · Go · PowerShell · Azure · OpenAI API]

Systems Engineer prev

Administered hybrid Exchange and Microsoft 365 environments. Managed complex migrations including mailbox cutover, OAuth certificate maintenance, and AD Connect orchestration. Handled firewall policy, Cisco switching, and endpoint hardening across SMB client infrastructure. [Exchange · M365 · AD · Cisco · PowerShell]

Support Desk Engineer prev

Tier 2/3 escalation support across a multi-tenant MSP client base. Network troubleshooting, endpoint management, identity issues, and escalation triage. Built internal tooling and documentation that cut repeat ticket volume significantly.

Field Technician prev

On-site deployment and break/fix across diverse client hardware environments. Network cabling, switch configuration, workstation imaging, and hardware repair.

Helpdesk Support Analyst origin

Entry point into civilian IT after military service. Tier 1 support, ticket routing, and foundational troubleshooting. Where the operational mindset from the Army met the reality of enterprise IT.

# lsmod | sort -- loaded competencies
languages & runtimes
Go TypeScript PowerShell JavaScript Bash Python SQL
cloud & infrastructure
Microsoft Azure Microsoft 365 Azure Functions Azure Logic Apps Entra ID Exchange Online MS Graph API
networking & security
Cisco IOS Systems Hardening TCP/IP Subnetting DNS / DHCP / ARP Wireshark MFA / Zero Trust Firewall Policy
devops & tooling
GitHub Actions CI/CD Pipelines Docker RMM Platforms PSA / Autotask REST APIs Node.js / Express
ai & automation
LLM Integration Agentic Workflows OpenAI API Anthropic API Twilio / Voice AI Rewst Workflow Orchestration
# ls -la ~/builds/ -- notable work
Identity Reconciliation Service TypeScript · Express

A background service that cross-references MFA platform users against Microsoft 365 accounts to surface inactive, orphaned, or excess licenses. Runs on a schedule and integrates with PSA tooling for automated remediation tickets.

TypeScript Express MS Graph API PM2 GitHub Actions
PST File Scanner Go

A compiled CLI binary deployed via RMM that recursively scans Windows endpoints for PST files, reporting size and path for centralized review. Deployed with a PowerShell wrapper that configures Defender exclusions and injects configuration via environment variables.

Go PowerShell Windows Defender API RMM / CentraStage
Voice Alert Automation TypeScript · Node.js

An automated phone-call system triggered by RMM alerts. Bridges a voice platform with OpenAI's Realtime API to deliver dynamic, context-aware alert summaries over an outbound call. Solves live context injection into a running AI session via transport-layer event hooks.

Twilio OpenAI Realtime API TypeScript WebSockets
Client Ticket Portal Vue.js · Express · Azure

Multi-tenant self-service ticketing portal for MSP clients. MSAL-authenticated via Microsoft 365 accounts with an Express backend integrated into a PSA platform. Supports per-tenant branding and Teams app deployment with SSO.

Vue.js Express MSAL / Entra ID Autotask API Azure App Service
Firewall Uptime Monitor Node.js

A lightweight service that pings client WAN interfaces on a schedule and fires multi-channel notifications on outage detection. Gives MSP engineers early warning before client calls come in with configurable alert routing and escalation thresholds.

Node.js ICMP Webhook Notifications
# cat /etc/philosophy
Simplicity is a force multiplier

In a world that compulsively adds complexity, the ability to reduce a system to its essential parts is a rare and undervalued skill. Simple systems are auditable, debuggable, and operable by anyone on the team -- including future you at 2AM. I design for clarity first.

Own your data. Own your stack.

The sanctity of data is not a compliance checkbox -- it's a first principle. Sensitive information should live where you control it, encrypted, with access you can audit. I prefer self-hosted where feasible and minimal vendor lock-in as a default architectural stance.

Document as you build

Military service drilled one habit above all others: write the SOP before you need it. I document systems, decisions, and runbooks in parallel with building them. Institutional knowledge that lives only in someone's head is a liability.

Security is a default, not an afterthought

Hardening happens at design time. Least privilege, encrypted secrets, auditable access, no default credentials -- every time, no exceptions.

Lifelong learning is non-negotiable

The field changes fast and the people who keep up are the ones who stay curious on purpose. I'm in school while working full-time because I believe there is no end state to knowing enough. There's only the next thing worth learning.

# ping -c 1 aaron -- initiate contact
$ whois aaron
location Ohio, USA
availability ● open to conversations

$ echo "If you build things that matter, let's talk."

I'm most energized by problems where there's real toil to eliminate, real data to protect, or real infrastructure to make more resilient. If you're working on something like that, I'm interested in the conversation.

aaron@localhost:~/portfolio $ 
NORMAL about