This is work in progress and nowhere near what a real CV should be like, as yet.
I am currently working as a group manager, project manager and programmer at the IT Support department at Uppsala University. Our group is attempting to establish ourselves as a kind of “web studio” with focus on providing cost-effective and reliable custom web page development, among other things.
Our department provides systems management services, as well as backup, procurement and software development at any level for the entire university. I have been involved in one way or another in many or most of those fields over the years.
For me, working in this field is as much a hobby as it is a professional calling.
There are a few focal points - areas that I have a particular interest in or have at one point or another concentrated on:
Rather than striving towards focusing on any particular area, I tend to thrive in situations where I can learn new things.
I do not nurture irrational preferences for software environments, like operating systems or languages. I use whatever is available and suitable. I would consider myself an expert user of UNIX and Linux, MacOS X and Windows, as well as comfortable managing most major operating systems.
I have pursued or have been involved in a few more interesting activities, that might deserve a special mention. Here are both professional and hobby activities, but they are all related to the computer or IT field.
In 2005, Robert Olsson and Jens Låås, formerly of Sveriges Lantbruksuniversitet (SLU, the Swedish Agricultural University), started implementing an interesting new data structure for storing large amounts of semi-volatile data efficiently, in an attempt to improve the performance of the address prefix matching mechanism within the Linux routing code.
I joined them and proceeded to help working out the exact workings of the algorithm and coding much of it, as well as coming up with several shortcut tricks. We managed to achieve significantly better performance than the old multiple-hashtable implementation, and in the end, the code was accepted into the official Linux kernel and is now the default route lookup algorithm for the Linux kernel used in millions of installations worldwide. In this project, I focused on the actual data structure and the various algorithms used to manage it.
We won the Intel Academic Award for Linux/Open Source development for this work.
With no actual training in electronics, I decided a few years ago to experiment with microcontroller programming, and set out to develop an Atmel version of a publicly available design for a “mod chip” for my new Sony Playstation, in order to play imported games.
This design evolved from a hastily made DIL chip montrosity to a small, elegant PCB using SMT components and with a very simple “user interface” to adjust some parameters. With no realistic commercial viability, this project dwindled as games' countermeasures grew more advanced; but I was one of the first few able to run the Japanese version of the Final Fantasy VIII game on a PAL Playstation.
The next project was an engineer's implementation of an audio-to-MIDI converter, based on measuring pulse width rather than Fourier analysis. I developed the device for a Technochanter This worked far beyond expectations, and was in fact capable of recognizing musical notes from other audio sources and producing MIDI notes thereof.
The device was based on the same Atmel AVR as the Mod chip, using a simple OP amp design for the line-in conversion.
More recently (2004-5), I have made use of my PCB-making capabilities to produce several viable serial line adapters for small routers, which commonly have a built-in serial console interface needing voltage conversion. I made and sold approximately twenty of these to interested parties worldwide.
I prefer programming to most other endeavours, and I cover areas like algorithms/data structures, databases, communication, web, security and many other things.
I believe some of my primary strenghts are a knack for software architecture, rapid prototyping, troubleshooting/debugging, understanding other programmers' code and communicating and cooperating with managers, colleagues and customers.
I speak, understand and write Swedish and English fluently.