Steamboat Springs, Colorado Remote support across the US · on site by arrangement [email protected]

Work

Projects I've run

A selection of recent work. Company names are left out, but the problems and the fixes are real.

  1. Acquisitions

    Merging an acquired company into the parent Google Workspace

    About 100 people · cutover over one weekend

    The problem

    An acquired company ran its own Google Workspace. Its people had to land in the parent tenant with their mail, calendars, files, groups, and integrations intact. On an earlier migration, copying Drive files had broken every shared link.

    What I did

    • Pre-provisioned 118 groups and 717 group memberships before cutover
    • Wrote a resumable Apps Script tool that moves Drive files instead of copying them, so links keep working, and logs every move to a sheet
    • Automated shared drive creation and user mapping with a service account and domain-wide delegation
    • Triaged every app that used Sign in with Google, color-coded by who had to act: IT, the user, or nobody
    • Reviewed 23 workflow automations that would break when accounts changed

    Result

    Cut over in one weekend with every Drive file and link intact. Calendar duplicates were the main issue, limited to 11 people.

  2. AcquisitionsDevices

    Moving acquired laptops onto company management

    Three acquisitions · Mac and Windows

    The problem

    Each acquired team’s laptops were managed by their old company. They had to move to the parent’s device management and endpoint protection without IT touching every machine.

    What I did

    • Built a self-service Mac migration with about 30 minutes of hands-on time and a 30-day window
    • Wrote the guide plus announcement, reminder, and last-day messages for email and Slack, refined after each round
    • Ran the Windows migration in waves so problems surfaced on a small group first

    Result

    All 38 Macs in the most recent round enrolled by the deadline, with 27 of them still pending three days out. The Windows fleet reached 75% after two waves, with 15 machines migrating with no hands-on help.

  3. IdentityAcquisitions

    Retiring two inherited identity providers

    Entra ID · SAML, OIDC, and SCIM

    The problem

    Two acquired companies brought their own Okta tenants, so employees had two places to sign in and IT paid for both. Some people sign in with their original company address and others with the parent’s, and one SSO setup had to handle both.

    What I did

    • Moved apps to Entra ID one at a time, running old and new sign-in side by side so nobody was locked out mid-move
    • Built a NameID rule that uses a directory attribute when it is set and the primary email when it is not, with SCIM split by the same attribute
    • Set up OIDC and SCIM for a product’s own admin platform, with a layered group model that grants elevated access without resetting anyone’s settings
    • Raised the pace of new SSO apps from about one a week toward one a day to clear a backlog of about 100 apps

    Result

    The CRM moved to automated provisioning with no disruption. Both inherited identity providers are on a schedule to shut down by early next year.

  4. DevicesSecurity

    Tying every laptop to an owner

    About 1,600 devices · five systems of record

    The problem

    The asset tracker, two device management platforms, endpoint protection, and the HR system each had a different idea of which laptops existed and who had them.

    What I did

    • Built a report with a teammate that matches every device serial number to one employee across all five systems
    • Flags devices that are unmanaged, unprotected, or enrolled but no longer checking in
    • Found about 50 laptops from one acquisition that were not reporting to endpoint protection and fixed them

    Result

    It surfaced 373 people with no assigned device and 28 laptops in a storage locker that no system knew about. Full compliance rose from 66% to 77% in two months, on the way to a 98% target.

  5. Security

    Choosing and rolling out a secure web gateway

    About 1,700 endpoints · two proofs of concept

    The problem

    The company relied on DNS filtering alone and needed a full secure web gateway that would work with its existing VPN and offices on three continents.

    What I did

    • Ran two vendor proofs of concept in parallel
    • Dropped the first vendor when it conflicted with the full-tunnel VPN
    • Tested the second with 10 people in India, Argentina, and North America
    • Negotiated a two-year agreement through the reseller

    Result

    No issues across all three regions in testing. The gateway replaces the old DNS filter.

  6. Cloud and automation

    Moving integrations off an on-prem server

    Google Cloud · HR and security data pipelines

    The problem

    Data pulls from the HR system and the endpoint security platform ran as PowerShell scripts on an on-prem server, because the vendors only accept API calls from an allowlisted IP address.

    What I did

    • Built a gateway project in Google Cloud with one static outbound IP for every vendor allowlist
    • Moved each pipeline to Cloud Run in its own project, writing to BigQuery, so HR data and security data stay separate
    • Cut the security data pull over first, then brought the HR pipeline live alongside the old one before switching

    Result

    One static IP for vendor allowlists, both pipelines running in the cloud, and the old server on its way out.

  7. Offices

    Fixing an overheating server room, then every server room

    Office network room · planned power outage

    The problem

    During a planned building power outage, an office server room went past 30°C. The portable air conditioner shared a circuit with the network gear, so it went down with everything else.

    What I did

    • Measured the room’s real heat load: about 1,020 W, or 3,425 BTU per hour
    • Sized a dedicated 1.25-ton cooling unit on its own circuit
    • Turned the incident into an audit of every site’s server room against written temperature standards

    Result

    A cooling fix sized from measurements, and one standard for every office instead of one fix for one room.

  8. Offices

    Opening floors, closing an office, and rescoping a refresh

    High-rise build-out · office closure · conference rooms

    The problem

    In the same quarter, two floors of a high-rise office needed their network built out, one office was closing, and a conference room refresh came back far over budget.

    What I did

    • Scoped low-voltage cabling for access points, cameras, card readers, check-in displays, and meeting rooms across two floors
    • Closed the office and arranged certified laptop destruction weeks before the lease ended
    • Cut the refresh from five conference rooms to three when the contractor bid came in at three times the budget

    Result

    Each project ran through vendors with a clear owner, without IT staff on site full time.

  9. Acquisitions

    Moving an acquired team onto the company phone system

    About 100 people · RingCentral

    The problem

    An acquired team had to move onto the parent’s phone system, where 7 of their extensions were already taken by some of the 130+ existing users.

    What I did

    • Changed the 7 conflicting extensions instead of renumbering 130+ people
    • Told each affected person their new number before go-live
    • Kept non-employee franchise numbers out of scope after checking the deal terms

    Result

    The team went live on the new system, and the old phone licenses ended four days later.

  10. AcquisitionsCloud and automation

    Finding every tool an acquisition brought with it

    Tools and contracts from 18 sources

    The problem

    Each acquisition arrives with its own SaaS subscriptions, chat workspaces, and contracts, and nobody has the full list.

    What I did

    • Built an acquisition tracker overnight that pulls tool and contract data from 18 sources
    • Found 172 Slack workspaces under company domains and built the case for one organization
    • Built a bot that moves Slack channels between workspaces
    • Cleaned up 187 unused licenses out of nearly 2,000 seats in one platform and cancelled duplicate billing from acquired companies

    Result

    One list of what every acquired company pays for, and fewer seats paid for twice.

  11. Cloud and automation

    An AI agent that keeps project tickets current

    Granola, Slack, email, and Jira

    The problem

    Decisions made in meetings and chat rarely made it back into the ticket that tracked the work.

    What I did

    • Built an agent that reads meeting notes after every meeting and comments on the matching Jira issue
    • Limited it to two projects and to comments only, so it can never move or close work
    • Updates from Slack and email ask for approval before posting

    Result

    Tickets reflect what was actually decided, without anyone retyping it.

Tools

Platforms I work in every day

Identity
Entra IDOktaAuth0Duo
Workspace
Google WorkspaceMicrosoft 365SlackRingCentralAtlassian
Devices
Kandji / IruIntuneAsset PandaFirstbase
Security
CrowdStrikeZscalerDNSFilter
Cloud and automation
Google CloudCloud RunBigQueryGAMApps ScriptJira

Have a project like one of these?

Tell me about it