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
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
Instruction mentoring program at the IT department, both as a mentor and as
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!
Download my (not necessarily recent) CV here.
-----BEGIN GEEK CODE BLOCK-----
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------