Uses This

A collection of nerdy interviews asking people from all walks of life what they use to get the job done.

A picture of Alice Maz

Alice Maz

Developer, cofounder (Sylph Bioscience)

Posted in developer, linux

Who are you, and what do you do?

I'm Alice Maz. I'm cofounder of Sylph Bioscience, a startup building a computer platform for simulating the behavior of biological systems. I do general computer stuff, but being wedged between the biologist and the mathematician at a quantitative biology company means I'm also the de facto business guy. My primary programming languages lately are Scheme and email. This year I get to learn embedded dev making DIY medical devices for my girlfriend.

I also write here and there, with a particular interest in history. Someday I'll take a sabbatical to write a comparative study of medieval Europe and ancient China. Aside from that I'm an avid weightlifter and reckless cyclist. In the near future I'd like to be a capable scout and competent brawler.

What hardware do you use?

While I do have a desktop with two monitors and a mechanical keyboard, lately I seem to do all my work on my T480 ThinkPad. It's a spectacular laptop, and the first I've had that everything worked on Linux without any tricky setup. I have a Pixel 3, a pair of ATH-M50x headphones, a handful of Raspberry Pis, and a couple more VPS instances than I can keep track of.

I also have to list my Kenema tenugui, which I tie to my backpack and follows me everywhere. I got it when I started biking out of a vague sense that always having a towel could come in handy, and it isn't a meme, you can use a towel for anything. Also it billows behind me like a flag when I'm on the road, and the "skull exhaling smoke that is also a skull" design communicates to drivers that I don't fear death.

And what software?

I run Void Linux on my computers. Maybe the best distro I've used so far, really happy to be back on a BSD-style init system. My browser is Qutebrowser, my phone runs Graphene. I prefer musl to glibc and LLVM to the GNU toolchain. In all cases I'm making the choice to accept an amount of compatibility failures on the margins in exchange for a vastly sounder core system. I do almost all my programming in CHICKEN Scheme these days, and most of the rest in Haskell.

My taste in applications is spartan to a fault. I use Vim for writing almost anything, software or otherwise. No plugins, ten-line conf and the first is to enable vi-compat mode. The one exception to this is Haskell, for which I use Spacemacs. Inline typechecking triples your productivity the moment you turn it on, it's too good to give up. My shell is tcsh in vi mode, a fact that causes great consternation when anyone else attempts to use my computer for anything. Terminal is xterm, which I will hasten to add does support Unicode; lack of Japanese text support is a dealbreaker for me. My regex "native tongue" is POSIX basic (the one where there is no logic whatsoever to which symbols need escapes) and I use find, grep, sed, and xargs for practically everything.

Window management is a screen session on every machine, connected through mosh, and xmonad to juggle them all. This is a spectacular way to work: I have a shell alias to create a session on the server-host named for the client-host, or reattach if it exists, and mosh means I can leave windows open through sleep/wake cycles or network changes and they pick back up automatically.

We also have a home VPN and home DNS. Being able to connect to any of your machines from any of your machines no matter where you are is so good that I can no longer live without it, and I don't understand why so many people who set up home media servers and home NAS don't do this first.

What would be your dream setup?

One of the side benefits of doing most of your work with the people you live with and love is you get to plan infrastructure on decades-long timescales. In this spirit, instead of describing my dream setup, I'll describe the setup I intend to have in five years. If nothing else this will be a fun thing to look back on and see how right or wrong I was!

By the start of 2025, all of our systems will be running some kind of operating system orchestration framework. Ideally Genode with whichever L4 kernel is suitable for a given arch, but it's possible we have to write something ourselves in the style of Guix. Everything, from our desktops and laptops, down to microcontrollers and up to servers, will be provisioned automatically from a declarative specification written in an s-expression dialect. (Phones are iffy and probably depend on how Fuchsia pans out.) This dialect will also serve as an interchange format we use to communicate between Scheme and Haskell, which we will standardize and release. We'll have our own stdlib and our own tooling that makes working in one or the other, or both in one project, as seamless as possible. The Scheme side will be agnostic to whichever particular Scheme we may wish to use.

We'll have a workshop suitable for working on electronics and machines. We'll have a wetlab. We'll have a burgeoning robotics company, a successful biology company, and a rocket company that has put something on the moon.

I probably will not have written the history book though.