Hi, I am Tobias Pfeiffer, a mathematician by education and software engineer by profession. I live in Tokyo with my wife and my daughter and work as a Lead Engineer at Preferred Networks.


Born and raised in Berlin, I graduated with a Diplom (the German then-equivalent of a MSc) in Mathematics from Freie Universität Berlin in 2011. During my studies I worked as a student assistant first at Music Pictures Ltd., later at the university's research group for Mathematical Geometry Processing. After graduation I worked as a Web Developer and Project Manager at TESOBE for a year, then I went to Japan in 2013 as a scholarship holder of Heinz-Nixdorf-Programme and did an internship at IBM Research Tokyo. After the internship I decided to stay in Japan and joined Preferred Networks in 2014.

In 2010 I co-founded vismath, an online shop for mathematics-related goods, and used to be responsible for all IT-related tasks in the business.

I am an alumnus of the Berlin Mathematical School and the German-Japanese Young Leaders Forum.

About this Site

This website consists mainly of my blog where I (used to?) write about technical stuff that I learned the hard way so that others don't have to (and which has not seen any updates since I started my first regular 9–6 fulltime job), and the works section where I share documents/articles that I wrote and slides for talks that I gave. Once I figure out what is a good way to enable self-hosted comments on a static website, it will also provide a back-channel to give feedback on blog posts.

Technology & Philosophy

I am a Linux & Free Software enthusiast. On the first PC I owned I installed SuSE Linux 7.3 (the 3-CD Personal Edition box) and while typing this I realize that this means I have been using Linux as the main OS for most of my life (including the time when I didn't use any OS). I used Debian, Ubuntu, Mint, Fedora, and recently went back to the roots and installed openSUSE Tumbleweed on both my work and private laptops, as it seems to be the most stable and user-friendly rolling release distribution. On the server, having the experience of running a production server with multiple VMs all on Ubuntu 10.04 and being afraid to touch anything, I have come to believe that immutable infrastructure is the right approach for new systems.

Adding to the “Linux & Free Software” section from above, I think Richard Stallman is right with the vast majority of what he says and that he describes an ideal state; realization seems difficult to me in some cases. However, I too prefer Free Software over Open Source over proprietary software over Software-as-a-Service. In particular when it comes to SaaS platforms (including most of the “Social Media” platforms such as Facebook) I am often a bit skeptical about their role as a single point of failure for the availability (for example, think about a company going out of business) and the confidentiality (say, in the case of data leaks or cooperation with government agencies) of communication or data. Therefore I am always interested in solutions that work in a decentralized or federated manner.

I think tools are important to get work done efficiently, as described in one quote often attributed to Abraham Lincoln: “Give me six hours to chop down a tree and I will spend the first four sharpening the axe.” One aspect that makes me like a tool is the ability to work on plain text. Plain text is human-readable, human-editable, printable, versionable etc.; if it is meant for humans to be used, then plain text is one of the best formats that I can think of. As for tools, in particular, I rely on emacs' org-mode to manage tasks, track time, write documents, schedules, and plan projects. I use ledger for accounting and lektor to create this website.

As for software development, programming languages that I know and work in are Scala, old Python, Go, Java, and bad JavaScript. Programming languages that I would like to know (better) are Rust, C++, modern Python, and good JavaScript. That being said, I prefer strong and static typing, as a compiler is much better in checking whether it makes sense what I am trying to do than myself. Other things that I would like to become more familiar with include the emacs editor and the *BSD family of operating systems.

Finally, some recommended readings:

Spare Time Activities

In my spare time I like cooking (with one of the challenges finding the ingredients for German cuisine in Japanese supermarkets), I practice Karate (goju-ryu style) and jogging. I also enjoy to meet with friends over a beer in one of the numerous izakayas in Tokyo. I am the organizer of a Stammtisch for current and former members of the Heinz Nixdorf Programme in Tokyo.