Skip to content

patrickdappollonio/patrickdappollonio

Repository files navigation

Hello! 👋 Welcome to my Github Profile!

technologies I use

I'm Patrick D'appollonio, I'm a Chilean 🇨🇱 Canadian 🇨🇦 and a Principal Engineer working at Kubefirst. I work mostly with Go and Kubernetes in my day-to-day, and as such, you'll see a few tools below I've built over time to solve personal itches. You should also see some Rust code here and there. If any of the applications you see are valuable to you or have any feedback, please do not hesitate to create an issue in their respective repository, or message me on Twitter: @marlex. I'm always looking forward to feedback!

If you want to know more about me, you can visit my personal website (some of the most recent articles I've written are listed below!), follow me on Twitter/X or add me on LinkedIn.

My personal favourite projects are 📌 pinned below!

📚 Latest Blog Posts

(Some content might be written in Spanish)

... And several additional articles are available on my blog. Check it out!

✍️ Recent Public Contributions

Pull Requests I've opened or contributed to recently, only public repositories are visible.

Overall, my most recent contributions (besides my own repos) have gone to @kubernetes-sigs, @ansible, @jbrukh and @konstructio.

🛠️ My Open Source projects

My best recommendations of projects I maintain that might help you in your day-to-day. Happy to take feedback or feature requests!

  • patrickdappollonio/http-server: A small, but batteries-included static HTTP server. Includes a file explorer and support for Github-flavoured Markdown rendering. It's fully air-grapped, meaning it won't make any request to any third-party site (unless your code does so), so it plays well with highly-regulated environments. Useful for static pages like documentation.
  • patrickdappollonio/kubectl-slice: Have you ever wanted to split YAML manifests separated by "---" into individual files? This tool does that for you, and uses a template-style approach to generate filenames by tapping into typical Kubernetes YAML structure.
  • patrickdappollonio/gc-rust: I've always thought the developer experience of cloning a repo is a bit cumbersome: you have to find a path where you want to store the repo, then ensure you copied the right URL or Git reference, then run git clone. This tool simplifies that process by allowing you to clone a repo by just saying gc <user>/<repo>.
  • patrickdappollonio/tgen: My own attempt at a template tool that can be used in CI and automation environments. Provide a Go template either from a file or directly as an argument, load environment variables from the environment or from a file, then render the template! It includes a "strict" mode that prevents you from rendering a template if an environment variable that the template depends on is missing.
  • patrickdappollonio/wait-for: After seeing multiple bash attempts, I decided to write my own as well. This is a tiny application that can query a TCP endpoint (like a website or database) and hold until the endpoint is reachable or a timeout happens. Super useful to use in CI/CD pipelines or initContainers in Kubernetes.
  • patrickdappollonio/tabloid: I'm always doing kubectl get X and while I know some awk, I'm not an expert. This tool can parse table-like outputs found in kubectl and other CLI tools and use an expression engine to query and filter the output, while at the same time reformatting whitespaces and headers to make it more readable.
  • patrickdappollonio/nginx-vs-caddy-benchmark: Born off a Twitter argument where someone claimed Caddy was faster than Nginx, I decided to write a small environment to test that claim. This repo holds docker-compose files to spin up environments and steps to try them out. The idea is to get a comparison as close to apples-to-apples as possible between Caddy and Nginx.
  • patrickdappollonio/cloudflare-cache-purger: Looking at CI as well, whenever I deploy my own site I need to also purge the aggressive Cloudflare cache I have in front of it. This tool allows you to purge the cache by just providing a token and the zone ID. It's also offered as a container, so you can use it in your CI/CD pipelines.
  • patrickdappollonio/find-project: I like Go's $GOPATH and the brainless process it becomes maintaining folders with projects in your machine where github.com/foo/bar becomes ~/go/src/github.com/foo/bar. Switching between projects though becomes a pain. find-project is a small tool that allows you to provide a project name and it will find the project in your $GOPATH by choosing whatever is closest to the root first.
  • patrickdappollonio/kubernetes-guestbook: The Kubernetes community wrote a Guestbook in PHP that requires a Redis backend with quite a few requirements to run. I decided to write a version of it in Go that uses several backend options instead (as of now, basic Redis and SQL Server). Available both as a container and a Helm chart.

⭐ New third-party projects I'm keeping an eye on

Repositories I've starred recently because they were interesting, cool, or useful.

Last updated: September 19, 2024 at 20:16:26 EDT. The content here updates twice daily or when manually triggered.