Bas Nijholt

Bas Nijholt

Senior Staff Engineer

IonQ

Biography

Hi, my name is Bas. I am a: Python and open-source enthusiast, Ph.D. in theoretical quantum mechanics, and full-time nerd. Originally I am from the Netherlands, but currently, I live near Seattle, Washington, USA.

Here (or here ) are some pretty pictures that I took, this is where I did my Ph.D., I work at IonQ (previously at Microsoft Quantum ), and see my LinkedIn for some technical details on my daily activities.

Interests
  • Quantum Mechanics
  • Landscape photography
  • Open-source software
  • Hiking in the mountains
  • Blockchain technology
  • Home automation
  • Artificial Intelligence
Education
  • PhD in computational Quantum Mechanics, 2020

    TU Delft

  • MSc in Applied Physics, 2015

    TU Delft

  • BSc in Applied Physics, 2012

    TU Delft

Blog Posts

Sparse scribblings on a variety of topics

Projects

Open-source, see my GitHub profile

*

zfs-tenant

๐Ÿค zfs-tenant: Give a friend a quota-capped corner of your ZFS pool for their raw encrypted backups, without giving them a shell. Their keys never leave their house, so you can’t read what they store. ๐Ÿ’พ

pytest-shm

โšก pytest-shm: pytest plugin that puts temporary files on the /dev/shm tmpfs, so test suites that fsync stop waiting on the disk. ๐Ÿงช

ZFS Unlock

๐Ÿ”‘ zfs-unlock: Unlock encrypted OpenZFS datasets automatically after every reboot, while the passphrases stay on a separate device (a Raspberry Pi, say) and travel over a restricted SSH channel. ๐Ÿ”’

Privata

๐Ÿ•ต๏ธ privata: Static checker that finds Python code that looks public but is only used privately, so helper() becomes _helper() and __all__ stays honest. ๐Ÿ

trueloc

๐Ÿงฎ trueloc: Count the lines of code you wrote since any date, from your GitHub pull requests and direct commits. It adds up every commit in a PR, so squash merges don’t hide the work. ๐Ÿ“Š

Compose Farm

Compose Farm

๐Ÿšœ Compose Farm: Run Docker Compose stacks across multiple hosts over plain SSH, with no agents to install. Stacks stay plain folders you can keep in Git, and cf apply makes the hosts match your config. ๐Ÿณ

Wyoming MLX Whisper

๐ŸŽค wyoming-mlx-whisper: Wyoming protocol server for near real-time Whisper speech-to-text on Apple Silicon, for use with Home Assistant voice or agent-cli. ๐Ÿ

GitHub Backup Sync

๐Ÿ—ƒ๏ธ github-backup-sync: Mirror every GitHub repository you have access to into local bare clones, with the gh CLI handling authentication. ๐Ÿ’ฝ

Matty

๐Ÿ’ฌ matty: Matrix chat CLI client where every action (reading threads, replying, reacting) is a single command, which makes it easy to script and easy for AI agents to use. ๐Ÿค–

MindRoom

๐Ÿง  MindRoom: Self-hostable AI agents that live in Matrix chat rooms, with persistent memory and 100+ tool integrations. Matrix bridges bring the same agents to Slack, Telegram, WhatsApp, and more. ๐Ÿ’ฌ

Agent CLI

๐ŸŽ™๏ธ agent-cli: Local-first AI tools for your desktop: voice transcription to the clipboard with a hotkey, autocorrect, text-to-speech, RAG and memory proxies, and agent-cli dev for running coding agents in parallel Git worktrees. ๐Ÿค–

gh-download

โฌ‡๏ธ gh-download: Download files or folders from GitHub repositories, including private ones, using your existing gh CLI login. ๐Ÿ“

dotbins

dotbins

๐Ÿงฐ dotbins: Keep CLI tool binaries in your dotfiles, downloaded from GitHub releases for macOS, Linux, and Windows. No package manager or sudo needed. ๐Ÿ“ฆ

pixi-to-conda-lock

๐Ÿ” pixi-to-conda-lock: Convert a pixi.lock into a conda-lock.yml, so you can use the fast pixi solver and still ship a conda-lock file. ๐Ÿ

tuitorial

๐Ÿ“š tuitorial: Create interactive code tutorials that run in the terminal, with syntax highlighting and step-by-step focus, configured in Python or YAML. ๐Ÿ–ฅ๏ธ

calver-auto-release

๐Ÿท๏ธ calver-auto-release: GitHub Action that creates a release with a Calendar Versioning (CalVer) tag on every commit to main. ๐Ÿ“…

opennb

๐Ÿ““ opennb: Open Jupyter notebooks from GitHub repositories or URLs directly in Jupyter. Combined with uvx, the notebook’s dependencies come along too. ๐Ÿš€

graphviz-anywidget

๐Ÿ•ธ๏ธ graphviz-anywidget: Interactive Graphviz widget for Jupyter with search, highlighting, and graph traversal, rendered by Graphviz compiled to WebAssembly. Built to visualize pipefunc pipelines. ๐Ÿ”

clip-files

๐Ÿ“‹ clip-files: Copy all files of a given type in a project to your clipboard, with their paths and a token count, ready to paste into ChatGPT or Claude. ๐Ÿค–

Tiller Streamlit

๐Ÿ’ฐ tiller-streamlit: Streamlit dashboard and JSON API for the personal finance data in a Tiller spreadsheet. ๐Ÿ“Š

numthreads

numthreads: Simple Python package to set the number of threads used by OpenBLAS, MKL, OMP, NumExpr, and Accelerate

UniDep

unidep: Unified Conda and Pip Dependency Management ๐Ÿ

PipeFunc

