| 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. Skills:
    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 SNMPExperienced in cryptography using PGP, OpenSSL, JSSE and
    BouncyCastle.Expert in programming close to the hardware.  Have a good
    understanding of hardware issues although I usually don't build
    hardware myself.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
    GPS receiver. History:
    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
      again.
 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
    an IETF
    Draft.  I have been involved in the development of the NTS
    draft and set up one of the
    first NTS
    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,
    NTS, PTP
 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,
    Cryptography
 2012-2013: Contractor at SAAB
I worked about a year and a half at SAAB
    (saab.com) on defense
    applications.
 2011-2012: Contractor at Packetfront
I worked a year at Packetfront on the hardware support for
    their their ASR 6000 Gigabit Ethernet Switch
    (https://www.waystream.com/products/l3-gigabit-ethernet-switch).
    PacketFront's hardware division has now changed its name to
    Waystream
    (waystream.com).
 Keywords: Cavium Octeon, NetBSD, Gigabit Ethernet Switch, C, MIPS
    Assembly Language
 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
    2008.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
    RTOS
 2006 - 2007: Contractor and Employee at Nordnav
    Technologies AB
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
    units (LCU).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
    inter-module communications.
 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
    Drivers, Security.
 2000 - 2001: Contractor at e2-Home (via Nano
    Systems)
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
    hardware.
 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
    e2-Home.
 Keywords: C, Linux, Device Drivers, Cyrix MediaGX, National
    Semiconductor/AMD Geode
 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
    Signum/Cendio)
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
    Signum)
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
    more information.
 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
    Technology
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
    computer hall.
 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
    AB.
 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,
    USA.
 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
    blog blog.weinigel.se.
 |