Note: my Github username changed from metadave to bookshelfdave in late 2021
I'm currently a Principal Lead Software Engineer at Akamai (Linode), working on Linode orchestration software (all closed source). I helped ship Firefox (1), the Terraform Plugin Framework, Chef Server, Chef Analytics, Habitat, VLC compiler and Varnish projects at Fastly, and Riak Multi Data Center Replication.
- I'm interested in:
- distributed systems
- programming language theory + functional programming
- parsing + compilers
- infrastructure automation
- polyglot software development
- I use C, Python, Terraform, C#, Go, Ruby, Swift, C++ etc.
- I
♥️ Rust, Haskell, Erlang, F#, OCaml
- math + 3d geometry
- Remote worker since 2012
- 👯 I’m looking to collaborate on
- Mars 2020 Helicopter Contributor
- A badge appears under my Github profile picture
- my contributions to Elasicsearch
- Haskell (Almost) Standard Libraries, by Alejandro Serrano Mena (March 2022)
- additional shout out from the author :-)
- 7 Databases in 7 Weeks, second edition by By Luc Perkins, Eric Redmond, and Jim Wilson
- The Design And Implementation Of The Freebsd Operating System 1st Edition, by Marshall Kirk McKusick and George V. Neville-Neil
- 223 commits as an SRE on the Mozilla Marketing Engineering and Ops (MozMEAO) team (Terraform, Python, Ansible, K8s)
- This team hosted www.mozilla.org, developer.mozilla.org, careers.mozilla.org along with other Mozilla services and sites.
- Contributor to the Velero backup tool for Kubernetes (Go)
- ksv: K8s Secrets Viewer (Go)
- Riemann OCaml Client
- Chef Server RabbitMQ queue monitor (Erlang / Chef)
- Implement profile signing and verification for Chef Inspec (Ruby)
- I added support for scientific notation to the Gleam programming language (Dec 2022).
- Contributions to Disco, a discrete math teaching language written in Haskell
- the largest contribution being disco-lang/disco#230
- add OEIS support to the Disco language: disco-lang/disco#202
- Chef Analytics Rules, discontinued (Java, Antlr, Apache Storm)
- JKVC - Key Value Coding for Java data structures
- ETP: an Erlang Term Parser for Java.
- EQL: an Elasticsearch Query Language (experimental) (Java/Antlr)
- StringTemplate Object Wrappers (Java/Antlr)
- Riak C client
- Riak R client
- original author, although the client changed a bit
- Riak OCaml client
- 89 PR's against Riak multi datacenter replication (MDC)
- Riak MDC replication "proxy get"
- Contact: a query language and interactive shell for Riak. (Java/Antlr/Javascript via Rhino)
- Wings3d Collada export plugin (Erlang)
- Elasticsearch nodeattrs API enhancements (Java)
- EduFS: learning FreeBSD filesystem and kernel internals (C / FreeBSD Kernel stuff)
- Racket Neo4j client (Racket)
- Flux3d C++/Qt/Python half-edge 3d model viewer, mostly collision detection of verts/edges/faces, triangulation, etc.
- I embedded a Python interpreter into Flux3d to add scripting support
- obj2json 3d .obj -> .json converter written in Haskell