Earlier this month, I wrote about building Unboxed, a native macOS app to convert Google Vault MBOX exports into PDFs. The goal was simple: make email archives accessible to non-technical staff handling open records requests. The app worked, but it had a problem—it was slow. Really slow. Large MBOX files would chug along, eating up memory and often crashing the app entirely. I suspect the culprit was PDFKit, Apple’s framework for generating PDFs, struggling to keep up with the workload. ...
Unboxed - MBOX to PDF
A problem I never asked for… If you’ve ever had to handle legal record requests or data exports from Google Vault, you know the pain: you get a shiny .mbox file that’s worthless as-is. Sure, it’s technically a “standard” email format, but try handing that to an attorney, or literally anyone who doesn’t live in a terminal. Unboxed I built Unboxed to solve this exact headache. It’s a native macOS app to convert your MBOX file into usable PDFs. ...
viewFMX
My workplace recently adopted FMX as a platform for managing facility resources and availability. The platform provides robust scheduling capabilities and has proven invaluable for managing room bookings and resource allocation across our district. However, we quickly identified a gap in our implementation: the need for clear, real-time displays outside each conference room showing current and upcoming bookings. While there are commercial products available that offer this functionality, FMX doesn’t provide dedicated display hardware or a standalone display solution. What they do offer, though, is a comprehensive API - and that’s where my journey began. ...
2F2Chrome
My wife & I migrated to iPhone a few year ago. Having previously never owned one, I grew accustomed to the seamless integration between iOS and macOS. A killer feature was the handling of two-factor authentication codes. The native system, coupled with an app called 2FHey, made the whole process a breeze. Recently my wife mentioned switching back to Pixel… and hey, “Happy wife, happy life” is the saying right? As we made the leap back to Android, I found myself missing that smooth 2FA experience. And with that, 2F2Chrome was born. ...
orgLink
In today’s digital-first educational landscape, teachers are expected to navigate a complex web of online resources. From learning management systems and grading portals, to curriculum repositories and communication platforms, the number of essential links can be overwhelming. To address these issues, I developed an internal extension deployed via our Google Workspace account. This tool provides a centralized, easily accessible hub for all essential web resources used by teachers in our district. I decided recently that this extension could be improved upon, and made available for others to solve similar problems. ...
Experience
Celina ISD - Senior Systems Engineer September 2017 - Present Maintained and managed various IT systems including servers, networks, storage infrastructure to ensure uptime and availability. Administered Windows and Linux servers, including regular updates, patch management, and security configurations. Designed and implement robust backup and disaster recovery solutions, aiding in the preservation of critical data. Administered Active Directory, Azure, Google Workspace. Including user provisioning, group policy management, and access control, supporting over 5500 end users. Directed the transformation to a virtualized infrastructure via the implementation of Hyper-V, VEEAM, and the use of Linux containers through Docker. Performed regular security audits and vulnerability assessments, implementing necessary measures to protect against threats. Managed network infrastructure, including switches, routers, firewalls, and VPNs. Deployed Packetfence NAC for 802.1x authentication & role-based access control. Delivered technical training and documentation for end-users and IT staff. Implemented systems automation using Powershell, Python, SQL, and Rest APIs. Configured and maintained MDM solutions (Mosyle, Jamf Pro) for approximately 6000 Apple devices. NSSM, LLC - Full Stack Developer October 2015 - June 2017 ...
Aviligon Alta API - Physical Controls
This summer, our district is undergoing a much needed modernization project, transitioning from a legacy access control system to Avigilon Alta (formerly OpenPath). While deploying the demo system at our admin office, a functionality gap emerged: single-button front door control, something previously achievable with the old platform. Recalling the availability of an Avigilon Alta API, I saw an opportunity to leverage it for a custom door control. This project, AltaNode, utilizes an inexpensive NodeMCU, buttons, enclosure, and the aforementioned API to allow quick control of doors from a single button press. ...
NIM - PacketFence API Connector
I recently decided to move our district away from custom scripts for identity management and automation, towards a product provided by Tools4Ever, NIM. While doing so, I realized that NIM is a pretty powerful utility. NIM provides the ability for end users to develop custom connectors & internal applications, making NIM more than just a utility for automated identity management. While the team at Tools4Ever is happy to take your money to develop a new connector, I work in education, I don’t have money. Enter the documentation provided by NIM, full of useful information. Paired with their connector GitHub, anyone can build a connector, as long as your chosen product’s API plays nice. ...
About
As a Senior Systems Engineer, I am dedicated to architecting, implementing, and managing robust IT infrastructures that drive operational efficiency. My extensive knowledge spans a wide array of technologies, enabling me to design and maintain scalable systems tailored to meet any provided needs. I have expertise in, but not limited to, Systems Architecture and Design, Virtualization (VMware, Hyper-V), Cloud Computing (AWS, Azure), Server and Storage Solutions, Disaster Recovery Planning, Automation and Scripting (PowerShell, Python), & Database Management. ...
IncidentIQ - API & Automation
This week I decided to tackle some automation using the IncidentIQ API. The goal is to create a ticket in IncidentIQ when students are enrolled or withdrawn. API access for IncidentIQ is disabled by default. After a quick request to their support team, a new item in the dashboard appears under Administration > Developer Tools. This is where API tokens can be created, and a link to their documentation can be found. I also came across another public facing set of API docs here. ...