Skills
What I build with and maintain
Programming Languages
Frameworks
Tools
Experience
Professional experience and education
Jan 2026 — Present
Systems Engineer
ImageNet (MSP)
Architected Azure AD and Microsoft 365 tenant configurations, managing 500+ user identities across hybrid cloud environments. Automated endpoint provisioning workflows using PowerShell scripts, reducing deployment time by 60%.
Dec 2025
B.S. Computer Science
Florida Atlantic University
Graduated from FAU with a Bachelor of Science in Computer Science. Built production-grade web applications and automation tooling throughout the program.
Feb 2024 — Jan 2026
Technician
Treasure Coast IT Solutions (MSP)
Designed and implemented network infrastructure solutions including VLAN segmentation and secure VPN access for multi-building facilities. Managed IT infrastructure for 30+ sites, overseeing Windows/Linux servers, networking, and security systems. Guided a 3-month university student internship leading a hands-on automation project.
Projects
Things I've built
Coding agents got fast; reading what they did didn't. A long agent turn arrives as a wall of terminal scrollback, and buried somewhere in it are the two decisions that actually needed you. Shelly makes visual output the default working mode: agent sessions — Claude Code or Codex — run inside embedded terminals, and each turn the agent writes a self-contained HTML page (a status card, a plan, a diff review) that Shelly floats in a panel over your work without stealing focus. You read the page instead of the scrollback, then answer in place — a ✓/✎/✗ ballot on the proposed next steps and a comment affordance on every block. Click the exact paragraph you're asking about and your reply is compiled into prose and injected straight into that agent's live session; you never type into a terminal. It's a desktop app rather than a web page because the panels have to sit over your terminal without taking focus and the agents have to actually run somewhere: Shelly registers an Objective-C NSPanel subclass at runtime from Rust and swaps framework-owned windows into it, runs each agent CLI in an owned PTY, and treats agent-authored HTML as untrusted — sandboxed opaque-origin iframes, a typed message protocol, and a hard gate that stops remotely-fetched pages from reaching a local shell. The Board unifies every session in one surface: artifact history, unread counts, live status, and a read-only diff of the files a session has touched. ~22k lines of Rust and TypeScript on Tauri v2, 23 releases over two months, MIT and public.
Open Source Contributions
PRs shipped to repos I don't maintain
~600,000x speedup on the Resize operator via separable interpolation
ONNX (Open Neural Network Exchange) is the Linux Foundation AI standard for ML model interoperability, used by PyTorch, TensorFlow, scikit-learn, and every major ML framework. Rewrote the ReferenceEvaluator Resize operator using separable 1-D interpolation, replacing per-output-pixel recursion with vectorized numpy operations. Achieved ~600,000x speedup (15 minutes to 1.5 ms on a typical (1,32,20,20) → (1,32,40,40) bilinear/half_pixel resize) while preserving bit-exact numerical compatibility (max diff <1e-10) across 294 test configurations covering every mode × antialias × coordinate_transformation_mode × shape combination, plus tf_crop_and_resize extrapolation and axes-restricted resizes. Resolved a long-standing performance issue (#6554) open since November 2024. Full 1798-test backend suite passes; ruff and mypy clean.
Automations
Operational systems running in production
Change-Log Dashboard
● runningAccounting couldn't see what changed per company when a client disputed a bill. Every system, licence and payment change lived in one Slack channel and nowhere else.
change records parsed from 1,196 messages · 94% carry a ConnectWise ticket
MTX Ticket Observer
● runningNo passive view of ticket activity to feed downstream automation. Polling the PSA adds load and needs credentials.
fields captured per ticket, read-only — the service adds zero requests of its own
Endpoint Provisioning
● runningNew-hire endpoint setup was manual and inconsistent across a hybrid Azure AD and Microsoft 365 estate of 500+ identities.
reduction in deployment time
Gated M365 Action Engine
◐ buildingRoutine helpdesk actions — password resets, licence moves — were manual and unlogged.
design principles fixed before the first line of code — human approval on every action, append-only hash-chained audit log, no ticket data through a model
