Xavier Ruiz

Software Developer

Posts

  • Hello, world!

    May 21, 2026

    Hooray! My first post!

About Me

Xavier Ruiz

Hi, I'm Xavier and I live in Boston. I currently work in the e-commerce space, building tools to make stores fast, accessible, and well-tested. In my free time, I like to play board games, try new foods, and fiddle with my dotfiles.

I also help run bostonts.club, a monthly meetup for all things TypeScript and web development.

You can reach me at [email protected], or find me on GitHub and LinkedIn.

Projects

  • himalaya-nvim

    February 2026 – Present

    An email client that runs inside Neovim. Threaded message lists, structured per-field search, in-buffer composing with auto-saved drafts, background sync, and an extensible hooks system. Picker integrations (telescope, fzf, native) and a mock mode for trying it without a real account. Heavily modified fork of pimalaya/himalaya-vim with 90%+ test coverage in CI.

    Technologies: Lua, Neovim, Nix

  • virtual-headset

    December 2025 – Present

    A virtual HID headset device driver in Rust. Forwards the mic through PipeWire on a keyboard mute toggle and exposes a D-Bus control surface plus a Home Manager module for Waybar integration.

    Technologies: Rust, PipeWire, D-Bus, Nix

  • dots

    September 2023 – Present

    My NixOS configuration and self-hosted homelab. Runs Traefik, Cloudflare Tunnel, and a half-dozen services via quadlet-nix, plus dozens of small per-machine packages I keep tucked away in here.

    Technologies: Nix, NixOS, quadlet-nix, Traefik

  • xav-ie/nuenv (opens in new tab)

    nuenv

    July 2025 – Present

    A Nushell environment for Nix derivations. I forked the original after it went unmaintained to keep it usable and add features like environment binding.

    Technologies: Nushell, Nix, Bash

  • browser-session-mcp

    April 2026 – Present

    An MCP server that gives each caller an isolated browser session against a shared persistent Chrome, and captures every console + network event to disk losslessly regardless of MCP transport churn. The session is a tool argument, not a transport concept — so sessions survive reconnects.

    Technologies: Rust, Puppeteer, MCP

  • xnixvim

    January 2024 – Present

    My Neovim config managed entirely through Nix via nixvim. Reproducible across machines, modular, and shaped around how I actually work in TypeScript, Rust, and Lua.

    Technologies: Nix, nixvim, Lua, Neovim

  • SpooKeyBoard

    June 2024

    A small Python tool that reads ANSI escape sequences over SSH and replays them as keystrokes on the receiving machine via Linux uinput — essentially a remote keyboard pipeline.

    Technologies: Python, uinput, ANSI escapes

Open-Source Contributions

Art and Doodles

  • Smart Rockets

    May 2020

    Little rockets 'learn' to hit a target through a genetic algorithm. Each generation is mutated from the fittest rockets of the last. Adapted from a Dan Shiffman tutorial.

    Technologies: JavaScript, p5.js

  • Moiré Effect

    August 2018

    Two sets of horizontal lines rotated against each other. The vertical lines that appear are an optical illusion — the Moiré effect.

    Technologies: JavaScript, p5.js

  • Binary Numbers

    March 2019

    A binary representation of a number, with the decimal in the center. Mouse events shift the bits left and right, or you can type a decimal and watch it convert.

    Technologies: JavaScript, p5.js

  • Pong

    May 2019

    Two-player Pong. WASD for player one, arrow keys for player two.

    Technologies: JavaScript, p5.js

  • Raycasting

    May 2019

    A raycasting demo following Dan Shiffman. Not original work, but a satisfying one to step through.

    Technologies: JavaScript, p5.js