Optimising Pulumi secret handling
Improved caching and batching performance of secret encryption and decryption within Pulumi state serialisation. This provided significant reduction in deployment times for projects with many secrets.
Software Engineer, herding code, currently with Pulumi.
Improved caching and batching performance of secret encryption and decryption within Pulumi state serialisation. This provided significant reduction in deployment times for projects with many secrets.
Built a testing library for running Pulumi programs within a Go test suite. This was primarily to help with testing Pulumi providers but was also adopted by other teams as it's an unopinionated way to test Pulumi programs. It builds on the Pulumi automation API, but providing sensible defaults and asserts for a testing context.
Allow users to specify exact subnet layouts and sizes when creating a VPC with the Pulumi AWSX library. This allows for evolving subnet requirements without the need to recreate the VPCs.
Starting as a proof of concept, I explored the idea of allowing any Pulumi program to be able to be consumed by other Pulumi programs like a component. This was ultimately not merged, but led to renewed investment in the usability of Pulumi components.
Wrote a number of small, well defined GitHub actions to help with the publishing of Pulumi providers. This includes pulumi/provider-version-action to generate the version number for any build-with support for PR builds, pre-releases and tagged releases, and major version upgrade flows; and pulumi/verify-provider-release to ensure published SDKs & binaries are usable.
Other small but useful utilities are pulumi/glob-action which allows for cross-platform glob-based file operations; and pulumi/git-status-check-action for checking for unexpected file modifications during CI runs.
Created the regular expression for a project working with the UK automotive industry. It's received a lot of comments, stars and forks over the years as it continues to be a useful resource for developers.
Reflections of a .Net'er in a Node World (Some F# Language
Ideas)
HOWTO: Remove files from a git repository which should be
ignored