Everything I know, I've learned by reading others code. I believe in the power of sharing knowledge.
I create tools and languages that empower developers by making their work more productive, reliable, and enjoyable.
My passion is building robust, real-world solutions with functional programming, effect systems, and language implementation.
- Functional programming (Scala, Haskell, Elm, Elixir)
- Effect systems and concurrency models
- Compiler and language implementation (Scala, Rust, Go, Ruby, Python)
- Nix and reproducible developer tooling
- Open source leadership and community building
I love working in the following areas:
- Compiler and language implementation
- Effect systems research and development
- Developer tooling and infrastructure
- Functional programming projects
If you’re building something in these areas, let’s connect!
Here are some of my original open source projects, spanning several languages and ecosystems:
- Import all Nix files in a directory tree.
- Community-driven Nix distribution.
- Generate flake.nix from module options.
- μKanren-inspired relational/logic programming for ZIO2.
- Minimalist distroless Docker images for Java apps using Mill.
- Immutable double linked list in Scala 3.
- Giter8 launcher for scala-cli.
- Cycle.js style user-computer model in Laminar.
- Scala 3 compiler plugin to prevent unsafe function calls.
- Logic programming language based on typed concatenative effects (Scala prototype).
- Define big project structures as a regular Scala project.
- Functional-reactive interfaces on Laminar and Scala.js.
- Ecto-style parameter validation/casting.
- Macro for extracting/transforming values in pipe flows.
- Macro to avoid commas in Elixir's
withspecial form.- Data specification conformance and generation.
- Reusable, composable patterns across Elixir libraries.
- Pipe Elixir functions that match ok/error tuples or custom patterns.
- State-aware Elixir functions without spawning processes.
- Minimalist function decorators for Elixir.
- Macro for easily piping arguments at any position.
- The alchemist's happy path with Elixir.
- Elixir Indifferent access on maps/lists/tuples with custom key transforms.
- The purple turtle theme for Spacemacs.
- Vic's Emacs Environment.
- Better fuzzy matching for Emacs ido-mode.
- Set Emacs color themes by buffer.
- Let Emacs suggest which key bindings to press.
- Search Nix package versions and minimalist devshell/version manager.
- Vim/Evil leader-key for your $SHELL.
- Send keyboard macros to Spacemacs or DOOM Emacs via emacsclient.
- Create reusable Docker layered images from Java fat-jar apps.
- Deploy Nim applications to Heroku.
- Git-based server provisioning.
- Darcs: my early contributions to opensource.
- Ragel: Ragel State Machine Compiler - early contributor: Ruby and Rubinius VM code compilers.
- vtd-xml: Contributed patches to the streaming parser.
- Buildr: Core contributor and Apache Software Foundation member - Project Management Chair.
- asdf-vm: Maintainer and plugin author for the extensible version manager.
- Rubinius: Early contributor to the Ruby VM.
- Fancy Language: Contributor of a dynamic, functional OO language.
- Typhon: Python implementation for Rubinius VM.
- effects-bibliography: Collaborative bibliography of computational effects.
For a full list of my projects, see my GitHub repositories.








