Container engineering
Docker and Podman
Containerized development, application packaging, and repeatable validation environments.
Development Environments
I use Docker and Podman in shared developer tooling for containerized local environments. Dev Containers, Compose services, and PowerShell/Bash launchers bring application dependencies and setup conventions into repeatable workflows.
The developer toolbox includes local SQL Server, PostgreSQL, Redis, Cosmos DB and DynamoDB emulators, Azure Storage and Service Bus emulators, WireMock, smtp4dev, and Seq. These resources support database work, integration testing, API mocking, email capture, and diagnostics.
Application Packaging
My application foundations include container packaging for .NET and Node.js/Next.js applications. The marketing starter provides runtime-only non-root images, while this portfolio uses a multi-stage Dockerfile to restore, build, publish, and package its ASP.NET Core application.
I connect image packaging with build and delivery templates so application artifacts can be prepared consistently for their intended environment.
Container-Backed Testing
As the primary developer of a reusable QA automation framework, I built container-backed validation infrastructure with Testcontainers, dependency-aware startup, dynamic endpoints, isolated resources, and diagnostic evidence.
The framework's validation environments bring together applications, data services, browser execution, API mocks, and OAuth/OpenID Connect reference flows. Resource owners retain cleanup responsibility until tests and diagnostics have finished.
Runtime and Resource Ownership
My tooling supports Docker/Podman runtime selection, guarded startup and teardown, and shared services with defined ownership. Test-owned resources can remain isolated while ready shared development services are reused where appropriate.
Developer enablement · QA framework development · Delivery and DevOps