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?
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
Here's some of the things I find most interesting at the moment ...
- Actor Model
- Apache Arrow
- Containers with Docker, Kubernetes, and Podman
- Crystal (Language)
- Elixir (Language)
- Event Sourcing
- Gleam (Language)
- Monitoring & Observability
- Pony (Language)
- Rust (Language)
- WebAssembly (Runtime)
My Active OSS Projects
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 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.