stefan.seefeld.name

Stefan’s musings

Résumé

  • About 20 years experience writing advanced system level and scientific 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).
  • Experience with Medical Imaging software development, as well as standardization work.
  • Many years of experience in mentoring developers and coordinating projects

Skills

  • Software Engineering:
    • 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
      • SIMD, threads, OpenMP, MPI, CUDA
      • 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 svn, mailman, various bug tracking systems and task managers
      • Daily use of development tools like gcc, make, autotools, git, svn, flex, bison, python, perl, sh, postgresql, docbook
    • Standardization work
  • Languages:
    • German, English, French: spoken fluently and daily

Experience

Continuum Analytics (2015 - 2017)

Senior Software Engineer

  • Design and develop numerical and data-processing libraries and support tools using a combination of Python, C,and C++.
  • Develop build and packaging infrastructure in support of the Anaconda distribution.

Mentor Graphics (2010 - 2015)

Software Architect

  • Design and develop numerical libraries in the High Performance Embedded Computing (HPEC) space.
  • Port HPC code to various platforms including Cell/B.E. and NVidia CUDA.
  • Develop integrated development workflows from prototyping (Matlab, SciPy) to target-specific optimization (C++, compiler intrinsics, etc.)
  • Manage releases for various products.
  • Coordinate architecture-level efforts related to various projects.
  • Work on VSIPL++ standardization within OMG.
  • Co-chair HPEC Working Group within OMG.

CodeSourcery (2005 - 2010)

Sourcerer

  • Design and develop numerical libraries in the High Performance Embedded Computing (HPEC) space.
  • Port HPC code to various platforms including Cell/B.E. and NVidia CUDA.
  • Manage Sourcery VSIPL++ releases.
  • Work on VSIPL++ standardization.

ORTHOsoft (2001 - 2004)

Software Developer

  • 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.

The Berlin / Fresco Project (1998 - 2003)

Architect and Principal Developer

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)

SIGGRAPH Montreal (2001 - 2002)

Member of the founding comitee

The Synopsis Project (2000 - present)

Coordinator and Lead Developer

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).

Education

  • Université de Montréal (Sep 1996 - Dec 2000)

    graduate studies in biophysics about ion transport through biological membranes

  • Humboldt Universität zu Berlin (Sep 1993 - Aug 1996)

    M.Sc. Physics, Cluster Formation in Non-Equilibrium Systems

  • Université Laval, Québec (Sep 1992 - Apr 1993)

    study trip to Québec

  • Humboldt Universität zu Berlin (Sep 1989 - Jul 1992)

    B.Sc. Physics

Publications and conferences

  • Stefan Seefeld, Faheem Sheikh, Brooks Moses, A MATLAB-to-Target Development Workflow using Sourcery VSIPL++, IEEE HPEC Conference 2012

  • Stefan Seefeld, Hybrid Programming with C++ and Python using Boost.Python, Talk at Bossa Conference 2009

  • Stefan Seefeld, Fresco, Talk at FOSDEM 2004

  • Stefan Seefeld, Daniel Odermatt, Computer Assisted Surgery, SIGGRAPH Montreal conference 04/2002

  • Wonpil Im, Stefan Seefeld, Benoît Roux, A Grand Canonical Monte Carlo-Brownian Dynamics Algorithm for Simulating Ion Channels, Biophys. J. 2000 79: 788-801

  • L. Schiemansky-Geier, S. Seefeld, V. Buchholtz, Making spatial structures by ratchets, Ann. Phys. 2000 9: 705-712

  • Stefan Seefeld, Berlin - neue Wege für grafische Benutzeroberflächen, LinuxTag 2000, Proceedings

  • Stefan Seefeld, Graydon Hoare, Berlin: taming premature rasterization with structured graphics, Talk at the Ottawa Linux Symposium 2000

  • Stefan Seefeld, Graydon Hoare, Berlin: a Structured User Interface, Ottawa Linux Symposium 2000, Proceedings