Skip to content
View XavierChanth's full-sized avatar

Organizations

@UOIT-Computer-Science-Society @atsign-company @atsign-foundation @at-family-developers

Block or report XavierChanth

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.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

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

Report abuse
XavierChanth/README.md

👋 Hi There!

My name is Xavier Chanthavong, and I'm a Software Engineer at Atsign. I have a deep passion for learning, and I'm constantly improving my ability to write effective software.

I'm also a big of fan open-source software and love to use open-source software whenever possible. I'm truly proud to say that Atsign is an open-source company, and you can check out the platform & tools we are building over at atsign-foundation!

I'm building an open-source tool called NoPorts, you can check out the code here. I use it all the time to do remote development and access my homelab without opening attack surface to my home network.

📈 Github Stats

GitHub Stats GitHub Streak

🛠️ My Tools

My workflow is primarily keyboard based and open-source!

Core

My core workflow tools are based around zsh and tmux, with neovim as my editor of choice. I've made a number of enhancements which can be found in my configuration, most notably:

  • Running tmux server headlessly outside of any Linux sessions so that it can be shared across sessions, and survives session logouts.
  • Per-session zsh history in tmux, which is created from main history at the start of a session and gets merged into the main history at the end of a session.
  • A whole bunch of keybinds for managing tmux nicer, and mapping of hyper+<key> to a bunch of tmux commands in ghostty, (My CAPS key is always bound to escape on tap, hyper on hold).

Homelab


My homelab runs a three node mini-pc cluster, the Flint 2 manages VLANs and I have a dedicated VLAN for ceph. I use a semi-managed switch with port base VLAN assignment so that I can have a dedicated NIC for ceph on each mini PC, and control the traffic for it independently from the rest of my network. The Mac Mini serves as my access to Mac, as I've given away my Macbook Pro. I was tired of MacOS enshittification, and kanata uses 3rd-party drivers that have to be manually installed, so that meant every MacOS update would break my workflow until I manually update the drivers. VNC from Remmina gets the job done of getting me access to my Mac Mini when I need to do MacOS/iOS development, or SSH if I'm developing non-GUI software. Same kind of story for Windows development, but I tend to use my gaming PC nowadays, Windows performance in Proxmox tends to be super slow, even when throwing a ton of resources at it (well, Windows in general is just slow, it's just slower when virtualized). When I'm away from home, I use NoPorts to get access to everything behind this router. I've used this to reach my homelab in the backseat of a car, and even from the other side of the planet.

Personal Computer

Hardware

A single USB C cable with a cheap "Mag safe" adapter is all it takes to hook my Laptop up to my desk. On my desk lives the ZSA Voyager - a split ortholinear keyboard, with an Apple magic trackpad between each side. When I first got the Voyager, I would spend 20-40 minutes typing on it each morning and afternoon until I got reasonably close to my normal speed. It was worth learning, typing on this thing feels way smoother than a staggered layout, and I touch-type with far less mistakes.

Software

Super plain setup, as simple as it gets. Tmux is almost enough to be my OS. Sway is pretty much a launcher for terminal windows, my browser, zoom, spotify, and remmina. My Waybar has three hide-away modules which contain app tray icons, system usage stats, and controls (like wifi, bluetooth, volume).

Languages & Frameworks

I have used a number of languages and I consider myself proficient at learning language idioms quickly. This list is ordered by current proficiency (last updated 2025-06-26):

Language Framework(s)

Pinned Loading

  1. atsign-foundation/noports atsign-foundation/noports Public

    Connect to any device with no external listening ports open

    Dart 275 16

  2. atsign-foundation/at_mono atsign-foundation/at_mono Public

    Atsign's poly-as-mono integration testing environment.

    Dart 3 1

  3. dotfiles dotfiles Public

    My dotfiles

    Lua 8

  4. atsign-foundation/at_c atsign-foundation/at_c Public

    Experimental cross-platform C implementation of the atSDK for SOC & embedded devices

    C 4 4

  5. qmk_userspace qmk_userspace Public

    Forked from qmk/qmk_userspace

    Userspace for the open-source QMK keyboard firmware.

    C