Senior Software Engineer - Cloud at PublicGood FoundationPosted on: 01/04/2022
Hi! We would love your help with our multi-cloud infrastructure as code work. **PublicGood Foundation is a start-up charity with a mission to incubate, accelerate, and sustain social entrepreneurs.** There is so much potential to make a difference in this cloud and infrastructure space and our incremental improvements start near zero. We are committed to Lean Software Development, Clean Code, Clean Architecture, trunk-based usage of git, strategic functional programing, and prefer shipping artifacts rather than git refs. Virtually all of your work products will be open-source where you will be free to reference the projects publicly, include them in a portfolio, or re-use the work product in other roles. Much of the effort will be spent making Pulumi modules in TypeScript with a bias for functional programming. No worries if you have not used Pulumi before, because its theory of use is quite similar to Terraform. Using real code rather than configuration such as HCL/Terraform gives us lots of potential, including to create a mess and lots of technical debt. We need you to be on-guard and vigilant! We are extremely concerned about "day 2" concerns and treat operation problems as software problems - this is not a systems admin gig. Foundationally, we need to create and ship modules (custom providers and/or NPM packages) such as: * Containers & SQL apps * Our flavor of cloud provider managed K8S * Rancher, Backstage, Vault, Camunda, BitWarden, IAP, Apache Pulsar. * Cloud organization administration such as GCP Projects and AWS Accounts. * Observability with Grafana stack * Incident management with Grafana and/or Dispatch. * Potentially using Dapr with Cloud Run and Fargate just as ACS does. We also need continuous deployment patterns to do something with the IaC modules. A GitOps strategy may be appropriate but we have a strong preference for deploying artifacts rather than git refs. Will need a “normal” pattern that leverages the Pulumi CLI lifecycle commands, but we will also offer the IaC plans via an API. While we expect everyone to learn from each other this is not an internship role, we do need experienced engineers. We are expecting an hourly contract with an independent freelancer, preferably someone that is able to moonlight with their day job.