My objective is to carry out advanced technical research and
development. Specialities include embedded real time systems, signal
and image processing, Linux and Open Source. Programming especially in
C but also C++, Python and other languages including various kinds of
scripting, assembler and domain specific languages as appropriate or
necessary.
- 2010-12 - current
- VTI, Swedish National Road and Transport Research Institute.
Developing integration of profile measurement data
for compatibility with the Proval
pavement viewing and analysis application.
- 2003 - current
- Developing Guppy-PE, which is an umbrella project currently comprising Heapy and GSL.
Heapy provides profiling, debugging and optimization support
regarding memory related issues in Python programs. Heapy is based on
extension modules written in C, which can be dynamically loaded from
Python. The C code implements special algorithms for efficient
address-based object sets, and algorithms for finding and classifying
objects in the reachable heap.
GSL (the Guppy Specification Language) is a formal specification
language for Python. GSL can be used to generate formal documentation
and test routines from common specifications, to ensure that the
formal documentation corresponds with the implementation.
The test generation uses special algorithms that make use of optimized
C data structures.
- 2009 - current
- Member of the board at The Linux Society of Sweden
.
- 2009
-
Prestudies for two projects within image analysis.
- 2008
- Auditor at The Linux Society of Sweden
.
- 2008-08
- Agama Technologies Used Heapy
to analyse memory consumption in the client's Python program, to
recommend what objects first to optimize, and how they could
use Heapy to continue optimizing their software.
-
2007-2008
-
Developed programs for reading 2-dimensional barcodes and for
Optical Character Recognition to be used for mobile phone ticketing.
The programs were in C and Assembler using embedded Linux (uClinux)
and a general purpose image processing library (OpenCV). Development
used Python as a frontend. Hardware included an Analog Devices
Blackfin signal processor and a Micron CMOS image sensor. This
assignment was from the embedded system specialist
Lilla Fabriken AB
.
-
2006
- Finalized and presented my master's thesis
, was opponent to
a thesis in the field of bioinformatics and made a final exam. Also
had an assignment to support the development of the third generation
of PAVUE, a road survey system from
OPQ Systems AB
.
- 2002-2003
- Developed a native code compiler for Python, with runtime implemented in C.
- 2001-2002
-
Developed a virtualization system for Linux in Python and C.
Became involved with User Mode Linux
and made a safety-critical contribution after examining the C source code.
- 1997-2000
- Studied at Linköping University and also had some assignments from OPQ Systems AB
to support the development of the second generation PAVUE
system.
- 1996-1997
- Developed a persistent data store for the Haskell programming language. It was implemented in C.
-
1990-1996
-
R&D consulting to help develop the road survey system PAVUE,
on assignment from OPQ Systems AB
.
The system performs real time image analysis in extremely
demanding conditions. My work involved algorithm research,
software development, and hardware design. I programmed mostly in C and
Assembler, to interface custom hardware and video equipment, to analyze
image data and classify results, and to do graphical presentations.
Also carried out some smaller assignments for other
companies.
-
1986-1990
-
Developed an accessibility aid (Termilux) for visually impaired
people on assignment from PCC AB. The work involved low level C
programming close to the graphic accelerating chip and the keyboard
controller. I was also involved in some hardware design.
-
1986-1987
-
Developed software and algorithms for computer
vision at Innovativ Vision AB.
The work involved algorithm research, microprogramming for
specially developed custom hardware, and C programming for graphical
presentation. Was especially involved with an algorithm for
WoodEye
, a scanner that inspects, grades and optimizes sawn and planed
timber.
-
1984-1986
-
Isotron Svenska AB. We developed a
new computer based on Unix and the Motorola 68000 processor. My work
included writing device drivers for the hard disk and the terminal
accelerator, in C and assembler. Worked with Unisoft in Berkeley, USA
to support the port of their UNIX version to the new computer
architecture.
-
1982-1984
-
Primaldata AB. Developed software, mostly in assembler, and
also designed some hardware. Projects included a battery powered data
logger and device drivers for an hard disk, robot, and the GPIB
interface.