Hi. This is my personal website.
I'm a guy from Denmark, a small country in northern Europe. I was born in 1991. I live in Århus.
I graduated with a Bachelor's Degree in Computer Science from the University of Århus in June of 2016. I am currently working as a Software Engineer at Google Aarhus in Denmark. My resume is a condensed version of this page.
I like low-level systems programming. I have written my own installable & self-hosting Unix operating system from scratch.
I have developed the small Unix-like operating system Sortix since 2011. It can be developed under itself after installation and it has ports of a lot of third party software, such as gcc, python, git, quake and a lot more. Sortix aims to be a clean and modern implementation of POSIX. It has its own base system written from scratch, including a kernel, C standard library and command line utilities. I don't have many isolated personal programming projects as Sortix offers a lot of interesting work ranging from kernel hacking to porting third party software.
I maintain Sortix libz, which is a fork of zlib that has been cleaned up and modernized. Upstream zlib is of unacceptable quality for inclusion in Sortix. I have removed a lot of harmful practices such as explicit support for 16-bit segmented systems and numerous workarounds for broken operating systems. The result is a more secure and compact libz with focus on correctness, proper portability, auditability, simplification and opportunities to optimize. We're planning replacement libraries for zlib.h called libdeflate and libgzip that are properly designed with the ultimate goal of transitioning the Unix ecosystem to them.
Altered Transmission is a Half-Life 2: Episode Two single player campaign developed by me in 2007 and the years since. I've personally made all the level design of eighteen maps. The mod is not entirely finished but its latest published development snapshot is perfectly playable from start to finish.
I began as a Software Engineer at Google Aarhus in October of 2016. I am working on the Engineering Productivity Team, maintaining the system that benchmarks the performance of the Dart programming language.
I have been employed by the University of Aarhus as teacher's assistant in respectively the Programming Languages course and the Operating Systems course. I was tasked with running weekly classroom sessions (where students solved problems) and correcting weekly homework.
I was a student programmer in 2015 at the Institute of Physics and Astronomy at the University of Aarhus, where I worked on a polishing a numerical simulation program. I added a tiny interpreted language to express potential functions.
I've made a number of small contributions to various free software projects. These are predominantly bug fixes and changes to make the software more portable, often as part of porting the software to Sortix. Examples include Git, LibreSSL, Mono, gettext, gnulib, Wayland, Mesa, OpenBSD.
In the summer of 2011 I worked on Gnash, a Flash replacement. I was tasked with optimizing video playback. The bulk of my contributions turned out to be bug fixes instead as the media layer suffered from critical design mistakes that were more urgent to fix. This work was part of the Google Summer of Code program.
Our team won the danish Robot Olympiad and traveled to Manila, the Philippines to participate in the international World Robot Olympiad. We used an innovative design in the danish tournament where the robot split into two parts, solving the task in a few seconds.
I have part of a number of student organizations. I've been a tutor for new students several times. I wrote for and helped maintain the LaTeX systems for the casual student magazine Mads Føk, our oldest university newspaper published since the early seventies. I also participated a bit in student politics.
I'm a very good C programmer. I have designed and implemented a somewhat complete libc written entirely from scratch based on the C and POSIX standards. This includes the support for error handling, memory management, signals, standard IO, strings, system calls, time, threads, unicode, wide characters, extensions from other operating systems and new extensions, and much more. It supports a lot of major software.
I can also work in C++, Dart, Scheme, Python, Java, Coq, PHP and a bunch of domain specific things.
I have a focus on software security and correctness.
I like Unix-like systems. I use Linux. I have a VM of every relevant free software POSIX system. I use git. I'm good at shell scripting and standard Unix build systems. I'm good at software portability. I've made toy HTTP servers and IRC bots. I typeset with LaTeX and write manual page in mdoc(7).
I'm experienced with systems programming, hardware drivers, assembly, filesystems, compilers and development tools, design and implementation of modern operating systems. I regularly use virtual machines.
I try to be more rational and ethical. I fix bad habits one at a time.
I stop and inspect mysterious keypads that beep in strange patterns. It is fun to make sense of something you have no idea what is.
I'm a moderator at the osdev.org forums, a community and resource for experienced and aspiring operating system developers. I've written and improved lot of osdev wiki articles.
I occasionally write up stories of fun innocent ‘hacks’ I've done.
You can email me at email@example.com.
I frequent the IRC network freenode as
sortie. I idle in
channels such as ##fallout, ##posix, ##tty, #libz, #musl, #osdev,
I am @sortiecat on twitter.
I am an operating systems developer and not a web developer. Appreciate the correctness and simplicity of this website.