◐ Shell
clean mode source β†—

vic - Overview

Hi, I'm Vic πŸ‘‹ -- GitHub User #331

GitHub Sponsors ko-fi

Compilers Β· Effect Systems Β· Reproducible Runtimes Β· Open-Source Nix

I build tools that empower other developers β€” at the intersection of functional programming, algebraic effects, and language & runtime implementation.

RTFM fee Review AI generated PR fee Repos and stars Sponsor Vic

πŸ’œ Support My Work Β· 🧩 Open Source Β· πŸ™‹ About Me Β· πŸ’Ό Work With Me


πŸ’œ Support My Work β€” and Help Fund dnx

πŸš€ dnx β€” my most ambitious project to date

dnx is a rootless, single-binary Nix runtime built on Ξ”-Nets β€” interaction nets with optimal Ξ»-reduction and perfect confluence. It delivers reproducible builds and verifiable computation with no root and no /nix: one engine that builds packages, evaluates multiple languages by their computed meaning, and machine-checks proofs from its own theorem-proving kernel.

It's years of research becoming real software β€” my most ambitious work to date, and the work that most needs your support to reach its full potential.

More ways to support

If Denful or any of my libraries save you time, supporting the person behind them is what lets me keep building them in the open. πŸ™


🧩 What I'm Building in the Open

Note

I created the @denful umbrella organization as the new home for all my Nix projects β€” now 1,200+ ⭐ across the ecosystem. Full docs for every library are at denful.dev.

A suite of small, composable, mostly zero-dependency libraries. Each solves a specific problem and works on its own or together with the rest. You can also browse everything I've been shipping lately.

🧩 Aspect-Oriented Nix β€” the denful ecosystem

⚑ Algebraic Effects & Type Theory (Nix · Rust · Go)

🌊 FRP, Streams & Module Systems for Nix

πŸ”¬ Interaction Nets & Language Implementation (Ξ”-Nets)

πŸ› οΈ Nix Tooling & Infrastructure

For a full list, see my GitHub repositories.

My OpenSource Mission

Everything I know, I've learned by reading other people's 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.

⭐ Project Highlights & Contributions

A deeper catalog of original work, spanning several languages and ecosystems.

Nix

Scala

  • zio-logic β€” ΞΌKanren-inspired relational/logic programming for ZIO2.
  • mill-docker β€” Minimalist distroless Docker images for Java apps using Mill.
  • scala-double-linked-list β€” Immutable double linked list in Scala 3.
  • scala-cli-g8 β€” Giter8 launcher for scala-cli.
  • laminar_cycle β€” Cycle.js style user-computer model in Laminar.
  • nonono β€” Scala 3 compiler plugin to prevent unsafe function calls.
  • katan β€” Logic programming language based on typed concatenative effects (Scala prototype).
  • mill-buildr β€” Define big project structures as a regular Scala project.
  • cyclone β€” Functional-reactive interfaces on Laminar and Scala.js.

Elixir

Emacs Lisp

  • rebecca-theme β€” The purple turtle theme for Spacemacs.
  • vee β€” Vic's Emacs Environment.
  • ido-better-flex β€” Better fuzzy matching for Emacs ido-mode.
  • color-theme-buffer-local β€” Set Emacs color themes by buffer.
  • keymap-suggest.el β€” Let Emacs suggest which key bindings to press.

Go

  • nix-versions β€” Search Nix package versions and minimalist devshell/version manager.
  • leader β€” Vim/Evil leader-key for your $SHELL.

Rust

  • dnx β€” Rootless, single-binary Nix runtime on a Ξ”-Nets optimal-reduction engine.
  • fx-rs β€” Ability-style algebraic effects system for stable Rust.
  • rust-effects β€” Freer-monad effects with an MLTT dependent type checker.

Shell/Bash

  • SPC β€” Send keyboard macros to Spacemacs or DOOM Emacs via emacsclient.
  • docker-layered-fatjar β€” Create reusable Docker layered images from Java fat-jar apps.
  • heroku-buildpack-nim β€” Deploy Nim applications to Heroku.
  • pinocchio β€” Git-based server provisioning.

Significant Community Contributions (Forks & Upstream)

  • Buildr β€” Core contributor and Apache Software Foundation member; Project Management Committee chair.
  • asdf-vm β€” Maintainer and plugin author for the extensible version manager.
  • Rubinius β€” Early contributor to the Ruby VM.
  • Ragel β€” State-machine compiler: early contributor of Ruby and Rubinius VM code backends.
  • Darcs β€” My early contributions to open source.
  • vtd-xml β€” Contributed patches to the streaming parser.
  • Fancy Language β€” Contributor to a dynamic, functional OO language.
  • Typhon β€” Python implementation for the Rubinius VM.
  • effects-bibliography β€” Collaborative bibliography of computational effects.

πŸ™‹ About Me

I'm doing lots of Nix, Scala 3, Go and Rust β€” and I love creating stuff for people like me: nerds.

  • I love poetry, Rothko paintings, the Rebecca purple color, and effect systems.
  • I'm a Seventh Day Adventist. I enjoy our Sabbath School so much β€” self-reflecting, learning lessons from the Bible that teach me about the real character of God and the love he gives us to give.
  • I enjoy reading about religions, theology, physics, math (mainly related to C.S.), type theory, and effect systems.
  • I have a ~50% hearing disability, so I prefer to communicate via async written form whenever possible.
  • I love customizing my Glove80 keyboard and finding layout optimizations that reduce finger stress.
  • I'm single β€” send a pull request fixing this. πŸ˜„

Having a Life With Purpose

I believe my life has a purpose. And that purpose, for me, is Love.

I believe that we are not the authors of Love, but that Love has authored us. And as much as we are willing to receive it (God/Love), we will also be able to give it to others.

None of us is perfect and we have all done wrong, but there is so much more to life than only our past. Learn, change, adapt, become a better person every single day.

So, having a purpose in life, for me, means having the willingness to be transformed by Love and to be able to give it to others.

Skills

  • 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

πŸ’Ό Work With Me

I'm always open to remote opportunities. I love working on developer tools, compilers, effect systems, and Nix-infrastructure tooling. Nowadays I prefer Nix, Elm, Scala 3, Rust and Go.

If you're building something in compiler/language implementation, effect systems, developer tooling & infrastructure, or functional programming β€” let's connect.

πŸ“„ Read my CV β€” 25+ years across developer tooling, effect systems, compilers, and functional programming.

Contact

Feel free to reach out if you'd like to collaborate, discuss opportunities, or just talk about common interests and projects.