What I Use

Tags: musings

Published on
« Previous post: The Monoculture of Machine Learning — Next post: Thoughts about my Research Philosophy »

I sometimes get questions about my own setup. While I am glad to answer such them, I want to make it clear that this setup is not supposed to be superior to others—it is merely what I find to work for me. Read it mostly to weigh and consider, not to believe and take for granted, please.

That being said, here is a list of things I like to use:


  • Laptop: My daily laptop is a ThinkPad X1 Carbon Gen 9 (14 inches). I buy it with Lenovo Premier Support and am so far very happy with it. Note that my daily work mostly involves writing, correcting things, or coding. All the heavy lifting is done via high-performance compute clusters, meaning that most of the time, the X1 serves as a sleek SSH client. It does pack some processing power for CPU-based stuff, though. The laptop is also excellent for travelling.

  • External monitor: For some tasks, I like to use a larger monitor. I use whatever is available and has a USB-C connection, since I really do not care about the brands here.

  • Hard drives: I like to buy SanDisk Portable SSD drives for most backup needs. For very important stuff, I also have a custom-built NAS with a RAID setup, but this will probably be retired soon and replaced by something off-the-shelf like a Synology NAS.

  • Tablet: I use an iPad Pro for note-taking, reading papers, and virtual meetings.

  • Server: This website and a couple of other websites are hosted on a DigitalOcean droplet. I am a very happy customer and do not miss running my own server at home.


  • Operating system: Everything’s on Linux for me these days. I like ArchLinux, mostly because of its excellent documentation. For servers, I use Debian since I do not want to be able to run bleeding-edge software. I used to use OS X, and it was also okay, but I feel much more at home when I can actually tinker with my system and destroy everything. Way back when I was into FreeBSD, but it is just not practical as desktop OS these days for me.

  • Desktop environment: I switch between Awesome for pure window management and KDE Plasma. The latter is quite aesthetic and gets out of my way once I disable animation and sounds. I oscillate between urxvt, konsole, and Alacritty. Currently, it’s time for konsole. It just works and permits me to do my work.

  • Editor: I use neovim. In the past, I have used vim, but neovim is just a little bit simpler for me to set up and customise. My setup is rather minimal: I use vim-lsp, VimTeX, and UltiSnips. Maybe I will write a separate post about them.

  • Homepage: This website is built using Hugo. I like that all content is in Markdown, making it super easy to switch to other systems if necessary. I used ikiwiki and NanoBlogger in the past. ikiwiki was already quite nice and I used it for a while, but I personally find Hugo to be easiest to customise and work with these days.

  • Fonts: I am not sure why people are interested in this, but my system font is IBM Plex in its mono-spaced variant. I also like Hack. For documents, I actually took the plunge and bought fonts from Matthew Butterick, viz. Equity and Concourse. This was a great decision and I use those in all my recent documents (and this website).

  • Licenses: For my own code and my lab’s code, we primarily use an MIT-type or BSD-type license, mostly because it does not stand in the way of commercial usage. It also meshes well with my understanding of freedom, i.e. encouraging people to contribute back but not forcing them to do so.


  • I store all my electronic notes in a long Markdown document, synced and version-controlled using git. It is blazingly fast and easy to search in. I have no need for cross-references or images, but content is sorted by project and by day. For shorter hand-written notes and ‘thinking while writing,’ I use a Moleskine plain paper notebook because I like the format and the feel. I find paper to be the best medium for proofs, back-of-the-envelope calculations, or just quick scribbles. When I expect to take longer notes in meetings that might have to be shared with others, I use Goodnotes on my iPad. It can generate PDFs that I can sent around and sometimes, it even manages to detect my hand-writing. I have already blogged about this note-keeping setup in the past.

  • I try to make my content available under permissible licenses because, being funded by public money, I believe that the public has a right to be able to see what I do. This sometimes leads to disappointments because people still believe that they can just use my content without attribution, but I try to rise above that.

That’s all I can think of at the moment, until next time!