Who am I?
I'm the proud father of three, Oliver, Anton, and
Matilda. Since they are too young to decide whether they want
to appear on the Internet or not, 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 developed at Oracle is called JRockit and you can
read more about it here.
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 1985 with Commodore 64 and
Basic. I was ten 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 memory, I wrote my first
assembler program. 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, (all
the web buzz words) and script languages in a variety of
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
Instruction at the IT department, both as a mentor and as
The few spare minutes I have, I usually spend writing some
game. You can find some of them here at my site. I hope
you will enjoy them!
Download my CV here.
-----BEGIN GEEK CODE BLOCK-----
GCS d?>+ s:-- a(---) C++++ USL+++ P--- L+++(-) E--- W++(+++$) N- o?
K? !w O- M-- !V PS+ PE Y-- PGP- t- 5 X+ R tv-->!
b DI+(+++) D->---- G++ e* h* r+++ y++++**
------END GEEK CODE BLOCK------