- About 15 years experience writing advanced system level and scientific visualization code in C++, in the industry, an academic setting, and in the free software community.
- Through scientific background and experience with a wide range of languages and techniques very proficient with domain-specific modeling and design.
- Very experienced with portable, i.e. platform independent development. This applies as much to the source code as to the infrastructure (building, testing, packaging).
Skills
Programming:
Programming languages:
- C++, Python, Perl, C, Java, IDL, XML, XSL, SQL, sh
Scientific programming:
- Molecular dynamics in biomembranes
- Stochastic simulations: Monte Carlo, Brownian Dynamics, Reaction Diffusion Systems
- Nonlinear dynamics, numerical solutions of differential equations
- Scientific visualization in 2D and 3D
System programming:
- Distributed systems: CORBA
- POSIX, IPC, RPC, threads
- Graphics: X, openGL
- Libraries and frameworks: Qt, OpenSceneGraph, boost, ACE
- System level programming on platforms such as GNU/Linux, IRIX, Solaris, MS Windows
Software engineering and project administration:
- OOP, OOA/D, UML
- Multi-Paradigm design, Generic Programming
- Project coordination and administration using cvs, mailman, various bug tracking systems and task managers
- Daily use of development tools like gcc, make, autotools, cvs, flex, bison, python, perl, sh, postgresql, docbook
Languages:
German, English, French:
spoken fluently and daily
Experience
- Design and develop a new document-centric architecture based on an Electronic Patient Record. This includes various services such as persistence, recording / playback, and logging, and is based on XML (using DOM and SAX APIs).
- Design and develop a portable component model that was used to refactor (i.e. modularize) the whole product suite.
- Develop and maintain the Motion Capture component with its principal implementation using the NDI Polaris Tracking System. Bind this component to a scene graph (based on openGL and OpenSceneGraph) for real-time rendering of tracked surgical instruments.
- Develop a scripting frontend (python) for a number of components using boost.python
- Enhance the development environment by writing a new build system (using MSVC++, gcc, MipsPro, make, autoconf), a new unit testing framework (using qmtest), code documentation tool (using synopsis), and internal web site (using apache, a wiki, in-house cgi scripts, etc.).
- Enhanced the software's portability to now support MS Windows, GNU/Linux, and IRIX.
Fresco is a highly modular, multi-threaded, distributed 3D enabled windowing system, based on a persistent scene graph with server-interpolated high color/spatial resolution and server-side UI components.
- I designed and implemented most of the system using CORBA IDL, C++, Python. The implementation contains various system level and graphics libraries to make it highly portable, scalable and extensible. Lower level APIs that are being used include openGL, POSIX, CORBA 2.3, etc.
- I implemented the build system for Berlin using tools such as make, autotools, perl
- I presented the project at various international conferences, such as the Ottawa Linux Symposium (Canada) or the LinuxTag (Germany)
Synopsis is a modular source code inspection tool, mainly designed to generate reference manuals from inlined documentation. It supports a variety of languages through the use of pluggable parsers, as well as a wide range of output generators, such as HTML, XML, or UML graphs.
- I designed the overall layout of the framework, the data flow, as well as the class hierarchy used.
- I implemented the core of the application (in python), as well as some of the parsers and formatters (C++, python).
OffiX is a GUI toolkit based on X11. It implements a variety of Inter-Client Communication protocols to support 'Drag and Drop', as well as other data exchange mechanisms.
- I coordinated the project's development and implemented the main components.
as part of my masters program, I designed and implemented a tool to simulate Reaction Diffusion Systems using dynamic Monte-Carlo techniques. The program is written using Generic Programming techniques (C++ templates). It contains a parser for a formal system definition written using flex/bison.
Education
graduate studies in biophysics about ion transport through biological membranes
M.Sc. in physics about ``Cluster Formation in Non-Equilibrium Systems''
study trip to Québec
university studies in physics
Publications and conferences
- Stefan Seefeld,
Hybrid Programming with C++ and Python using Boost.PythonTalk at Bossa Conference 2009
- Stefan Seefeld,
FrescoTalk at FOSDEM 2004
- Stefan Seefeld, Daniel Odermatt,
Computer Assisted SurgerySIGGRAPH Montreal conference 04/2002
- Wonpil Im, Stefan Seefeld, Benoît Roux,
A Grand Canonical Monte Carlo-Brownian Dynamics Algorithm for Simulating Ion ChannelsBiophys. J. 2000 79: 788-801
- L. Schiemansky-Geier, S. Seefeld, V. Buchholtz,
Making spatial structures by ratchetsAnn. Phys. 2000 9: 705-712
- Stefan Seefeld,
Berlin - neue Wege für grafische BenutzeroberflächenLinuxTag 2000, Proceedings
- Stefan Seefeld, Graydon Hoare,
Berlin: taming premature rasterization with structured graphicsTalk at the Ottawa Linux Symposium 2000
- Stefan Seefeld, Graydon Hoare,
Berlin: a Structured User InterfaceOttawa Linux Symposium 2000, Proceedings