Personal Blog

Multicolor prints with a single extruder in Cura

Most techniques for printing multicolor prints on single extruder FDM printers are based on swapping filaments on layer changes, for example by enabling Filament Change or Pause At Height post-processing scripts in Cura. But wouldn’t it be nice if filament changes could happen mid-layer? The following guide and scripts provided in the scholtzan/cura-multicolor-single-extruder repository show how this can be done in Cura. The idea is to emulate a printer with multiple extruders. [Read More]

Speeding up Mozilla's automated experiment analysis

This post describes my recent work on Jetstream as part of my day job at Mozilla. In particular, I’ll describe how Argo and Dask were used to scale up a system that processes data of dozens of different Firefox experiments daily and on-demand. This work has been co-developed with my colleague Tim Smith. Beginning of 2020 the development of a new experiment analysis infrastructure was launched at Mozilla to help to scale up the number of experiments done in Firefox and reduce the involvement of data scientists necessary for each experiment. [Read More]

Writing Homebridge plugins in Rust

Homebridge is an awesome way to integrate smart devices that do not have native HomeKit support and has been running on my Raspberry Pi for months. There are thousands of plugins available, however, one that I was missing was a plugin to control Spotify devices. Homebridge plugins are Node.js modules which are published through NPM and usually written in JavaScript or TypeScript. While I could have picked up either of these languages for writing a plugin, I wondered if it would be possible to develop plugins in Rust instead. [Read More]

My Internship at Mozilla

This summer I was an intern on the Data Platform Team at Mozilla - from beginning of June until the end of August 2019. I was located in the Mountain View office which also happens to be Mozilla’s headquarters. It was my first time ever in California and working in the US, so I was especially excited. The first week was mostly spent on getting to know other interns, my mentor and my team. [Read More]

Running Python Code in BigQuery

BigQuery supports user-defined functions written in JavaScript and by using WebAssembly it is even possible to run C code. While having support for C is quite neat a more widely used language when it comes to data analysis and processing is Python with its scientific library ecosystem making the lives of data scientists much easier. So, wouldn’t it be cool to bring Python into BigQuery? That was the motivation behind my internship project at Mozilla. [Read More]

Setup Guide for Embedded Systems Programming with Rust on MacOS

It’s been a while since I last was tinkering with my Raspberry Pi and worked on some electronics project. After a long break, I was now itching to get back to play around with some electronics and do some embedded systems programming - but this time using Rust. I also bought an ESP8266 and wanted to see if I can use Rust for it. So I spent many hours during the past few days setting up my system and development environment. [Read More]

My Google Summer of Code Experience

Although I have always been interested in contributing to open-source projects, I was never confident enough or lacked the time to make more extensive contributions (besides a few smaller pull requests). Luckily, this summer I decided to participate in Google Summer of Code and finally get involved more in the open-source world. Google Summer of Code 2018 was an extremely valuable and exciting experience for me and I learned a lot during that time. [Read More]

Scala Macros vs. Rust Macros

Having worked with Scala for some years now, I have used Scala macros on several occasions and always have been impressed by how powerful they are. Recently, I started learning Rust and also came across its macro system. Although both metaprogramming facilities might seem similar at first sight, the way they work is actually quite different. In the following I will explore briefly how Rust macro rules and Scala macros work, how they are different and compare them against each other. [Read More]