 |
home
> aboutme
>> cv
translate to German (by SYSTRAN)
|
 |
 |
Christof Meerwald
Profile
Experienced developer (and member of the ISO C++ Standards Committee) specialising in C++ development, backed by a Master's degree in Computer Science. Versed in several programming languages (C/C++, Python and Java) on Unix and Win32 platforms with experience of low-level network programming and a strong interest in how things work under the hood.
Work Experience
Programming Research Ltd.| Senior Software Developer | since 3/2010 |
- Quickly became a key member of an elite C++ team by building on previous C++ compiler implementation experience.
key technologies used: test-driven development
- Key developer responsible for extending the in-house C++ parser to support C++11 features: auto type specifier, decltype, scoped and strongly typed enums, inline namespaces, explicitly defaulted and deleted functions, explicit conversion functions, rvalue references, variadic templates. Ensuring quality of implementation by testing against the boost library and cross-checking test-cases with gcc, clang and Visual C++.
key technologies used: latest C++ standard working draft together with the C++ core working group issues list
- Static code analysis for C++: Implementing new static analysis checks, ongoing maintenance and bug-fixing.
Emnico Technologies Ltd./Emnico Services Ltd.| Senior Software Engineer | 1/2008 -- 2/2010 |
- Network management application development -- concentrating on SMI parser, SNMP/MIB and native code integration for low-level network and OS access. Designed and implemented a versatile framework to access MIB data by auto-generating database data-access functions from MIB module definitions.
key technologies used: Java + JNI, XML + XSLT, SQL, Apache Derby, SNMP, MIB/SMI, low-level network access
- Developed an asynchronous TCP/IP communication server.
key technologies used: C++, Boost
- Support and continuous development of an optical network management (SONET/SDH) system in a Unix environment (C++ on HP-UX and Linux).
key technologies used: C++, CMISE, OSI
- Linux embedded software development.
key technologies used: C/C++, SNMP, Linux, Python-based code generation
Alcatel-Lucent (formerly Lucent Technologies)| Senior Software Engineer | 12/2005 -- 12/2007 |
- Worked in a global development team on telecom network management software for optical networks (SONET/SDH) in a Unix environment (mostly C++ on HP-UX and Linux) with a Oracle based database backend.
key technologies used: CMISE, OSI, SQL
- Low-level architectural work: porting of the low-level networking code from HP-UX to Linux; developed a debugging memory management library to facilitate detecting and tracking down of memory management bugs.
key technologies used: low-level networking API on Linux (packet sockets), accessing a program's call stack, reading ELF/SOM symbol table
SBS Software Ges.m.b.H.
| Software Engineer |
| full time: |
11/2001 - 1/2003;
2/2004 - 11/2005 |
| part time: |
10/1996 - 6/2000;
10/2000 - 10/2001;
4/2003 - 1/2004 |
| summer internships: |
7/1994 - 8/1994;
7/1995 - 8/1995;
7/1996 - 9/1996 |
- Developed several Java/JNI libraries to access Win32 specific APIs: i.a. CEN XFS, shared access to the same RS-232 port by multiple processes.
key technologies used: Java + JNI, C++, script-based automated code generation, multi-threading, Win32
- Worked on a J2EE application for monitoring self-service banking terminals: SNMP integration, database maintenance scripts.
key technologies used: Java + J2EE, WebSphere, SNMP, DB2 SQL
- Prototyped a custom firmware for the Linksys WRT54G to build a cost-efficient, custom security appliance (firewall and VPN).
key technologies used: Linux, gcc cross compiler, VPN
- Developed a replacement for the standard Windows shell (explorer) for self-service terminals that takes care of starting and monitoring application processes and prevents unauthorized access to the operating system desktop.
key technologies used: C++ using STL and Boost libraries; Win32 API for starting and monitoring processes; COM Automation for inter-process communication and JNI for the Java integration
- Linux server and network administration: set up a centralised directory service, firewall and VPN (IPsec, OpenVPN) configuration.
key technologies used: Linux, LDAP, Samba
- Developed a highly scalable TCP/IP communication server for statement printers.
key technologies used: C++ using STL and Boost libraries; multithreaded design using Windows NT's I/O completion ports for high scalability
Lebenshilfe Salzburg, Werkstätte Hallein| Community Service | 2/2003 -- 1/2004 |
- As an alternative to Austria's compulsory military service: working with people with mental or multiple handicaps.
AT&T Laboratories Cambridge| Summer Internship | 7/2000 -- 9/2000 |
- Automated and improved the omniORB regression testing suite; developed a black-box CORBA server testing tool in Python, based on annotations in the interface definition (IDL).
HTBLA Salzburg| Linux System Administrator | part time: 9/1997 -- 6/2000 |
Education
10/1996 - 10/2001:
University of Salzburg,
Department of Computer
Science:
5-year course in Applied Computer Sciences leading to a
Master's degree
("Dipl.-Ing.");
specialised in distributed systems and wrote Master's thesis about
distributed simulation:
" CORBA-based Conservative Distributed Discrete
Event Simulation"
9/1991 - 6/1996:
HTBLA Salzburg
( secondary
technical school for electronics/informatics):
" Matura" (A-levels)
with distinction
Independent Coursework
- Introduction to Databases - Coursera (Jennifer Widom, Stanford)
- Cryptography - Coursera (Dan Boneh, Stanford)
- Algorithms: Design and Analysis, Part 1 - Coursera (Tim Roughgarden, Stanford)
- Heterogeneous Parallel Programming - Coursera (Wen-mei W. Hwu, UIUC)
- Algorithms: Design and Analysis, Part 2 - Coursera (Tim Roughgarden, Stanford)
- Microeconomics Principles - Coursera (José Vázquez-Cognet, UIUC)
- Pattern-Oriented Software Architectures for Concurrent and Networked Software - Coursera (Douglas C. Schmidt, Vanderbilt)
Additional Skills
- ISO C++ Standards Committee Member
- Programming in C, C++ (including STL and some Boost libraries), Python and Java (incl. JNI) with the ability to quickly understand an already existing, complex code-base.
- Development for Linux/POSIX platforms and Win32.
- Strong understanding of multithreaded development (i.e. concurrency, race-conditions, contention, thread-local storage)
- Contributor to StackOverflow for linux, sockets and multithreading tagged questions.
- Working on a socket abstraction library for C++ similar to Boost asio, but with better multithreading scalability.
- Developed and currently running JabRSS, an RSS (RDF Site Summary) headline notification service for Jabber/XMPP.
- Developed a lightweight SIP forwarding server (stateless SIP proxy) as well as a lightweight exim greylisting server using a SQLite backend.
- Past contributor to the Open Watcom C++ compiler: major improvements to the C++ front-end (i.e. partial template specialization and partial ordering of class templates, template functions, namespace support and general C++ standard compliance).
- Contributed Linux-specific epoll connection handling code to the Open Source jabberd2 XMPP server to improve scalability for high number of concurrent connections.
- Linux server administration (based on Debian GNU/Linux and Ubuntu) and network administration with a good understanding of IP and IP-based protocols.
- Open Source advocate familiar with many widely used Open Source licences (and with a good understanding of the implications of using Open Source software in a commercial environment).
This CV is also available as PDF
and Microsoft Word/RTF:
cv-cmeerw.pdf, cv-cmeerw.doc.
|