pipefunc: Lightweight function pipeline creation ๐Ÿ

rsync-time-machine.py

rsync-time-machine.py

๐Ÿ’ป rsync-time-machine.py: Your cross-platform, flexible, and incremental backup solution using rsync, offering Time Machine-style backups with added versatility. ๐Ÿ’ฝ๐Ÿš€. ๐Ÿ”„

WenFire โ‰๏ธ๐Ÿ”ฅ

WenFire: WebApp visualizing your path to financial independence, built with personalizable assumptions and interactive visualizations. Ignite your journey to early retirement! ๐Ÿ’ธ

Adaptive Lighting

๐ŸŒž Adaptive Lighting: Home Assistant custom component for auto-adjusting color temperature and brightness of lights based on daylight. ๐ŸŒ™

CodeStructure

๐Ÿ”Ž CodeStructure: Extract Python code signatures without execution, providing a clear structure overview. ๐Ÿ“š

Home Assistant Streamdeck YAML

๐Ÿ  Home Assistant Streamdeck YAML: Control Home Assistant on Stream Deck across all OS with YAML configuration. ๐ŸŽ›๏ธ

Markdown Code Runner

Markdown Code Runner

๐Ÿ’ป Markdown Code Runner: Auto-execute code blocks in Markdown files and refresh the output in-place. ๐Ÿ”„

Calendar of Life

Calendar of Life

๐Ÿ“… calendar-of-life: Plot your life as a grid with one dot per week and one row per year, colored by life stage. Inspired by Kurzgesagt and Tim Urban. โณ

home-assistant-macbook-touch-bar

home-assistant-macbook-touch-bar

home-assistant-macbook-touch-bar: Displaying sensors and controlling IoT devices using the Macbook Pro’s touch bar ๐Ÿค–๐Ÿ’ป

PhD thesis

PhD thesis

thesis.pdf: Towards realistic numerical simulations of Majorana devices (2020)

Thesis cover

Thesis cover

thesis-cover: each unique copy is designed using quantum simulation data, neural networks, machine learning, and Python

pfapack

๐Ÿ”ข pfapack: Efficient numerical computation of the Pfaffian for dense and banded skew-symmetric matrices, packaging the algorithms from arXiv:1102.3440 by Michael Wimmer. ๐Ÿงฎ

iOS Themes for Home Assistant

iOS Themes for Home Assistant

๐Ÿ“ฑ lovelace-ios-themes: Home Assistant themes inspired by iOS Dark and Light Mode, with 28 variants built on HomeKit backgrounds. ๐ŸŽจ

slurm-usage

๐Ÿ–ฅ๏ธ slurm-usage: Save SLURM job efficiency metrics to Parquet before SLURM purges them after 30 days, and chart CPU, memory, and node usage per user and group. ๐Ÿ“ˆ

Adaptive-scheduler

Adaptive-scheduler

adaptive-scheduler: Run simulations adaptively on many cores (>10k) and easily manage starting and restarting using mpi4py.futures, ipyparallel, or dask-mpi 🎉

Home Assistant

Home Assistant

Many things in my house are automated using the Python Home Assistant framework. I’ve built some interseting automations and app, see my config files and AppDaemon apps 🏠 🤖

ipynb_git_filters

ipynb_git_filters: remove ipynb’s output on each commit to keep a clean history. Not very smart but very useful ๐Ÿค–

nijho.lt

nijho.lt

nijho.lt: my website made with Hugo on Github that is automatically deloyed with Netlify ๐Ÿฆพ

python-aiokef

aiokef: An asyncio Python library that provides an API to communicate KEF speakers ๐Ÿ”ˆ

python-crypto-bot

python-crypto-bot

crypto-bot: an async cryptocurrency bot using zmq, asyncio, websockets and mad triangular arbitrage trading strategies โ™ฒ๐Ÿ’ต

python-hpc05

python-hpc05

hpc05: a thin wrapper around ipyparallel to easily start workers remotely on a HPC cluster ๐Ÿ–ฅ

dotfiles

dotfiles

๐Ÿ  dotfiles: My NixOS, nix-darwin, Homebrew, and zsh setup that I use on every machine, with modern CLI tools installed through dotbins. ๐Ÿš

python-yaml2bib

python-yaml2bib

yaml2bib: Convert a readable yaml file with DOIs only to a properly formatted BibTeX file. ๐Ÿ“ƒ

Python-adaptive

adaptive: tools for adaptive parallel sampling of mathematical functions to speed up simulations by orders of magnitude โš™๏ธ

python-instacron

instacron: Instagram for the lazy - automatically upload a photo to Instagram with autogenerated caption containing #hashtags, a quote, and camera information ๐Ÿ“ธ๐ŸŒ…

Topology in condensed matter course

Tying Quantum Knots. An online course for which I wrote a lot of code. See the course website which is generated using these Jupyter notebooks.

fileup

๐Ÿ“ค fileup: Upload and share a file from the terminal with fu myfile.txt; the URL lands in your clipboard and the file can expire automatically. ๐Ÿ”—

miflora

๐ŸŒฑ miflora: Python library for reading moisture, temperature, light, and conductivity from Xiaomi Mi Flora plant sensors over Bluetooth. Originally created under open-homeautomation; I now maintain it. ๐ŸŒก๏ธ

Photography

The hobby

I enjoy traveling and photography. The best photos I would like to share with the world, however, the problem is that I am too lazy to do so, therefore I wrote a program (instacron ) that will do that job for me. It takes a photo and adds: a random quote, camera and location info, and #hashtags related to the photo.

More photos on Instagram.

Publications

Citation metrics at Google Scholar

Quickly discover relevant content by filtering publications.

Contact