Jonas Termansen

Jonas 'Sortie' Termansen

Hi. This is my personal website.

I'm a guy from Denmark, a small country in northern Europe. I was born in August 1991. I live in Lystrup, a suburb of Århus.

I attend the University of Århus. I expect to graduate my Computer Science bachelor's degree in the Spring of 2016.

I like low-level systems programming. I have made my own self-hosting Unix operating system from scratch.

Personal Projects

Sortix

I have developed the small Unix-like operating system Sortix since 2011. It can be developed under itself and 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.

libz

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

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.

Experiences

I've not yet had the need to be professionally employed since every Dane is entitled to free education and monthly government grants. I have however participated in various programs:

Teacher's Assistant

I have been employed by the University on two occasions as a teacher's assistant in respectively the Programming Languages course and Operating Systems course. I was tasked with running weekly classroom sessions (where students solved problems) and correcting weekly homework.

Gnash (Google Summer of Code 2011)

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.

World Robot Olympiad

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.

University Organizations

I'm part of a number of student organizations. I've been a tutor for new students several times. I write for and help maintain the LaTeX systems for the casual student magazine Mads Føk, our oldest university newspaper published since the early seventies. I also participate a bit in student politics.

Free Software Community

I've made a number of small contributions to various free software projects. These are predominantly 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.

Skills

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 understand and am able to use C++ and Python too as needed but those are not my strengths.

I have a focus on software security and correctness.

I'm an Unix person. I use Linux. I use git. I'm good at shell scripting and standard Unix build systems. I'm good at software portability. I know proper network programming. I've made toy HTTP servers and IRC bots.

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 what what is.

Miscellaneous

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.

Contact

You can email me at sortie@maxsi.org.

I frequent the IRC network freenode as 'sortie'. I idle in channels such as ##fallout, #libz, #musl, #osdev, #osdev-offtopic and #sortix.

I am @SortieCat on twitter.

I am an operating systems developer and not a web developer. Appreciate the correctness and simplicity of this website.