This is me

Who am I?

I'm the proud father of three, Oliver, Anton, and Matilda. Since they don't want to appear on the Internet I won't say more about them nor the rest of my family here.

I'm currently working with JVM development at Oracle. A JVM (Java Virtual Machine) is the environment in which all programs written in the Java programming language is run. The JVM is called Hotspot, and it is the JVM built as part of the OpenJDK project.

I'm also a (not the least active) Ph.D. student in computing science at the Department of Information Technology at Uppsala University. My area of research is automatic memory management. So far, this work has led to publications about heap architectures for message passing concurrency, incremental garbage collection, and a new garbage collection algorithm called mark and split. I defended my licentiate thesis on the 27:th of may, 2005. You can have a look at it here: "Efficient Memory Management for Message-Passing Concurrency". The degree of licentiate is sort of half way to Ph.D. All my publications can be found on the publications page.

I have always been interested in computers and electronics and I like a challenge, like implementing some algorithm or application on systems with extremely low memory and limited I/O. I spend most of my time in front of a computer, hacking on some obscure piece of code. Nowadays I mostly use C++, but through the years I have come across a wide range of programming languages. It began in 1984 with Commodore 64 and Basic. I was nine years old at the time, and started right away to write small games. As soon as I got my first cartridge (TFC III) and looked into the machine's memory, I wrote my first program using machine code. This was really fun, but since I did not know about editors at the time, I wrote the code directly into the machine memory using the cartridge. (That's how you learn to appreciate NOP.) I was quite late at getting my first Amiga, but once I got it I fell in love with it. I still use the Amiga on a regular basis. (You can see more about my Amiga on the Amiga page.) New computers and new programming languages followed over the years. (In chronological order:) Amiga Basic, Amos, 68k assembler, Pascal, QBasic, DPG Prolog, C, 80486 assembler, C++, Amiga E, ARexx, Moscow ML, Java, MIPS assembler, Prolog, Matlab, Perl, PDP10 assembler, Erlang, PIC assembler, Ada, SML/NJ, PHP. I have of course seen and tried other languages to, but these are the ones I have used to write some "real" application. Like most programmers I have also been exposed to Visual Basic and other cut'n'paste kind of languages, though I do my best to avoid them. Other programming-like tools and languages I use (or have used) regularly, but I prefer not to call them programming languages, are awk, sed, (X)HTML, SSI, CSS, and script languages in a variety of platforms.

I began my studies in Uppsala in 1996 (full time student from 1997) and finished my MSc in computer science in 2002. During my time as a student in Uppsala I was an active member (and board member from time to time) in DVKV, the computer scientist's social activities organization. I also co-founded the party association Uppsalaeländet in the spring of 1999. I did my best to keep the tradition alive of using overall as The dress to wear in all student activities. The computer scientists in Uppsala have a beautiful red overall, and to the right you can see me wearing mine. It has been with me on student festivities and conferences from Kalmar and Gotland in the south of Sweden to Umeå up north.

Before I came to Uppsala I worked as a system administrator at two schools in Lidköping. The main tasks was to build and supervise the LANs of the two schools. Since it was in a school environment the job also included some teaching. Being a teacher was something I found very rewarding, so I continued to teach during my time as an undergraduate student and assisted on several courses at the university. My employment as a Ph.D. student also included 20% teaching and I got the opportunity to take several courses about pedagogics, group dynamics and presentation techniques. My teaching was mainly divided between two courses, Object oriented programming in which I were course assistant, and an introductory course in programming using C, which was my own course. I also developed a course in imperative programming and engaged myself in the Supplemental Instruction mentoring program at the IT department, both as a mentor and as administrative assistant.

The few spare minutes I have, I usually spend writing some game or lyrics to some computer related song. You can find some of them here at my site. I hope you will enjoy them!

Donald Duck

Download my CV here

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d?>+ s: a(---) C++++ UBLS+++ P--- L+++(-) E--- W++ N- o? K? !w O- M+ PS+ PE Y-- PGP- t 5 X+ R tv-- b+ DI+++ D->---- G+ e* h* r+++ y++++
------END GEEK CODE BLOCK------

This is me in my finest party dress