Systems engineering work with a focus on AWS, Terraform, automation, and reliable infrastructure patterns.
Highlights across AWS, Terraform, serverless workflows, and infrastructure automation. Open a card for Problem, Solution, Impact, tech stack, and production considerations.
API Gateway and Lambda turn validated Jira tickets into consistent provisioning steps with auditable execution.
Step Functions orchestration produces predictable decommissions with explicit success and failure paths.
Terraform models networking and compute so the stack can be rebuilt, upgraded, or recovered predictably.
Repeatable Terraform modules deliver a locked-down SFTP path with clear IAM and network boundaries.
Serverless automation cuts manual Directory work and keeps group membership consistent.
Self-hosted environment for networking, automation, and cloud-adjacent workflows with clear isolation from production systems.
View homelab overviewCloud Projects
Automation Scripts
Technologies Used
GitHub Repos
AWS and automation projects with Terraform, Lambda, API Gateway, and Step Functions—documented with problem, solution, impact, and production considerations.
Repeatable Terraform modules deliver a locked-down SFTP path with clear IAM and network boundaries.
IaC-provisioned remote access with hardened security groups and automated instance bootstrap.
Serverless automation cuts manual Directory work and keeps group membership consistent.
Lambda-driven OU moves align Workspace policy scope without repetitive admin clicks.
Step Functions orchestration produces predictable decommissions with explicit success and failure paths.
Terraform models networking and compute so the stack can be rebuilt, upgraded, or recovered predictably.
API Gateway and Lambda turn validated Jira tickets into consistent provisioning steps with auditable execution.
Jira onboarding webhook provisions Patient Care staff in Amazon Connect via cross-account role assumption, with result posted back to the ticket.
SAM-deployed webhook turns Jira offboarding tickets into instant Duo MFA removal with status written back to the ticket.
Dual-Lambda pipeline fetches invoiced hardware orders from Softcat's GraphQL API, stages them in S3, and auto-creates assets in Snipe-IT with model matching and location mapping.
Slack-facing service grounds answers in internal sources to deflect repeat L1 questions.
Enterprise-grade Bash scripts for macOS device management, security deployment, and IT automation using JAMF Pro.
Automated VPN client deployment with GitHub API integration and cleanup.
Complete system reset with JAMF removal for device re-deployment.
Automated security software deployment with privilege management.
API-driven endpoint security software removal with authentication.
Jira, Microsoft 365, and AWS: Service Desk automations, Snipe-IT workflows, M365 user onboarding from tickets, and related projects.
Jira webhooks to API Gateway, VPC Link, and an internal ALB; Flask on EC2 provisions or disables Pritunl users and emails profiles via SES.
Looks up a user in Snipe-IT by email: deployed assets (status label ID 5), assigned accessories, and an optional Jira internal comment on a ticket.
Serverless Jira → Snipe-IT: validates webhooks, creates users if missing (group 6, generated password), and posts internal comments on the issue.
From Jira Service Desk onboarding tickets: creates Microsoft 365 (Azure AD) users for Clinical requests and posts credentials as internal comments.
Jira onboarding webhook provisions Patient Care staff in Amazon Connect via cross-account role assumption, with result posted back to the ticket.
SAM-deployed webhook turns Jira offboarding tickets into instant Duo MFA removal, with status written back as an internal comment on the ticket.
Lambda ingests HiBob lifecycle webhooks and fans out to Jira, Slack, JAMF, Confluence, and Totara LMS across onboarding, offboarding, leaver, and parental leave workflows.
Lambda reconciles Jamf device inventory against Snipe-IT SentinelOne licence seats, auto-checking out seats for deployed Macs and firing SNS alerts for unknown serials.
Event-driven Lambda adds new starters to the correct Google Group when an onboarding Jira ticket transitions Open → Work in Progress. Internal vs external routing handled automatically.
Hands-on projects across hardware, IoT, and platform engineering that showcase practical problem-solving.
Custom surveillance system using Raspberry Pi and night vision camera with MotionEyeOS for automated recording.
Migrated this website from Jenkins to GitHub Actions on a self-hosted runner, running as an LXC Debian container, with environment-scoped secrets and deploy parity checks.
Explore all my open-source projects and code repositories on GitHub.
Portfolio site source code (this site).
GitHub profile README and overview.