💁🏻

About

Who am I?

My name is David McKay and I am a technologist from Glasgow, Scotland.

Currently I am a Senior Tech Evangelist for Packet, an Equinix company; the bare metal cloud provider.

What Do I Do?

Public Speaking

If you want to see some of my presentations from the last couple of years, you can find most of their details on Noti.st.

OpenSource & Kubernetes

I am also an active OSS contributor and active Kubernetes Organisation and release team member.

Technologies

Here's some of the things I find most interesting at the moment ...

My Active OSS Projects

Gitseries

Gitseries is an application that can scan your Git directories and emit time series data, in line protocol, that allows that data to loaded into InfluxDB for analysis.

Currently, I've written this codebase twice. I started in Rust, but the Rust libgit2 library doesn't support concurrency; so I had to move my efforts to Go until that changes. Both versions are available, but the Go version is more complete.

Weave

Weave is a build planner and delegator for mono repositories.

I firmly believe that the best build tool is the tool purpose built for the language. However, we seem to be in a world with build tools like Bazel, Buck, and Pants. Often written in Java, have some weird DSL, and try to do too much. Perhaps I am fortunate enough to not be at the scale to need these tools, whatever that scale may be; but I wanted a build planner that would delegate to the tools I know and are specifically built for their own platforms. Weave aims to detect and delegate builds to:

  • Cargo for Rust, when it detects a Cargo.toml
  • Composer for PHP, when it finds a composer.json
  • Docker when there's a Dockerfile
  • Go for Go, when it detects whatever package manager is in right-now.
  • Make when there's a Makefile
  • GitLab CI when there's a .gitlab-ci.yml
  • NPM or Yarn for NodeJS, when it finds a package.json

You get the point. Weave wants to make it easier to delegate the builds to those awesome tools, and make working with monorepos simpler and easier; especially for CI.

Need to Know More?

Feel free to check out the following links.