Curriculum Vitae
WORK EXPERIENCE
EDUCATION
|
1997 |
Software engineer from Datamatikerskolen in Ikast, Denmark. |
|
1994 |
Business College, Viborg Handelsskole. |
2007 |
(Certification) Sun: Sun Certified Programmer (SCJP) for the Java 2 Platform, 5.0 (CX-310-055) (Scored 93%) |
|
2004 |
(Course) Ericsson: GSM Operation Handling in GSN |
C, Java |
I have used C since 1994 and Java since 1997 for both work and spare-time projects.
One such spare-time project of mine was a chess computer (AI) that I eventually sold
to Funcom AS.
It was written in C with a few optimizations in assembly. I have also used C to
implement custom IP filtering/mangling modules for the Linux kernel necessary for one
of my R&D projects at Teletopia AS. |
|
Bash, Perl |
I learned Perl in 1997 and it is my preferred scripting language for most tasks. I use
perl and bash regularly in my daily work. |
|
SQL, Databases |
I have used MySQL, Oracle, PostgreSQL, MSSQL, SolidDB and dBase. I am, by far,
most experienced with MySQL as the database of choice in my current job and have lots of
experience running it in a mission critical environment. From the application point of view,
I have used the ODBC/JDBC interfaces and have also helped develop a complete JDBC driver for
dBase. Recently, I have been using the Hibernation data-persistence framework in my Java development. |
|
Linux, Unix |
I have extensive experience with Linux, having used it on and off since version 1.0.
It is my preferred platform for servers as well as my workstation the last couple of years.
I find it a far more efficient and less stressful OS to work in, but I do still use Windows
at home for better driver support. Over the years, I have had some experience with (porting
C applications or administrating) various flavors of Unix, from the days of SunOS 4.1,
IRIX 5.3, HP-UX to more recent versions of Sun's Solaris, but my preference lies with Linux.
During my student-years, I was trusted with managing the school's main computer, a Sun server
managing all the students' accounts and their data. |
|
Assembly |
I was programming demos for the 6510 CPU (Commodore 64) when I was 13 years old. I also
have experience with assembly programming for earlier Intel x86 models (pre-Pentium days).
Additionally, I developed good reverse engineering skills. Assembly is, however, not
something I use frequently anymore. |
|
Network |
I have a lot of experience with ethernet based networks; from the physical cabling and network
design, to security of IP based networks, managing VPNs and firewalls. I have also combined
this knowledge with my programming expertise to create a Linux kernel-module to modify certain
TCP streams on the fly needed for one of our R&D projects at Teletopia, as well as creating our
own network monitoring and management tools. I have a good knowledge of many network protocols and
I am proficient at troubleshooting
any such problems. I enjoy examining what happens on the wire with sniffing tools to gain
knowledge of new protocols or locate problems. I have programmed simple but efficient ftp, smtp
and http servers; the http server is used in many applications in the production environment
at my current job and has proved far more efficient and stable than alternatives (but is also
more limited in that it is tailored specifically to our needs). |
|
Programming |
I am proficient at reading and understanding foreign source-code. For example,
at Funcom, we ran multi-threaded server applications on Linux boxes, but at
that time the Linux kernel did not support core-dumping of multi-threaded
programs (which left us with no stack-trace when they crashed), so I spent
a night looking over the Linux kernel sources and by the next day I had fixed
the problem. Some of the projects I have contributed to
as well as some of my own are available under an open source license, and I have
received many compliments on the readability of my code. I have
found that open source development gives you an enormous incentive to create
quality work where many are likely to view (and hence evaluate) your work. |
|
Quick Learner |
I am a quick learner. I hunger for new technical knowledge and love learning
new things. I also love being the one people go to when they have an obscure
problem that seems impossible to fix. Programming is as much a hobby as it
is my work. My goal is to know something about everything and everything about
some things. |
|
Teaching |
Since August 2005, I have been a private tutor for a computer science student
at the University of Oslo. I have so far tutored the courses:
INF1000 ('Introduction to Object-Oriented Programming'),
INF1010 ('Object Oriented Programming'),
INF1020 ('Algorithms and data structures') and
INF1060 ('Introduction to Operating Systems and Data Communications').
|
|
Interests |
Mountain-biking, billiards and chess - besides the obvious. |
|
Languages |
Danish (native), English (fluent), Norwegian (fairly good) |
Nov 1997 - Feb 2002 |
Founding member of the Board of Directors of the Free Internet Chess Organization
(a Non-Profit Organization registered in Minnesota, USA). Besides being one of the
founders, I was a key developer from its creation in early 1995 until 1998 when my
employment in Funcom limited how much I was allowed to contribute. The
organization's goal is to promote chess and currently provides over 100.000 chess
players worldwide with one of the best places to play chess live on the Internet -
and for free. |
|
Apr 2010 - present |
Board member and treasurer at Lørenskog Sjakklubb (the local chess club). |
(Details available on request)