Areas of Interest

Computer networks, encryption and computer security, mathematics, free and open source software, algorithms, programming languages and compilers, and Unix system programming.

Previous experience

Automatic control, signal processing, time synchronization, algorithm design and implementation, TCP/IP, Secure Shell, TLS, Posix, Unix, Open Source, programming language design and implementation, object oriented programming, embedded software, client/server programming, XML & XSLT, encryption, finite state machines, SMTP, IMAP, HTTP, HTTPS, RSA, IEEE 1588, Solaris, Linux.

Over the years, I've used a bunch of different programming languages. In roughly chronological order: Basic, 6502 assembler, Pascal, C, Common LISP, 68k assembler, Objective C, Python, Pike, Scheme, elisp, C++, tcl, awk, x86 and x86_64 assembler, CPU microcode. Languages of choice are C, Scheme, and Pike. Long experience with development tools such as make, emacs, cvs, mercurial, and automated testsuites.

As for human languages, my mother tongue is Swedish. Good knowledge of written and spoken English. Beyond English, basic knowledge of Danish, German, Spanish, and Russian, and some knowledge of French and Japanese.

Degrees

2008
PhD degree in Telecommunications, at KTH. Thesis title: Window-based congestion control - Modeling, analysis and design.
2005
Licentiate degree in Telecommunications, at KTH. Thesis title: Automatic control in TCP over wireless.
1998
Master of science in Applied Physics and Electrical Engineering, at Linköping university. Thesis title: NCash - an experimental digital cash system.

Curriculum Vitae

2008 --
Working at Conemtech AB (when I started, part of Imsys Technologies AB, Conemtech was spun off as an independent company in 2009). Works mainly with development of control and signal processing algorithms for IEEE 1588 time and frequency synchronization, occasionally involved in other development, e.g., writing CPU microcode for signal processing.
2008
A two month contract at the KTH School of Computer Science. First month spent mainly on integration and optimization of the new code for computing the greatest common divisor. Second month spent mainly on new multiplication code based on small-prime FFT, including some highly optimized x86_64 assembler for the most importantant transform routines.
2005 --
Involved in the development of GMP, the GNU library for arbitrary precision arithmetic. Main author of the greatest common divisor routines, using state-of-the-art subquadratic divide-and-conquer algorithm for large sizes. I have also contributed to multiplication and division.
2002 -- 2008
Graduate studies at the Automatic Control group at the KTH School of Electrical Engineering (previously, the Department of Signals, Sensors and Systems), Stockholm. Research into applications of control theory to computer networking.
2000 -- 2001
Worked full time at E-hand, as security officer and developer. Hacking was mainly for the Palm Pilot. I also spent a few hours a week hacking free software.
1999 -- 2000
Worked full time at StreamServe AB. Hacking included systems programming on Unix and NT, security, XML, and unicode support.
1998 --
In my spare time, I'm hacking on LSH, a free software implementation of the Secure Shell protocols, and the Nettle low-level cryptographic library.
1996 -- 1999
Worked part time at Idonex AB (now Roxen Internet Software). Worked on the Roxen web-server. Among other things, wrote its SSL (Secure Socket Layer) implementation.
1993 -- 1996
Worked part time at the Mathematics department at LiTH (Linköping Institute of Technology). Taught several math courses for the engineering students.
1991 -- 1992
Civil service, which included training as nurse and ambulance assistant, and a few months of practice at nursing home, hospitals and the ambulance service in Stockholm.
1990 -- 1998
Studied Applied Physics and Electrical Engineering at LiTH. Branch of studies: Applied Mathematics.
1987 -- 1990
Studied at Brännkyrka gymnasium, the science program.
Niels Möller