Curriculum Vitae of Johannes Winkelmann
Personal Information
| Name: | Johannes Winkelmann |
| Location: | Zurich, Switzerland |
| Birthday: | 28.02.1979 |
| E-Mail: |
jw@smts.ch |
| Nationality: | Swiss |
Languages
| German: | Native |
| English: | Fluent |
| french: | Intermediate |
| Norwegian: | Beginner |
Core qualifications
- Extensive object oriented software engineering skills
in C++, Python, Java, Perl and Ruby
- Strong knowledge of Linux, including embedded linux, kernel and
device drivers, cross compilation and porting software to different
platforms and architectures, software packaging
- Familiar with open source projects, communities
and OSS licensing discussions.
Intended position
Software engineering position in a Linux environment, ranging from
low level (kernel/device driver) over system programming to
application development. Interested in moving to the Android/Mobile space.
Education
- B.Sc. equivalent in Computer Science (Dipl. Inf. FH), specialized in
software engineering, Hochschule für Technik und
Informatik Biel, Switzerland, 2004
- Degree in electronic engineering, specialized in computer
technology (apprenticeship; Eidg. dipl. Elektroniker) Ascom AG,
Switzerland, 2000
Work experience
Linux Software Engineer, aizo ag, Switzerlandhttp://www.aizo.com
August 2009 - July 2011
- Software developer in the digitalSTROM Server team
- Implement new features in the digitalSTROM server application (C++)
- port application to new RS485 communication stack
- peer review commits to core codebase
- organize represent project and company at developer events
- train and coach interns and diploma students
- Enhance and maintain the linux kernel for aizo's dSS11 hardware platform
- maintain U-Boot bootloader for dSS11
- Debugging of hardware issues together with HW team
- Keywords: ARM, Embedded Linux, Linux Kernel, Bootloader
Embedded Linux Software Engineer, BridgeCo, Duebendorfhttp://www.bridgeco.net
January 2009 - July 2009
- Software developer for the BridgeCo's SoC platform
- Device driver development for SoC platform
- Bootloader extentions
- Userspace adaptation to support new bootloader/kernel features
- Debugging of hardware issues together with ASIC team
- Keywords: ARM, Embedded Linux, Linux Kernel, Device Drivers, SoC, Internet Radio, Home Entertainment
Software Engineer, BridgeCo, Duebendorfhttp://www.bridgeco.net
January 2008 - December 2008
- Software developer for the BeBoB platform
- Firmware development for 1394 and USB audio devices
- USB stack work
- Debugging of hardware issues together with ASIC team
- Customer support
- Keywords: ARM9, Audio streaming, Low latency, Embedded C++, USB
Software Engineer, ETH Zurich, Switzerlandhttp://www.ife.ee.ethz.ch
February 2006 - December 2007
- Responsible for the software maintenance of the QBIC platform (Belt Integrated Computer):
- Linux kernels: driver porting and maintenance
- Boot loader
- root filesystems for various projects, using uclibc and
busybox
- Implemented uclibc based linux distribution to minimize disk
space and boot time on an embedded device
- Implemented a test setup to diagnose problems on existing
QBICs, and verify newly produced ones
- Implemented a fully scriptable game to support a study on
stress detection using physical and physiological sensor
data
- Prototyping and supervision of the development of a generic visualization framework
for physiological signals using C++/Qt
- Keywords: Embedded Linux, Linux kernel, bootloader, OpenEmbedded, uclibc, ARM, C++, Qt
System administrator at MEM Research Center, University of
Bern, Switzerlandhttp://www.memcenter.unibe.ch/istb
September 2004 - February 2006
- Responsible for the institute's web, mail and file
servers (linux and solaris)
- Planned and implemented the move of the developement
environment:
- Co-authored a build system based on Boost.Jam
- Introduced Subversion as revision control
- Introduced wikis to the team
- Maintainer of several medical software
packages
- Wrote the coding style and API documentation
guidelines
- Implemented Abstract Submission for conferences;
used for CAOS (Computer Assisted Orthopaedic Surgery) 2005,
CAS-H (Computer Aided Surgery around the Head) 2005, prepared
for CAOS 2006; PHP/MySQL
Founding member Tegonal Gmbh, Bern, Switzerlandhttp://www.tegonal.com
September 2004 - March 2005, part time 40%
- Responsible for the development of a client
application for WinCE and PalmOS handhelds using
SuperWaba
Software Engineer at MEM Research Center, University of
Bern, Switzerlandhttp://www.memcenter.unibe.ch/istb
March 2004 - September 2005
- Extended an existing planning application for hip
surgeries; C++, Qt, Coin3D, VTK
- Work on the internal framework for medical
application; C++
- Ported the framework core from Linux to MS
Windows, C++
Software Engineer at Trustix AS, Trondheim, Norwayhttp://www.trustix.com
October 2001- July 2002; internship, part of my studies
- Helped to build a remote administration tool
(XPloy) for Linux servers (C++, Qt, MICO)
- Ported parts of the firewall builder XSentry to
C++/Qt
- Part of an Extreme Programming team
Software Engineer at iClip AG, Bern, Switzerlandhttp://www.iclip.ch
Summer 2000 - September 2001, part time 20%, while studing
- Development of a large scale content management
in Java and Apache Tomcat, using XML and XSLT
- Responsible for the evaluation and introduction of
SVG and rasterization methods for SVG in the CMS
Software Engineer at Ascom AG, Bern, Switzerlandhttp://www.ascom.ch
September 1998 - August 1999, part of my apprenticeship
- Development of a module to control and configure
high speed modems for Ascom Transmission
- Keywords: C++, cross platform, IlogViews, Telecommunication
Public code
digitalSTROM server (git)
prt-get - package management tool for CRUX linux (git)
httpup - one way data syncronization tool over http (git)