I am an experienced software engineer with a solid understanding of
hardware. I was born in 1971 and have been interested in computers
for as long as I can remember. I've done everything from J2EE
services to boot loaders in assembly language, so I can work with just
about anything, although the thing I'm really good at is software on
embedded systems. I don't design hardware professionally, but I
understand it well and often work closely with hardware engineers.
The kind of projects I like to work on are fairly short ones, some
lasting just a few days, where I either act as a technical advisor or
where the customer has a tricky hardware/software problem and need
immediate help with troubleshooting; other projects lasting up to a
few months, typically to bring up Linux on a new hardware platform,
where I would work on the boot process and device support.
- One of my biggest strengths is that I have the ability to look
at new technology and learn it very quickly.
- Fluent in Swedish and English, both spoken and written.
- Experienced developer in C, C++, C#, Java, various assembly
languages and Python. Also knows basic Perl, lisp, Matlab,
Verilog, VHDL, HTML and a lot of other languages, but the
languages of choice are C and Python.
- Experience with embedded and real time systems based on Linux,
Android, various embedded RTOSes such as Nucleus, Zephyr,
ChibiOS/RT, mbed, and many bare bone systems running on
micro-controllers such as the Microchip PIC processor, Avnet AVR
and the Intel 8051.
- Good networking skills with experience of TCP/IP, DECnet, IPX,
AppleTalk, LonWorks and higher level networking services such as
HTTP and SNMP
- Experienced in cryptography using PGP, OpenSSL, JSSE and
- Expert in programming close to the hardware. Have a good
understanding of hardware issues although I usually don't build
- Have much experience of working close with customers, often on
site at the customer and in many countries.
I have worked and
lived in Singapore, UK and China, and have been on longer business
trips to Norway, the United States, Denmark and Taipei.
- Worked for a GPS company for five years, so know quite a lot
about GPS, both applications related to GPS and the internals of a
- 2002-present: Owner at Weinigel Ingenjörsbyrå AB
- Started a company, Weinigel Ingenjörsbyrå AB
(weinigel.se), to work as a
free-lance contractor/consultant. Weinigel AB has been put in
hibernation twice when I have decided to become an employee of a
customer. As of 2018 I am working as a contractor via Weinigel AB
- 2018-: Contractor at Netnod
- I am currently working as a contractor at Netnod Internet
Exchange. My primary task is to work on the Swedish NTP servers
(ntp.se) which are publically
accessible NTP servers at multiple sites with each site having
redundant Caesium clocks and serving time over NTP using redundant
Xilinx FPGA boards. Netnod are implementing a new secure variant
of NTP called NTS which is
Draft. I have been involved in the development of the NTS
draft and set up one of the
services. This service currently runs on redundant PCs
located at one of Netnod's NTP sites. I am currently supporting
the FPGA developers who are working on implementing NTS in Verilog
on a Xilinx FPGA. When the FPGA implementation is ready it will
be deployed to Netnod's NTP sites.
Keywords: C, Verilog HDL, FPGA Development, Xilinx Virtex 7, NTP,
- 2017: Employee at Nokia
- I worked as a contractor for ETA Devices Inc in Cambridge, MA
during 2015 and 2106. ETA was acquired by Nokia
(nokia.com) at the end of 2016 and
as a part of the acquisition I was retained as an employee by
Nokia for one year, mostly doing the same work as I did as a
contractor at ETA Devices.
Keywords: C, C++, C#, Verilog HDL, FPGA Development, ASIC
Development, Xilinx Zynq, Radio
- 2015-2016: Contractor at ETA Devices
- I worked as a contractor for ETA Devices
(etadevices.com). The main
office of ETA was in Cambridge, MA and I spent a couple of months
working there. I was brought in to help with the bring up of a
new ASIC but ended up working with a bit of everyting, portability
frameworks for C to be able to run C on many different plafroms,
support infrastructure such as automatic build systems and also
did a bit of simple FPGA development in Verilog.
Keywords: C, C++, C#, Linux, Windows, Visual Studio, Bare Metal
RTOS, MIPS Assembly Language, Verilog HDL, FPGA Development, ASIC
Development, Xilinx Zynq, Radio
- 2013-2015: Contractor at ASSA
- I came back to ASSA (assa.se)
to help them out with some device drivers. It was supposed to be
just for a few weeks but I ended up working for them another two
years. I worked on adding alarm system support to the ARX
platform, on firmware for their Mifare card readers, firmware
integrating the Yale Doorman connected lock to Aptus residential
management systems, and on developing some new products.
Keywords: Java, C, NFC, Mifare, Linux, Device Drivers,
- 2012-2013: Contractor at SAAB
- I worked about a year and a half at SAAB
(saab.com) on defense
- 2011-2012: Contractor at Packetfront
- I worked a year at Packetfront on the hardware support for
their their ASR 6000 Gigabit Ethernet Switch
PacketFront's hardware division has now changed its name to
Keywords: Cavium Octeon, NetBSD, Gigabit Ethernet Switch, C, MIPS
- 2006 - 2007: Employee at Cambridge Silicon Radio (CSR)
- Nordnav was acquired by CSR
(csr.com) at the beginning of 2007.
CSR wanted to build a GPS capable Bluetooth ASIC called BC7830.
At the beginning I mostly worked at CSR's headquarters in
Cambridge UK working on the GPS parts of the chip firmware
and on the chip-to-host interface making it possible to demo the
BC7830 Software GPS at the Mobile World Congress in February of
From 2009 and onwards I worked more on site with customers in in
Asia. CSR acquired the GPS company SiRF in 2009, so I also spent
quite some time working on the SiRF hardware GPS receivers, some
at the SiRF headquarters in San Jose, CA, some on site with
customers in Asia.
Keywords: GPS, DSP Digital Signal Processing, C, Python, Device
Drivers, Linux, Android, Nucleus RTOS, Thread X RTOS, MediaTek
- 2006 - 2007: Contractor and Employee at Nordnav
- I started working as a contractor for Nordnav Technologies AB
but later decided to become an employee of that company. Weinigel
AB was put in hibernation during my employment. I was originally
hired as an field application engineer to work on-site at
customers, but spent most of my time working on the infrastructure
around the software GPS receiver that Nordnav created.
Keywords: GPS, DSP Digital Signal Processing, C, Python, Linux,
Device Drivers, MIPS, MIPS64, ARM, TigerShark, PowerPC
- 2002 - 2006: Contractor at Solid AB
- Solid AB is now known as ASSA ABLOY Shared Technologies. I
was involved in the SOLICARD ARX project. ARX is an access
control system using the internet for communications. I
originally worked on the hardware support, boot loader and Linux
port for the Axis ETRAX based board used in their local control
After that I started working on the communications with the server
designing and implementing a large part the PKI infrastructure
used in ARX. I got more and more involved with the server side of
the system, working with the business logic written in C++ and
Java using a SQL database for storage. Since the system uses
multiple implementation languages Corba and ONC RPC are used for
In later versions the server software was changed to use only
Java. As the system has gotten closer to production I've also
designed and built the hardware and software used for testing and
programming of the LCU during manufacturing. I've also done a few
debugging sessions finding and fixing a couple of issues in Solids
proximity card readers.
Keywords: Java, Jetty, JSP, C, C++, Corba, ONC RPC, OpenSSL, JSSE,
Microchip PIC, Avnet AVR, SAP/DB, Axis ETRAX, Linux, Device
- 2000 - 2001: Contractor at e2-Home (via Nano
- Worked on the e2-Home Smart Home project, a collaboration
between Ericsson and Electrolux. My main responsibilities have
been system design and device driver programming for the LonWorks
home automation network, and the creation and maintenance of the
CVS source code repository and automatic build systems.
Additionally I have been doing coding and code review of the Java
OSGi code and some network and NT service programming under
Windows NT. Finally I have designed and built the hardware and
software for two automatic test systems for the e2-Home IT box
- 2001 - 2002: The "Nano Computer"
- Working on the design of an embedded computer based on the
National Semiconductor Geode SC2200 processor. I've been
responsible for most of the hardware specifications and have been
working in close cooperation with the people designing the
hardware, reviewing their design and making sure that it works
well with Linux. They received the first prototype board in
November 2001 and I got Linux running on it within a few days.
After that I've been working on device driver development and CE
certification for the board.
- 2000 - 2001: Employeee at Nano Systems AB
- Working for Nano Systems AB. Mostly working in-house with the
design of the Nano Computer, and as a consultant at Ericsson and
Keywords: C, Linux, Device Drivers, Cyrix MediaGX, National
- 2000: Employeee at Utilator AB
- Started working for Utilator AB in May 2000 and worked mostly
as a consultant at Ericsson until Nano Systems was spun off from
Utilator in November 2000.
Keywords: C, Linux, Device Drivers
- 1999 - 2000: Contractor at Ericsson on the Cordless Screen
Phone HS210 (via Signum)
- Did the port of Linux to the CeBit prototype for the Ericsson
Cordless Screen Phone at Ericsson Cyberlab in Singapore and was
also contracted for the product development of the real Cordless
Screen Phone until I started working at Utilator. See http://www.ericsson.se/ and
search for HS210.
- 1998 - 1999: Contractor at Ericsson on the eBox (via
- Doing almost all the initial Linux programming for the
Ericsson eBox, doing a port of Linux to the new hardware, writing
device drivers (for the LonWorks and ISDN), and as a technical
adviser. See http://www.ericsson.se/ and
search for ebox.
- 1996 - 1999: Contractor at Mydata Automation AB (via
- Moving all software on Mydata Automation's TP-machines, a
surface mount assembly robot, to Linux, doing work at the hardware
driver lever, system design level and applications programming.
See http://www.mydata.se for
- 1995 - 2000: Employeee at Signum Support
- Started work for Signum Support (now Cendio Systems), a
company specializing in free software, mostly as a consultant
specializing in Linux and embedded systems, but early on I did
some Microsoft Windows programming in everything from Visual Basic
and Microsoft Access to C++/MFC.
Keywords: Linux, Device Drivers, C
- 1993 - 1995: Studies at Linköping Institute of
- Studied Electrical Engineering at Linköping Institute of
Technology and that's where I first encountered Linux in late
1993. I was also a member of an academic computer club named
Ctrl-C, where I worked a lot with OpenVMS on VAXen. Besides that
I also administered a Novell Netware network for a student
- 1992 - 1993: Military Service
- Did my military service as a radio service technician.
- 1992 - 1993: Windows programmer at Vattenfall AB
- Worked part time as a Windows programmer for Vattenfall
- 1991 - 1992: Part time work at Forsmark
- Worked part time as a system administrator of a Norsk Data
Nord 500 system and a Unix/SunOS system.
- 1990 - 1992: Studies at Formarks Skola
- Studied Computer Science at a vocational college at the
Forsmark Nuclear Power plant, resulting in an engineering degree
(a Swedish gymnasieingenjör, teknisk 4-årig).
- 1989 - 1990: Exchange student in USA
- Studied as an exchange student in Birmingham, Alabama,
- 1971 - 1989: Early life in Stockholm
- Born and raised in Stockholm where I also went to grade school
and high school.
- Hobby Projects
- Too many to list all here, but I'm very interested in both
software and hardware and spend much time on learning new things.
Some of my hobby projects are a firmware for the EZ-USB and FX2
micro-controllers from Cypress, a 250MSample/s oscilloscope, and
custom Linux firmwares for many different devices such as a PDA
previously running Windows CE and a LG TV set. More documentation
on some of my projects can be found at my private