Skip to content
View DavSanchez's full-sized avatar
🤘
🤘

Block or report DavSanchez

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
DavSanchez/README.md

Hi there 👋

Software engineer at New Relic, building production Rust for agent fleet management and control. Based in Las Palmas de Gran Canaria, Spain.

My work and interests follow a single thread: the purely functional model, applied at every layer. In software design, that means algebraic data types, parametric polymorphism, and referential transparency — using the type system to make illegal states unrepresentable and enable equational reasoning. Haskell is the sharpest expression of this: type classes, type inference, and purity enforced at the type level make entire families of bugs impossible by construction. Rust brings the same discipline to systems programming: ownership and borrowing statically eliminate data races and memory safety violations, and the newtype pattern and trait system let you encode invariants the compiler verifies — a pattern you reach for reflexively once you've debugged your first parameter swap that compiled fine. In software distribution and system configuration, the same model means Nix: every package is a derivation — a pure function from a set of hashed inputs to a content-addressed output — built in a hermetic sandbox with no implicit dependencies or ambient state. The purely functional model goes all the way down.

How software gets built and shipped deserves the same rigour as how it is designed. A build that is not reproducible is a bug you have not hit yet. I've contributed packages to nixpkgs, built Nix modules for distributing observability tooling, and managed all my machines declaratively for years. In production Rust, that extends to performance: allocations that look harmless can become a bottleneck at scale, which is when heap profilers, flamegraphs, and properly configured build profiles earn their keep.

Open source contributions:

  • NixOS/nixpkgs — packaged several tools over the years: opentelemetry-collector-builder, infrastructure-agent, kontroll, basalt, prism-cli, and others
  • nix-community/home-manager — darwin support for various modules

Projects:

  • Nix-Relic — New Relic infra observability tools packaged as Nix flakes and modules
  • richenv — rich environment variable configuration library for Haskell
  • nix-dotfiles — fully declarative, reproducible system config (NixOS + nix-darwin)
  • Learning by building: HNS (toy DNS resolver in Haskell), hox / rox (the Lox interpreter, in Haskell and Rust)

Pinned Loading

  1. nix-dotfiles nix-dotfiles Public

    Nix-based dotfiles for my systems

    Nix 13 1

  2. richenv richenv Public

    Rich environment variable setup for Haskell

    Haskell 7

  3. Nix-Relic Nix-Relic Public

    A collection of some infra O11y tools from New Relic packaged with Nix Flakes and accompanied by modules.

    Nix 12 4

  4. HNS HNS Public

    Implementing a toy DNS resolver in (a little more than) a weekend

    Haskell

  5. roadburn-redux-crawler roadburn-redux-crawler Public

    A web crawler to get all the video URLs from Roadburn Redux (2021)

    Haskell

  6. pixelclick-rust pixelclick-rust Public

    Playing with the awesome PixelClick by @brushknight

    Rust 1 1